В соответствии с постановкой
задачи узлы интерполирования функции полиномом Ньютона выбираются двумя способами.
В первом случае выбор ведется равномерно с шагом h = 2/n, и каждый узел вычисляется по формуле xi
= -1 + hi, i = 0,…,n. Во втором случае для выбора узлов используется метод
Чебышева, и узлы вычисляются по формуле , i =
0,…,n.
Интерполяционный полином Ньютона
строится на основе уравнений связи между значениями функции и построенными
соответствующими разделенными разностями:
Вычисление разделенных разностей
выполняется табличным методом по формуле
.
Таким образом получается таблица (реализуемая как матрица)
размера (n+1)x(n+1). Для построения полинома Ньютона используется первая
строка полученной матрицы.
Структура данных и программы
Программа состоит из следующих модулей:
- Splin.dat – Файл данных,
содержащий крайние и узловые точки заданной кусочно-линейной функции.
Первая строка представляет собой набор аргументов, а вторая –
соответствующий набор значений функции.
- Hx.m – Функция равномерного разбиения отрезка Hx(a,b,n), принимающая на входе концы отрезка a и b и
порядок интерполирования n, и дающая на выходе
вектор узлов интерполирования, состоящий из n+1 точки.
- Chx.m – Функция
разбиения отрезка [-1, 1] по Чебышеву Chx(n), принимающая на входе порядок интерполирования n и дающая на выходе вектор
узлов интерполирования, состоящий из n+1 точки.
- Pspline.m – Функция
интерполирования сплайна Pspline(Sp,t), принимающая на входе матрицу точек
Sp кусочно-линейной функции, загружаемую
предварительно из файла данных Splin.dat, и набор узлов t,
полученных при помощи функции Hx или
Chx. На выходе мы получаем вектор значений функции
в данных узлах.
- RRasn.m – Функция
вычисления разделенных разностей RRasn(n,f,x), принимающая на входе
порядок интерполирования n, вектор f значений функции в узлах,
полученный при помощи функции Pspline, и вектор
узлов x, полученный при помощи функции Hx или Chx.
На выходе мы получаем матрицу разделенных разностей размера (n+1)x(n+1).
- Newton.m – Функция
построения полинома Ньютона Newton(n,f,t,x), принимающая на входе порядок
интерполирования n, вектор f значений функции в узлах, полученный при помощи функции
Pspline, вектор узлов t,
полученный при помощи функции Hx или
Chx, и узел x. Вычисление
разделенных разностей ведется при помощи функции RRasn.
На выходе мы получаем значение полинома Ньютона в заданном узле x.
- GrSp.m – Скрипт
построения графика заданной кусочно-линейной функции, использующий файл
данных Splin.dat и функцию
Pspline.
- GrPogr.m – Функция GrPogr(n)
построения графиков погрешностей интерполирования двух способов выбора
узлов для заданного порядка интерполирования n.
- GrPogrR.m – Скрипт
построения графиков погрешностей интерполирования трех различных порядков.
Графики строятся в отдельном окне для каждого из двух способов выбора
узлов.
- main.m – Скрипт основной
программы, строящей по очереди графики функции и погрешностей при помощи
скриптов GrSp, GrPogrR и функции GrPogr.