Интерполяционный многочлен в форме ньютона. Интерполяционные формулы ньютона Схема алгоритма интерполяции по формуле Лагранжа с заданной точностью

Интерполяция применяется во многих задачах, связанных с вычислениями. Укажем некоторые из этих задач. Обработка физического эксперимента – построение приближенных формул по данным вычислительного эксперимента. Здесь возникают нестандартные задачи интерполяции, так как обычно пишутся формулы, возможно, более простой структуры.

Интерполяционные формулы используются также при вычислении интегралов, при написании разностных аппроксимаций для дифференциальных уравнений, на основе интегральных тождеств.
Часто требуется восстановить функцию f(x) на отрезке a ≤ x ≤ b , если известны её значения в некотором конечном числе точек этого отрезка.

На практике чаще всего применяют интерполяцию многочленами. Это связано, прежде всего, с тем, что многочлены легко вычислять, легко аналитически находить их производные и множество многочленов плотно в пространстве непрерывных функций. Мы рассмотрим более подробно метод Ньютона.

В таблице 1 приведены данные временной сложности алгоритмов.

Таблица 1

Входные данные:
x — координата, в которой необходимо вычислить.
n – Количество узлов.
Step – шаг интерполяции
Множество MasX – Значения x .
Множество MasY – Значения f(x) .

Выходные данные:
res – значение полинома в точке x .

Алгоритмическая модель метода Ньютона:
Множество mas мощностью |n + 2, n + 1|; Для всех i от 0..2: Для всех j от 0..n+1: Если i = 0: masi,j = MasXj; иначе Если i = 1: masi,j = MasYj; m = n; Для всех i от 2..n+2: Для всех j от 0..m: masi,j = mas(i-1),(j+1) – mas(i–1),j; m = m-1; Множество dy0 мощностью |n + 1|; Для всех i от 0..n+1: dy0i = mas(i + 1),0; res = dy00; Множество xn мощностью |n|; xn0 = x - mas0,0; Для всех i от 1..n: ans = xni - 1 * (x - mas0, i); xni = ans; ans = 0; m1 = n + 1; fact = 1; Для всех i от 1..m1: fact = fact * i; res = res + (dy0i * xni - 1) / (fact * stepi);

На рисунке 1 изображена схема интерполяции метода Ньютона.


Рисунок 1 — интерполяция метода Ньютона

// x - координата, в которой необходимо вычислить значение полинома Ньютона; n - количество узлов; MasX - массив x; MasY - массив значений x; step - шаг public double Newton(double x, int n, double MasX, double MasY, double step) { double[,] mas = new double; for (int i = 0; i < 2; i++) { for (int j = 0; j < n + 1; j++) { if (i == 0) mas = MasX[j]; else if (i == 1) mas = MasY[j]; } } int m = n; for (int i = 2; i < n + 2; i++) { for (int j = 0; j < m; j++) { mas = mas - mas; } m--; } double dy0 = new double; for (int i = 0; i < n + 1; i++) { dy0[i] = mas; } double res = dy0; double xn = new double[n]; xn = x - mas; for (int i = 1; i < n; i++) { double ans = xn * (x - mas); xn[i] = ans; ans = 0; } int m1 = n + 1; int fact = 1; for (int i = 1; i < m1; i++) { fact = fact * i; res = res + (dy0[i] * xn) / (fact * Math.Pow(step, i)); } return res; }

Составим таблицу значений для f(x) = x^3.


Найдем полимер в точке 2.1: f(2.1) = 2.1^3=9,261

С помощью программной функции мы получили такой же результат (Рисунок 2).


Рисунок 2 — применение функции

Нами были рассмотрены основные метода интерполяции многочленами. На практике чаще всего применяют интерполяцию многочленами. Это связано, прежде всего, с тем, что многочлены легко вычислять, легко аналитически находить их производные и множество многочленов плотно в пространстве непрерывных функций. Мы рассмотрели более подробно метод Ньютона.

Мы построили математическое описание методов, после чего приступили к разработке схемы программы.

Разработали программу реализующую интерполяцию метода Ньютона, на языке C# в Visual Studio 2012.

Протестировали программу, все тесты на основе заданных нами данных были успешно пройдены.

Довольно распространенным методом интерполирования является метод Ньютона. Интерполяционный полином для этого метода имеет вид:

P n (x) = a 0 + a 1 (x-x 0) + a 2 (x-x 0)(x-x 1) + ... + a n (x-x 0)(x-x 1)...(x-x n-1).

