
- •Часть 2
- •Оглавление введение
- •Глава 1. Методы одномерной безусловной оптимизации § 1.1. Основные понятия
- •§ 1.2. Метод половинного деления
- •§ 1.3. Метод золотого сечения
- •§ 1.4. Метод Ньютона
- •Глава 2. Методы многомерной безусловной оптимизации § 2.1. Основные понятия
- •§ 2.2. Метод сопряженных направлений
- •§ 2.3. Метод наискорейшего спуска
- •§ 2.4. Метод Ньютона
- •Глава 3. Интерполирование и аппроксимация функций, заданных таблично § 3.1. Основные понятия
- •§ 3.2. Интерполяционный полином в форме Лагранжа
- •§ 3.3. Интерполяционный полином в форме Ньютона
- •§ 3.4. Сплайн-интерполяция таблично заданной функции
- •§ 3.5. Аппроксимация таблично заданных функций методом наименьших квадратов
- •Глава 4. Численное дифференцирование и интегрирование функций § 4.1. Основные понятия
- •§ 4.2. Численное дифференцирование
- •§ 4.3. Численное интегрирование
- •4.3.1. Квадратурные формулы прямоугольников, трапеций и Симпсона. Квадратурные формулы прямоугольников
- •Квадратурная формула трапеций
- •Квадратурная формула Симпсона
- •4.3.2. Автоматический выбор шага. Правило Рунге
- •Глава 5. Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений и их систем § 5.1. Основные понятия
- •§ 5.2. Метод Эйлера
- •§ 5.3. Явный 4-шаговый метод Адамса
- •§ 5.4. Метод Рунге Кутта четвертого порядка
- •Литература
§ 3.3. Интерполяционный полином в форме Ньютона
Пусть, как и ранее, на отрезке [a, b] задана одномерная сетка
x = {xi / xi = xi – 1 + hi, hi > 0, i = 1, 2, 3, …, n; x0 = a, xn = b},
в узлах xi которой заданы значения yi = f(xi), i = 0, 1, 2, …, n – соответствующие значения функции f(x).
Интерполяционный полином в форме Ньютона для x (a, b) может быть записан в виде
Pn(x) = f(x0) + f(x0, x1)(x – x0) + f(x0, x1, x2)(x – x0)(x – x1) + …
…+ f(x0, x1, x2, …, xn – 1, xn)(x – x0)(x – x1) … (x – xn - 2)(x – xn - 1) (3.3.1)
или в более компактной форме
,
(3.3.2)
где f(x0, x1,…, xk) – разделенная разность k-го порядка.
Разделенные разности для табличных данных рассчитываются следующим образом:
разделенные разности 1-го порядка по формуле
разделенные разности 2-го порядка через разделенные разности 1-го порядка:
В общем случае разделенные разности k-го порядка определяются через разделенные разности (k – 1)-го порядка:
Учитывая связь разделенных разностей с производными таблично заданной функции f(x), интерполяционный полином в форме Ньютона можно считать разностной аппроксимацией формулы Тейлора для функции f(x).
Нетрудно показать, что для интерполяционного полинома Pn(x) в форме Ньютона выполняются условия интерполяции по узлам сетки:
Pn(xk) = f(xk), k = 0, 2, …, n.
Кроме того, можно убедиться в том, что интерполяционный полином в форме Ньютона только по форме отличается от интерполяционного полинома в форме Лагранжа, представляя собой на заданной сетке один и тот же интерполяционный полином. Поскольку, как было отмечено ранее, интерполяционный полином единственен, то последнее утверждение является вполне естественным и должно выполняться для любых форм представления этого полинома, если сетка и значения функции не изменяются.
В соответствии с соотношением (3.3.1) процесс интерполяции таблично заданной на отрезке [a, b] функции в заданную точку x* (a, b) с помощью интерполяционного полинома в форме Ньютона можно представить в виде следующего алгоритма:
0. На отрезке [a, b] задать одномерную сетку
x = {xi / xi = xi – 1 + hi, hi > 0, i = 1, 2, 3, …, n; x0 = a, xn = b}
и значения yi = f(xi) в узлах сетки xi, i = 0, 1, 2, …, n (n ≥ 1).
Задать x* (a, b).
1. Положить S: = f(x0); D: = 1; k: = 1.
2. Вычислить разделенные разности k-го порядка
f(xi, xi + 1, xi + 2, …, xi + k) для всех i = 0, 1, 2, …, n – k;
D: = D(x* – xk – 1).
3. Вычислить r = f(x0, x1, x2, …, xk)D.
4. Вычислить S: = S + r.
5. Положить k: = k + 1.
6. Если k n, перейти к выполнению п. 2.
7. Процесс завершен. S = Pn(x*) – значение интерполяционного полинома в точке x*.
Отметим некоторые характерные особенности использования интерполяционного полинома в форме Ньютона для интерполяции табличных данных.
1. Вычисления разделенных разностей в п. 3 приведенного алгоритма удобно производить, записывая их в таблицу, аналогичную табл. 3.3.1 для сетки с девятью узлами.
Таблица 3.3.1
№ узла |
xi |
f(xi) |
f(xi, xi+1) |
f(xi, xi+1, xi+2) |
f(xi, xi+1, xi+2, xi+3) |
… |
f(xi, xi+1, xi+2, …, xi+n) |
0 |
x0 |
f(x0) |
|
|
|
… |
|
|
|
|
f(x0, x1) |
|
|
… |
|
1 |
x1 |
f(x1) |
|
f(x0, x1, x2) |
|
… |
|
|
|
|
f(x1, x2) |
|
f(x0, x1, x2, x3) |
… |
|
2 |
x2 |
f(x2) |
|
f(x1, x2, x3) |
|
… |
|
|
|
|
f(x2, x3) |
|
f(x1, x2, x3, x4) |
… |
|
3 |
x3 |
f(x3) |
|
f(x2, x3, x4) |
|
… |
|
|
|
|
f(x3, x4) |
|
f(x2, x3, x4, x5) |
… |
|
4 |
x4 |
f(x4) |
|
f(x3, x4, x5) |
|
… |
f(x0, x1, x2,…, x8) |
|
|
|
f(x4, x5) |
|
f(x3, x4, x5, x6) |
… |
|
5 |
x5 |
f(x5) |
|
f(x4, x5, x6) |
|
… |
|
|
|
|
f(x5, x6) |
|
f(x4, x5, x6, x7) |
… |
|
6 |
x6 |
f(x6) |
|
f(x5, x6, x7) |
|
… |
|
|
|
|
f(x6, x7) |
|
f(x5, x6, x7, x8) |
… |
|
7 |
x7 |
f(x7) |
|
f(x6, x7, x8) |
|
… |
|
|
|
|
f(x7, x8) |
|
|
… |
|
8 |
x8 |
f(x8) |
|
|
|
… |
|
Разделенные разности образуют в таблице своеобразный треугольник. При расчете значения Pn(x*) используются разделенные разности, находящиеся как бы на верхней стороне этого треугольника (они выделены в таблице жирным шрифтом).
2. Использование интерполяционного полинома в форме Ньютона оказывается удобным, например, когда появляются дополнительные узлы. Так, если добавлен один новый узел, то в формуле (3.3.1) для интерполяционного полинома в форме Ньютона добавится еще одно слагаемое, которое нужно прибавить к уже рассчитанной сумме предыдущих слагаемых (они, очевидно, не изменяются). Для расчета значения дополнительного слагаемого в нижней части таблицы для конечных разностей добавляется еще одна строка, соответствующая этому узлу. Ранее рассчитанные разности пересчитывать не нужно, необходимо лишь определить дополнительно значения тех разделенных разностей, которые будут находиться на нижней стороне нового "треугольника" разделенных разностей.
3. Формулу (3.3.1) для интерполяционного полинома в форме Ньютона можно записать для любого способа упорядочивания узлов. Так, например, при упорядочивании узлов в обратном порядке (xn, xn – 1, xn – 2, …, x2, x0) формула (3.3.1) для представления интерполяционного полинома в форме Ньютона примет вид
Pn(x) = f(xn) + f(xn, xn – 1)(x – xn) + f(xn, xn – 1, xn – 2)(x – xn)(x – xn – 1)+…
…+ f(xn, xn – 1, xn – 2,… x1, x0)(x – xn)(x – xn – 1)… (x – x2)(x – x1). (3.3.3)
Если интерполяционный полином в форме Ньютона Pn(x) определяется по формуле (3.3.1), его называют интерполяционным полиномом для интерполирования вперед (или для интерполирования в начале таблицы). Этот полином целесообразно использовать, когда точка x* находится в начале таблицы.
Если Pn(x) определяется по формуле (3.3.3), его называют интерполяционным полиномом для интерполирования назад (или для интерполирования в конце таблицы). Его целесообразно использовать, когда точка x* находится в нижней части таблицы.
4. Как уже говорилось, не рекомендуется использовать интерполяционные полиномы выше 6-го порядка: в этом случае при их построении может быть использовано в совокупности не более семи узлов сетки, находящихся на оси Ох с обеих сторон от точки x* (a, b).
5. Оценка точности интерполяции с помощью интерполяционного полинома в форме Ньютона совпадает с оценкой точности интерполяции, приведенной для интерполяционного полинома в форме Лагранжа, поскольку оба этих полинома представляют собой один и тот же интерполяционный полином и различаются только формой записи:
(3.3.4)
где Mn + 1 – верхняя граница значения модуля (n + 1)-й производной функции f(x) на отрезке [a, b].
В соответствии с (3.3.4) погрешность интерполяции будет равна нулю, если интерполируемая функция представляет собой полином, степень которого не превышает n.