Мет выч методичка
.pdfМногочлен Лагранжа
Будем строить интерполяционный многочлен, единый для всего отрезка [x0; xn], в виде линейной комбинации многочленов степени n:
L(x) = y0l0(x) + y1l1(x) + ::: + ynln(x) |
(33) |
так, чтобы многочлены li(x) обращались в нуль во всех узлах интерполяции, кроме i - го, где он должен равняться единице. Этим условиям при i = 0 отвечает многочлен вида:
l0(x) = |
(x x1)(x x2)(x x3):::(x xn) |
(34) |
|
(x0 x1)(x0 x2)(x0 x3):::(x0 xn) |
|||
|
|
31
Аналогично, |
|
|
l1(x) = |
|
(x x0)(x x2)(x x3):::(x xn) |
|
(x1 x0)(x1 x2)(x1 x3):::(x1 xn) |
|
|
|
|
l2(x) = |
|
(x x0)(x x1)(x x3):::(x xn) |
|
(x2 x0)(x2 x1)(x2 x3):::(x2 xn) |
|
|
|
|
::: |
(35) |
|
li(x) = |
|
(x x0):::(x xi 1)(x xi+1):::(x xn) |
::: |
(xi x0):::(xi xi 1)(xi xi+1):::(xi xn) |
|
|
|
|
ln(x) = |
|
(x x0)(x x1)(x x2):::(x xn 1) |
|
|
(xn x0)(xn x1)(xn x2):::(xn xn 1) |
Подставляя (34),(35) в (33) получаем интерполяционный многочлен Лагранжа:
n |
|
(x x0):::(x xi 1)(x xi+1):::(x xn) |
|
||||||||||
L(x) = y |
|
(36) |
|||||||||||
Xi |
i |
(xi |
|
x0):::(xi |
|
xi |
|
1)(xi |
|
xi+1):::(xi |
|
xn) |
|
=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
32
Единственность найденного решения следует из единственности решения системы (29). Если положить n = 1 в (36), то получим рассмотренный ранее случай линейной интерполяции, при n = 2 – случай квадратичной интерполяции:
L(x) = |
(x x1)(x x2) |
y0 + |
(x x0)(x x2) |
y1+ |
|
|
(x0 x1)(x0 x2) |
|
|
|
|||
|
|
(x1 x0)(x1 x2) |
|
|||
|
|
|
+ |
(x x0)(x x1) |
y2 (37) |
|
|
|
|
(x2 x0)(x2 x1) |
|
Упражнение. Проверить, что из (36) при n = 1 следует случай линейной интерполяции.
Многочлен Ньютона
При построении интерполяционного многочлена Лагранжа не накладывалось никакого требования на распределение узлов интерполяции. Рассмотрим случай равноотстоящих по оси x узлов интерпо-
33
ляции. Введем h = xi xi 1 – шаг интерполяции, h = const.
Конечные разности
Разности первого порядка (первые разности)
y0 = y1 y0 = f(x0 + h) f(x0)y1 = y2 y1 = f(x0 + 2h) f(x0 + h)
:::
yn 1 = yn yn 1 = f(x0 + nh) f(x0 + (n 1)h)
Разности второго порядка (вторые разности)
2y0 = y1 y02y1 = y2 y1
:::
Разности порядка k
kyi = k 1yi+1 k 1yi; i = 0; 1; :::; n 1
34
Конечные разности выражаются через значения функции
2y0 = y1 y0 = (y2 y1) (y1 y0) = y2 2y1 + y03y0 = 2y1 2y0 = ::: = y3 3y2 + 3y1 y0
В общем случае
|
|
k |
|
||
k |
|
|
j j |
|
|
|
Xj |
(38) |
|||
yi = |
( 1) Ck yi+k j |
||||
|
|
=0 |
|
|
|
где |
|
|
|
|
|
|
|
k! |
|
||
|
Cj |
= |
|
||
|
|
|
|
||
|
|
|
|
||
|
k |
|
j!(k j)! |
|
|
|
|
|
|
Упражнение. Используя метод математической индукции доказать формулу (38).
35
Интерполяционный многочлен Ньютона будем искать в следующем виде:
N(x) = a0 + a1(x x0) + a2(x x0)(x x1) + :::+
+ an(x x0)(x x1):::(x xn 1) (39) График многочлена должен проходить через заданные узлы, т.е N(xi) = yi i = 0; 1; :::; n. Для нахождения коэффициентов много-
члена получаем систему
N(x0) =a0 = y0;
N(x1) =a0 + a1(x1 x0) = a0 + a1h = y1;
N(x2) =a0 + a1(x2 x0) + a2(x2 x0)(x2 x1) = = a0 + 2a1h + 2a2h2 = y2;
::::
Отсюда находим коэффициенты ai:
a0 = y0; a1 = y1 a0 h
= y1 y0 = y0 h h
36
a2 = |
y2 a0 2a1h |
|
= |
y2 a0 2 y0 |
= |
2y0 |
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
2h2 |
|||||||||||||||
|
|
|
|
2h2 |
|
|
|
|
|
::: |
|
2h2 |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
ak = |
ky0 |
; k = 0; 1; 2; :::; n: |
|
|
|
|
|||||||||||||||||
|
|
|
|
|
k!hk |
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Подставляя в (39), получаем |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
N(x) = y0 + |
y0 |
(x x0) + |
|
2y0 |
(x x0)(x x1) + :::+ |
||||||||||||||||||||||
h |
|
|
2!h2 |
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
+ |
ny0 |
(x x0)(x x1):::(x xn 1) (40) |
||||||||||||||||||
|
|
|
|
|
|
|
n!hn |
||||||||||||||||||||
Если ввести переменную t = |
x x0 |
, то |
|
|
|
|
|
|
|||||||||||||||||||
h |
|
|
|
|
|
|
|||||||||||||||||||||
x = x |
0 |
+ th; |
|
x x1 |
|
|
|
= |
x x0 h |
= t |
|
1 |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
h |
|
|
|
|
h |
|
|
|
|
|
||||||
x x2 |
= t |
|
2; |
|
|
|
:::; |
|
|
|
x xn 1 |
= t |
|
n + 1 |
|||||||||||||
|
h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
h |
|
|
|
|
37
В результате получаем
N(x) = N(x0 + th) = y0 + t y0 + t(t 1) 2y0 + :::+ 2!
+ t(t 1):::(t n + 1) ny0 (41) n!
Полученное выражение называется первым интерполяционным многочленом Ньютона для интерполирования вперед. Оно справедливо на всем отрезке [x0; xn], но для уменьшения ошибок округления разумно использовать его только для левой половины рассматриваемого отрезка.
Полученная формула для интерполирования вперед практически неудобна для интерполирования функции вблизи конца отрезка. В этом случае используют формулу для многочлена Ньютона для интерполирования назад, которую мы сейчас и получим.
38
Интерполирующий полином запишем в следующем виде:
N(x) = a0 + a1(x xn) + a2(x xn)(x xn 1) + :::
+ an(x xx)(x xn 1):::(x x1): (42) Из условия совпадения значения многочлена и функции в узлах находим
N(xn) = yn ) a0 = yn
N(xn 1) = yn 1 ) yn + a1( h) = yn 1 )
|
a1 |
= |
yn yn 1 |
= |
yn 1 |
|||
Аналогично находим |
|
h |
|
|
h |
|||
|
|
|
|
|
|
|||
a2 |
= |
yn 2yn 1 + yn 2 |
= |
2yn 2 |
||||
|
|
|
|
2h2 |
|
|
|
2h2 |
и в общем случае, применяя метод математической индукции можно строго доказать, что
kyn k
ak = k!hk :
39
Подставляя найденные коэффициенты в (42), получаем
N(x) = y |
|
+ |
yn 1 |
(x |
|
x |
) + |
2yn 2 |
(x |
|
x |
)(x |
|
x |
n 1 |
) + ::: |
|||||||||||
|
n |
|
1!h |
n |
|
2!h2 |
|
|
|
|
|
n |
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
+ |
ny0 |
(x |
xn):::(x x1): (43) |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
n!hn |
|||||||||||||||
Делая замену t = |
x xn |
, окончательно находим |
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t(t + 1) |
|
2 |
|
|
|
|
|
|
|
||||||
N(x) = N(xn + th) = yn + t y |
n 1 |
+ |
|
|
|
|
|
|
|
|
y |
n 2 |
+ :::+ |
||||||||||||||
2! |
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ t(t + 1):::(t + n 1) ny0 (44) n!
Соотношение (44) – второй интерполяционный многочлен Ньютона для интерполирования назад.
Отметим, что существует один и только один интерполяционный многочлен при заданном наборе узлов интерполяции. Формулы Лагранжа, Ньютона и др. порождают один и тот же многочлен, разница
40