Задача состоит в отыскании коэффициентов a i полинома P n (x). Коэффициенты находят из уравнения:

P n (x i) = y i , i = 0, 1, ..., n,

позволяющего записать систему:

a 0 + a 1 (x 1 - x 0) = y 1 ;

a 0 + a 1 (x 2 - x 0) + a 2 (x 2 - x 0)(x 2 - x 1) = y 2 ;

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

a 0 +... + a n (x n - x 0)(x n - x 1) ... (x n - x n-1) = y n ;

Используем метод конечных разностей. Если узлы x i заданы через равные промежутки h, т.е.

x i+1 - x i = h,

то в общем случае x i = x 0 + i×h, где i = 1, 2, ..., n. Последнее выражение позволяет привести решаемое уравнение к виду

y 1 = a 0 + a 1 ×h;

y 2 = a 0 + a 1 (2h) + a 2 (2h)h;

- - - - - - - - - - - - - - - - - - -

y i = a 0 + a 1 ×i×h + a 2 ×i×h[(i-1)h] + ... + a i ×i!×h i ,

откуда для коэффициентов получаем

где Dу 0 – первая конечная разность.

Продолжая вычисления, получим:

где D 2 у 0 - вторая конечная разность, представляющая собой разность разностей. Коэффициент а i можно представить в виде:

Поставляя найденные значения коэффициентов а i в значения для P n (x), получим интерполяционный полином Ньютона:

Преобразуем формулу, для чего введем новую переменную , где q – число шагов, необходимых для достижения точки х, двигаясь из точки х 0 . После преобразований получаем:

Полученная формула известна как первая интерполяционная формула Ньютона, или формула Ньютона для интерполирования "вперед". Ее выгодно использовать для интерполирования функции y = f(x) в окрестности начального значения х – х 0 , где q мало по абсолютной величине.

Если записать интерполяционный многочлен в виде:

то аналогичным образом можно получить вторую интерполяционную формулу Ньютона, или формулу Ньютона для интерполирования "назад":

Ее обычно используют для интерполирования функции вблизи конца таблицы.

При изучении данной темы необходимо помнить, что интерполяционные многочлены совпадают с заданной функцией f(x) в узлах интерполяции, а в остальных точках, в общем случае, будут отличаться. Указанная ошибка дает нам погрешность метода. Погрешность метода интерполяции определяется остаточным членом, который для формул Лагранжа и Ньютона одинаков и который позволяет получить следующую оценку для абсолютной погрешности:


Если интерполирование осуществляется с одинаковым шагом, то формула для остаточного члена видоизменяется. В частности, при интерполировании "вперед" и "назад" по формуле Ньютона выражение для R(x) несколько отличаются друг от друга.

Анализируя полученную формулу, видно, что погрешность R(x) представляет собой, с точностью до постоянной произведение двух множителей, из которых один, f (n+1) (x), где x лежит внутри , зависит от свойств функции f(x) и не поддается регулированию, а величина другого,

определяется исключительно выбором узлов интерполирования.

При неудачном расположении этих узлов верхняя граница модуля |R(x)| может быть весьма большой. Поэтому возникает задача о наиболее рациональном выборе узлов интерполирования x i (при заданном числе узлов n) с тем, чтобы полином П n+1 (х) имел наименьшее значение.

При получении интерполяционных формул Ньютона, которые используются для тех же целей, что и формула Лагранжа, сделаем дополнительное предположение, что рассматриваются равноотстоящие значения аргумента. Итак, пусть значения функции у = f (x ) заданы для равноотстоящих значений x 0 , x 1 = x 0 + h, …, x n = x 0 + nh. Этим значениям аргументов будут соответствоватьзначенияфункции: у 0 = f(x 0),у 1 = f(x 1), …, y n = f(x n).

Запишем искомый многочлен в виде

F(x ) = a 0 + a 1 (x - x 0) + a 2 (x - x 0)(x - x 1) + a 3 (x - x 0)(x - x 1)(x - x 2) + …

…+ a n (x - x 0)(x - x 1)…(x - x n -1) (3.9)

Для определения коэффициентов a 0 , a 1 ,..., а n положим в (3.9) х = х 0 . Тогда у 0 = F (x 0) 0 . Далее, полагая x=x 1 , получим у 1 = F (x 1) = a 0 + а 1 h , откуда

a 1 =

Продолжая вычисления коэффициентов, положим х = х 2 . Тогда

y 2 = y 0 + 2h + a 2 2hh , y 2 – 2Δy 0 = a 2 2h 2 ;

