Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Мет выч методичка

.pdf
Скачиваний:
88
Добавлен:
21.05.2015
Размер:
1.2 Mб
Скачать

Многочлен Лагранжа

Будем строить интерполяционный многочлен, единый для всего отрезка [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