y 2 – 2y 1 + 2y 0 – y 0 = y 2 – 2y 1 + y 0 = a 2 2h 2 .

Исходя из (3.8), получаем y 2 – 2y 1 + y 0 = Δ 2 y 0.

Точно так же получим

Аналогичные дальнейшие вычисления позволяют записать общую формулу для любого коэффициента а k:

Подставим найденные выражения коэффициентов в формулу (3.9), получим

Полученная формула и называется первой интерполяционной формулой Ньютона.

Для практического использования формулу Ньютона (3.10) обычно записывают в преобразованном виде. Для этого введем обозначение

отсюда х = х 0 + ht .

Выразим через t множители, входящие в формулу (3.10):

………………………..

Подставив полученные выражения в формулу (3.10), окончательно получаем

Выражение (3.11) представляет окончательный вид первой интерполяционной формулы Ньютона.

Пример . Приняв шаг h = 0,05,построить на отрезке интерполяционный полином Ньютона для функции y = e x ,заданной табл. 3.3.

Таблица 3.3

Заметим, что в столбцах разностей, следуя обычной практике, мы не отделяем запятой десятичные разряды, которые ясны из столбца значений функций.

Так как разности третьего порядка практически постоянны, то в формуле (3.11) полагаем n = 3. Приняв х 0 = 3,50 и у 0 = 33,115, будем иметь:

Первая интерполяционная формула Ньютона неудобна для интерполирования функции в конце таблицы, где число значений разностей мало. В этом случае применяется вторая интерполяционная формула Ньютона, которую мы сейчас и рассмотрим.

Напишем искомый интерполяционный многочлен в виде

Как и ранее, коэффициенты а 0 , а 1 ,… а n определяются из условия F (x i) = y i . Положим в (3.12) х = х n . Тогда a 0 = y n .

Точно так же, полагая x = x n -1 , получим y n -1 = y n +a 1 (x n -1 - x n) ,

а так как x n -1 – x n = - h , то

Числитель последнего выражения можно представить так:

y n – y n -1 – (y n -1 - y n -2 )= Δy n -1 - Δy n -2 = Δ 2 y n -2 .

Продолжая аналогичные вычисления, получим общую формулу для коэффициентов

После подстановки в (3.12) всех значений коэффициентов эта формула примет вид

Это и есть вторая интерполяционная формула Ньютона. Для удобства применения ее, как и первую, преобразуют, введя обозначения

= t или x = x n + th .

Выразим теперь через t множители в формуле (3.13):

……………………………………………..

Произведя такую замену, окончательно получим:

Пример . По табл. 3.5 значений семизначных логарифмов для чисел от 1000 с шагом 10 найти lg 1044.

Таблица 3.5

x y Δy Δ 2 y Δ 3 y
3,0000000 3,0043214 3,0086002 3,0128372 3,0170333 3,0211893 -426 -418 -409 -401

Примем x n = 1050,y n = 3,0211893;Δ y n-1 = 0,0041560;

Δ 2 y n -2 = - 0,0000401;Δ 3 y n -3 = 0,0000008.Тогда для x = 1044 получаем

Как первая, так и вторая интерполяционные формул Ньютона могут быть использованы для экстраполирования функций, т. е. для нахождения значений функций для значений аргументов х , лежащих вне пределов таблицы. Еслизначение x < x 0 и значение x близко к x 0 , то выгодно применять первую интерполяционную формулу Ньютона, причем

Еслиже x > x 0 и x близко кх п , то удобнее пользоваться второй интерполяционной формулой Ньютона, причем

Таким образом, первая интерполяционная формула Ньютона обычно используется для интерполирования вперед и экстраполирования назад, а вторая интерполяционная формула Ньютона, наоборот, – используется для интерполирования назад и экстраполирования вперед.

Пример . Имея табл. 3.6 значений и разностей,у= sin х : в пределах отх = 15° дох = 55° с шагом h = 5° , найти sin 14° и sin 56° .

Таблица 3.6

x (0 C) y Δy Δ 2 y Δ 3 y
0,2588 0,3420 0,4226 0,5000 0,5736 0,6428 0,7071 0,7660 0,8192 832 532 -26 -32 -38 -44 -49 -54 -57 -6 -6 -6 -5 -5 -3

Решение . Для вычисления sin14 0 примем x 0 = 15 0 и x = 14 0 , отсюда t = (14–15)/5 = – 0,2.

Здесь следует выполнить экстраполирование назад, поэтому применим первую интерполяционную формулу Ньютона и подчеркнутые одной чертой конечные разности:

sin14 0 = 0,2588 + (– 0,2)0,0832+ (– 0,0026) +

+ (–0,0006) = 0,242.

Для отыскания sin56 0 примем x n = 55 0 и x = 56 0 , отсюда t = .

Применяя вторую интерполяционную формулу Ньютона (3.14) и, используя дважды подчеркнутые разности, будем иметь:

sin56 0 = 0,8192+ 0,2·0,0532+ (- 0,0057)+ (- 0,0003)= 0,83.

Лекция 4

1. Конечные разности
2. Первая интерполяционная формула
Ньютона
3. Вторая интерполяционная формула
Ньютона
4. Погрешности интерполяции

Конечные разности 1–го порядка

Если интерполируемая функция y = f(x) задана в
равноотстоящих узлах, так что xi = x0 + i∙h, где h – шаг таблицы, а
i = 0, 1, … n, то для интерполяции могут применяться формулы
Ньютона, использующие конечные разности.
Конечной разностью первого порядка называется разность yi
= yi+1 - yi, где
yi+1= f(xi+h) и yi = f(xi). Для функции, заданной
таблично в (n+1) узлах, i = 0, 1, 2, …, n, конечные разности
первого порядка могут быть вычислены в точках 0, 1, 2,…, n - 1:
y 0 y1 y 0 ,
y1 y 2 y1,
.......................
yn 1 yn yn 1.

Конечные разности высших порядков

Используя конечные разности первого порядка, можно
получить конечные разности второго порядка 2yi = yi+1 - yi:
2 y 0 y1 y 0 ;
2 y1 y 2 y1;
..........................
2 y n 2 y n 1 y n 2 .
Конечные разности k-го порядка в узле с номером i могут
быть вычислены через разности (k-1)–го порядка:
k yi k 1yi 1 k 1yi
Любые конечные разности можно вычислить через значения
функции в узлах интерполяции, например:
2 y 0 y1 y 0 (y 2 y1) (y1 y 0) y 2 2y1 y 0 .

Таблица конечных разностей

x
y
Δy
Δ2y
Δ3y
x0
y0 Δy0 = y1 – y0 Δ2y0 = Δy1 – Δy0 Δ3y0 = Δ2y1 – Δ2y0
x1 = x0 + h
y1 Δy1 = y2 – y1 Δ2y1 = Δy2 – Δy1
x2 = x0 + 2h
y2 Δy2 = y3 – y2
x3 = x0 + 3h
y3

По величине конечных разностей можно
сделать
вывод
о
степени
интерполяционного
многочлена,
описывающего
таблично
заданную
функцию.
Если
для
таблицы
с
равноотстоящими
узлами
конечные
разности k-го порядка постоянны или
соизмеримы с заданной погрешностью, то
функцию можно представить многочленом
k-й степени.

Конечные разности и степень многочлена

Рассмотрим, например, таблицу конечных разностей для
многочлена y = x2 – 3x + 2.
0
y
-0.16
2y
0.08
3y
0
1.2
-0.16
-0.08
0.08
0
1.4
-0.24
0
0.08
1.6
-0.24
0.08
1.8
-0.16
x
y
1.0
Конечные разности третьего порядка равны нулю, а все
конечные разности второго порядка одинаковы и равны 0.08. Это
говорит о том, что функцию, заданную таблично, можно
представить многочленом 2–й степени (ожидаемый результат,
учитывая способ получения таблицы).

Пусть функция y = f(x) задана в n+1 равноотстоящих узлах xi , i = 0, 1,
2,…n с шагом h. Требуется найти интерполяционный многочлен Pn(x)
степени n, удовлетворяющий условию:
Pn(xi) = yi, i =0, 1, 2, …,n .
Будем искать интерполяционный многочлен в виде:
Pn(x) = a0 + a1(x-x0) + a2(x-x0)(x-x1) + … + an(x-x0)(x-x1)…(x-xn-1),
где аi, i = 0, 1, 2,…n – неизвестные коэффициенты, не зависящие от узлов
интерполяции. Найдем эти коэффициенты из условий интерполяции.
Пусть х = x0, тогда Pn(x0) = y0 = a0. Следовательно, a0 = y0.
Пусть х = x1, тогда Pn(x1) = y1 = a0 + a1(x1 - x0) = y0 + a1(x1 - x0), откуда
a1
y1 y0 y0
.
x1 x0
h
Теперь пусть х = х2 , тогда:
Pn (x 2) y 2 a0 a1(x 2 -x 0) a2 (x 2 -x 0)(x 2 -x1) y 0
y 0
2h a2 2h2.
h
Выразив из этого выражения a2, получим:
y 2 2 y0 y0 y 2 2(y1 y0) y0 y 2 2y1 y 0 2 y 0
a2
.
2h2
2h2
2h2
2h2

Первая интерполяционная формула Ньютона

Продолжая подстановки, можно получить выражение для любого
коэффициента с номером i:
i y 0
ai
,
i! hi
i 0,1,...,n.
Подставив найденные значения коэффициентов в исходное выражение,
получим первую интерполяционную формулу Ньютона:
y0
2 y0
n y 0
Pn (x) y0
(x x0)
(x x 0)(x x1) ...
(x x 0)...(x x n 1).
1!h
2!h2
n!hn
Из формулы видно, что в ней используется верхняя строка таблицы
конечных разностей (слайд 4). Особенностью формулы является также
последовательное увеличение степени многочлена по мере добавления
очередных слагаемых. Это позволяет уточнять получаемый результат без
пересчета уже учтенных слагаемых.

Первая интерполяционная формула Ньютона

Первая интерполяционная формула Ньютона может быть записана в
более компактном и удобном для программной реализации виде.
Обозначив
q
x x0
,
h
x x 0 qh
и проведя несложные преобразования вида:
x x1 x x 0 h
q 1;
h
h
x xn
x x2
q n 1,
q 2;.....;
h
h
получим первую интерполяционную формулу Ньютона, выраженную
относительно неизвестной q:
n y 0
2 y0
q(q 1)...(q n 1).
q(q 1) ...
Pn (x) Pn (x0 hq) y0 y0q
n!
2!

10. Первая интерполяционная формула Ньютона

Конечные разности высших порядков, используемые в формуле
Ньютона, имеют обычно большую погрешность, связанную с ошибками
округления при вычитании близких значений. Поэтому соответствующие
слагаемые формулы имеют также большую погрешность. Чтобы уменьшить
их вклад в сумму, то есть в конечный результат, надо, чтобы выполнялось
условие |q| < 1. Это обеспечивается, если точка интерполяции x находится
между двумя первыми узлами таблицы: x0 < x < x1. По этой причине
интерполяцию с использованием первой формулы Ньютона называют
интерполяцией в начале таблицы или интерполяцией вперед.

интерполяции первая интерполяционная формула Ньютона принимает
следующий вид:
P1(x) y0 y0q.
P2 (x) y 0 y 0 q 2 y 0
q(q 1)
.
2

11. Пример использования первой интерполяционной формулы Ньютона


что и в примере на слайде 6. Требуется найти приближенное
значение функции в точке x = 1.1 путем квадратичной
интерполяции по первой формуле Ньютона.
x
1.0
1.2
1.4
1.6
1.8
y
0
-0.16
-0.24
-0.24
-0.16
y
-0.16
-0.08
0
0.08
2y 3y
0.08 0
0.08 0
0.08
Шаг таблицы h = 0.2
q = (x – x0)/h = 0.5
q(q 1)
2
0.5(0.5 1)
0 (0.16) 0.5 0.08
0.09
2
P2 (x) y 0 Δy 0 q Δ 2 y 0
Результат совпадает с
значением многочлена
y = x2 – 3x + 2, из которого
получена таблица

12. Схема алгоритма вычислений по первой интерполяционной формуле Ньютона

13. Вторая интерполяционная формула Ньютона

Вторая формула Ньютона обладает аналогичными свойствами
относительно правой части таблицы. Для ее построения используют
многочлен вида:
Pn(x) = a0 + a1(x-xn) + a2(x-xn)(x-xn-1) + … + an(x-xn)(x-xn-1)…(x-x1),
где аi, i = 0, 1, 2, … n – коэффициенты, не зависящие от узлов интерполяции.
Для определения коэффициентов аi будем в это выражение поочередно
подставлять узлы интерполяции. При х = xn Pn(xn) = yn, следовательно,
a0 = yn.
При х = xn-1 имеем Pn(xn-1) = yn-1 = a0 + a1(xn-1-xn) = yn + a1(xn-1-xn),
откуда
a1
yn 1 yn yn yn 1 yn 1
.
xn 1 xn xn xn 1
h

14. Вторая интерполяционная формула Ньютона

Продолжая подстановки, получим выражения для всех коэффициентов
многочлена и вторую интерполяционную формулу Ньютона:
n y 0
yn 1
2 yn 2
Pn (x) yn
(x xn)
(x xn)(x xn 1)
(x xn)...(x x1).
2
n
1!h
2!h
n!h
Из формулы видно, что в ней используется нижняя диагональ таблицы
конечных разностей (слайд 4). Как и в первой формуле Ньютона, добавление
очередных слагаемых ведет к последовательное увеличению степени
многочлена, что позволяет уточнять получаемый результат без пересчета уже
учтенных слагаемых.
Введя обозначение: q
x xn
,
h
x xn hq
и, проделав несложные преобразования, получим вторую интерполяционную
формулу Ньютона, выраженную относительно переменной подстановки q:
n y 0
2 yn 2
Pn (x) yn yn 1q
q(q 1) ...
q(q 1)...(q n 1).
2!
n!

15. Вторая интерполяционная формула Ньютона

Из тех же соображений, что и в случае первой формулы Ньютона, для
уменьшения вычислительной погрешности надо, чтобы выполнялось условие
|q| < 1. Это обеспечивается, если точка интерполяции x находится между
двумя последними узлами таблицы: xn-1 < x < xn. По этой причине
интерполяцию с использованием второй формулы Ньютона называют
интерполяцией е конце таблицы или интерполяцией назад.
Для частных случаев линейной (n=1) и квадратичной (n=2)
интерполяции вторая интерполяционная формула Ньютона принимает
следующий вид:
P1 (x) y n y n 1q
2 y n 2
P2 (x) y n y n 1 q
q(q 1)
2!

16. Пример использования второй интерполяционной формулы Ньютона

Пусть интерполируемая функция f(x) задана той же таблицей,
что и в примере на слайде 11. Требуется найти приближенное
значение функции в точке x = 1.7 путем квадратичной
интерполяции по второй формуле Ньютона.
x
1.0
1.2
1.4
1.6
1.8
y
0
-0.16
-0.24
-0.24
-0.16
y
-0.16
-0.08
0
0.08
2y 3y
0.08 0
0.08 0
0.08
Шаг таблицы h = 0.2
q = (x – xn)/h = -0.5
Результат совпадает с
значением многочлена
y = x2 – 3x + 2, из
которого получена
таблица
q(q 1)
2
0.5(0.5 1)
0.16 0.08 (0.5) 0.08
0.21
2
P2 (x) y n Δy n 1 q Δ 2 y n 2

17. Схема алгоритма вычислений по второй интерполяционной формуле Ньютона

18. Погрешности интерполяции

Интерполирующая функция в точках между
узлами интерполяции заменяет интерполирующую
функцию приближенно:
f(x) = F(x) + R(x), где R(x) – погрешность
интерполяции.
Для оценки погрешности необходимо иметь
необходимо иметь определенную информацию об
интерполируемой функции f(x). Предположим, что
f(x) определена на отрезке , содержащем все
узлы xi, и при x, принадлежащем , имеет все
производные f"(x), f""(x), … f(n+1)(x) до (n+1)–го
порядка включительно.

19. Погрешности интерполяции

Тогда

20. Выбор узлов интерполяции по формуле Лагранжа

При фиксированной степени многочлена:
x*
x0
x1
x2
x3
x4
x5
x
При последовательном увеличении степени
многочлена
x*
x4
x2
x0
x1
x3
x5
x

21. Практическая оценка погрешности интерполяции по формуле Лагранжа

На практике оценка максимального значения производной (n+1)–го
порядка Mn+1 при использовании формулы Лагранжа редко бывает возможна,
и поэтому используют приближенную оценку погрешности
R n (x) f(x) Ln (x) Ln 1 (x) Ln (x) ,
где n число используемых узлов.
Из приведенной формулы следует, что для оценки погрешности
интерполяции многочленом Лагранжа n–й степени необходимо
дополнительно вычислить значение многочлена (n+1)–й степени. Если
допустимая погрешность интерполяции задана, то необходимо, добавляя все
новые узлы, увеличивать степень многочлена до тех пор, пока модуль
разности между двумя последними значениями многочлена |Ln+1(x)-Ln(x)| не
станет меньше заданного значения.

22. Схема алгоритма интерполяции по формуле Лагранжа с заданной точностью

23. Оценка погрешностей интерполяционных формул Ньютона

Для интерполяционных
приобретают следующий вид.
1–я формула Ньютона:
R n (x) h
n 1
формул
Ньютона
оценки
q(q 1) (q n) (n 1)
f
(n 1)!
R n (x) h n 1
q(q 1) (q n)
M n 1
(n 1)!
2–я формула Ньютона:
R n (x) h
n 1
q(q 1) (q n) (n 1)
f
(n 1)!
R n (x) h n 1
q(q 1) (q n)
M n 1
(n 1)!
погрешности

24. Практическая оценка погрешностей интерполяционных формул Ньютона

При использовании интерполяционных формул Ньютона величину
f(n+1)(ξ) можно приближенно оценивать по величинам конечных разностей:
f
(n 1)
n 1
Δ y0
() n 1
h
и в этом случае формулы для оценки погрешности приобретают следующий
вид:
1–я формула Ньютона:
R n (x)
q(q 1) (q n) n 1
Δ y0
(n 1)!
2–я формула Ньютона:
R n (x)
q(q 1) (q n) n 1
Δ y0
(n 1)!

25. Интерполяция по формулам Ньютона с заданной точностью

Сравнивая эти формулы с формулами
Ньютона, можно увидеть, что для оценки
погрешности при интерполяции многочленом
n–й степени надо взять дополнительный узел
и вычислить слагаемое (n+1)–й степени.
Если задана допустимая погрешность
интерполяции ε, то надо последовательно
добавлять новые узлы и, соответственно,
новые слагаемые, увеличивая степень
интерполяционного многочлена до тех пор,
пока очередное слагаемое не станет меньше ε.

Вторая формула Ньютона обладает аналогичными свойствами относительно левой части таблицы. Для ее построения используют многочлен вида:

P n (x)=a 0 + a 1 (x-x n) + a 2 (x-x n)(x-x n-1) + …+ a n (x-x n)(x-x n-1)…(x-x 1), (6.3.3-8)

где а i , i = 0, 1, 2, …, n – коэффициенты, не зависящие от узлов интерполяции.

Для определения коэффициентов а i будем в (6.3.3-8) поочередно подставлять узлы интерполяции. При х = x n P n (x n) = y n , следовательно, a 0 = y n .

При х = x n -1 имеем P n (x n -1) = y n -1 = a 0 + a 1 (x n -1 -x n) = y n + a 1 (x n -1 -x n), откуда

Продолжая подстановку, получим выражение для всех коэффициентов многочлена (6.3.3-8) и запишем вторую интерполяционную формулу Ньютона:

Введя обозначение:

и, подставив х в (6.3.3-8), получаем формулу Ньютона для интерполяции назад:

Воспользуемся этой формулой для вычисления значения функции, заданной таблицей 6.3.3-1, в точке х = 1.7.

Точка х=1.7 расположена в конце таблицы. В качестве узлов интерполяции выберем: х 3 =1.8, х 2 =1.6 и х 1 =1.4:

Погрешности интерполяционных формул Ньютона определяются соотношением:

· для первой формулы Ньютона:

(6.3.3-11)

· для второй формулы Ньютона:

(6.3.3-12)

где - некоторое промежуточное значение между узлами интерполяции.

На практике, если интерполируемая функция y = f(x) задана таблично , полагая, что D n +1 = const, а h –достаточно мало, используют приближенные равенства:

(6.3.3-13)


Пример 6.3.3-1. Вычислить c использованием 1-й и 2-й формул Ньютона значение функции, заданной таблицей равноотстоящих узлов, в точке х=1.23.

Практическая погрешность оценивается соотношением:

e 1 = |Р 2 (х) - Р 1 (х)|=|0.206958-0.206335|=0.000623.

Решим ту же задачу с помощью 2-й формулы Ньютона. Пусть х n = 1.3; х n -1 = 1.2; х n -2 = 1.1.

Таблица конечных разностей имеет вид:

x y Dy D 2 y
1.1 1.2 1.3 0.095310 0.182322 0.262364 0.087012 0.080042 -0.006970

Тогда:


6.3.4. Сплайн – интерполяция

В последние годы интенсивно развивается новый раздел современной вычислительной математики – теория сплайнов . Сплайны позволяют эффективно решать задачи обработки экспериментальных зависимостей между параметрами, имеющими достаточно сложную структуру.

Рассмотренные выше методы локальной интерполяции, по существу, являются простейшими сплайнами первой степени (для линейной интерполяции) и второй степени (для квадратичной интерполяции).

Наиболее широкое практическое применение, в силу их простоты, нашли кубические сплайны. Основные идеи теории кубических сплайнов сформировались в результате попыток математически описать гибкие рейки из упругого материала (механические сплайны), которыми издавна пользовались чертежники в тех случаях, когда возникала необходимость проведения через заданные точки достаточно гладкой кривой. Известно, что рейка из упругого материала, закрепленная в некоторых точках и находящаяся в положении равновесия, принимает форму, при которой ее энергия является минимальной. Это фундаментальное свойство позволяет эффективно использовать сплайны при решении практических задач обработки экспериментальной информации.

В общем случае для функции y = f(x) требуется найти приближение y = S(x) таким образом, чтобыf(x i) = S(x i) в точках x = x i , a в остальных точках отрезка значения функций f(x) и S(x) были близкими между собой. При малом числе экспериментальных точек для решения задачи интерполяции можно использовать один из методов построения интерполяционных полиномов. Однако при большом числе узлов интерполяционные полиномы становятся практически непригодными. Это связано с тем, что степень интерполяционного полинома лишь на единицу меньше числа экспериментальных значений функций. Можно, конечно, отрезок, на котором определена функция, разбить на участки, содержащие малое число экспериментальных точек, и для каждого из них построить интерполяционные полиномы. Однако в этом случае аппроксимирующая функция будет иметь точки, где производная не является непрерывной, т. е. график функции будет содержать точки “излома”.

Кубические сплайны лишены этого недостатка. Исследования показали, что гибкая тонкая линейка между двумя узлами достаточно хорошо описывается кубическим полиномом, и поскольку она не разрушается, то аппроксимирующая функция должна быть, по меньшей мере, непрерывно дифференцируемой.

Таким образом, сплайн – это функция, которая на каждом частичном отрезке интерполяции является алгебраическим многочленом, а на всем заданном отрезке непрерывна вместе с несколькими своими производными.

Пусть интерполируемая функция f(x)задана своими значениями y i , в узлах х i,
(i = 0, 1,...,n). Обозначим длину частичного отрезка как h i =x i -x i-1 ,
(i = 1, 2,...,n). Будем искать кубический сплайн на каждом из частичных отрезков [х i-1 ;х i ] в виде:

где - четверка неизвестных коэффициентов. Можно доказать, что задача нахождения кубического сплайна имеет единственное решение.

Потребуем совпадения значений S(x)в узлах с табличными значениями функции f(x):

(6.3.4-2)

Число этих уравнений (2n) в два раза меньше числа неизвестных коэффициентов. Для того чтобы получить дополнительные условия, потребуем также непрерывности первой и второй производных сплайна во всех точках, включая узлы. Для этого следует приравнять левые и правые производные S"(x–0), S"(x+0), S"(x–0), S"(x+0) во внутреннем узле x i .

Вычислим выражения для производных S"(x), S"(x)последовательным дифференцированием (6.3.4-1):

S"(x) = b i + 2c i (x–x i-1) + 3d i (x–x i - l) 2 , (6.3.4-4)

S""(x) = 2c i + 6d i (x–x i - l),(6.3.4-5)

найдем правые и левые производные в узле:

S"(x i –0) = b i + 2сh i + 2d i h i ,

S"(x i +0) = b i+1 , где i = 1,2,..., n -1.

Аналогично поступаем для второй производной:

S"(x–0) = 2c i +6d i h i ,

S"(х+0) = 2с i+1 .

Приравняв левые и правые производные, получаем:

b i +1 = b i +2c i h i +2d i h i 2 (6.3.4-6)

с i+1 = с i - + 3d i h i , где i = 0, 1,..., n–1. (6.3.4-7)

Уравнения (6.3.4-6), (6.3.4-7) дают еще 2(n–1) условий. Для получения недостающих уравнений накладывают требования к поведению сплайна на концах отрезка интерполяции. Если потребовать нулевой кривизны сплайна на концах отрезка интерполяции (т. е. равенство нулю второй производной), то получим:

с i =0, c n +3d n h n = 0. (6.3.4-8)

Исключив из уравнений (6.3.4-2) – (6.3.4-3) nнеизвестных a i , получаем систе­му уравнений:

(6.3.4-9)

где i=0, 1,...., n - 1.

Система (6.3.4-9) состоит из 3(n-1)уравнений. Решив систему (6.3.4-9), получаем значения неизвестных b i , c i , d i ,определяющих совокупность всех формул для искомого интерполяционного сплайна:

где i = 0,1,...,n–1.(6.3.4-10)

Программа, реализующая метод сплайн-интерполяции, доста­точно громоздка, поэтому ограничимся обсуждением решения задачи об интерполяции синуса с помощью сплайнов, используя функции пакетов п.п. 6.3.6.