Аппроксимация функций (продолжение)

advertisement
Аппроксимация функций
(продолжение)
Многочлен Лагранжа.
Перейдем к случаю глобальной интерполяции.
Будем искать интерполяционный многочлен в виде
линейной комбинации многочленов степени n:
L( x)  y0l0 ( x)  y1l 1( x) 
 ynln ( x)
• При этом потребуем, чтобы каждый многочлен li(x)
обращался в нуль во всех узлах интерполяции, за
исключением одного (i-го), где он должен быть
равен единице.
• этим условиям при i = 0 отвечает многочлен вида
( x  x1 )( x  x2 ) ( x  xn )
l0 ( x) 
( x0  x1 )( x0  x2 ) ( x0  xn )
• Действительно, l0(x0) = 1.
• При х = х1, х2, ... , хn числитель выражения
обращается в нуль.
Аналогично
( x  x0 )( x  x2 ) ( x  xn )
l1 ( x) 
( x1  x0 )( x1  x2 ) ( x1  xn )
………………………………………………………
( x  x0 ) ( x  xi 1 )( x  xi 1 ) ( x  xn )
li ( x) 
( xi  x0 ) ( xi  xi 1 )( xi  xi 1 ) ( xi  xn )
• Подставляя l0 , l1 ,…, ln в L(x) получим
( x  x0 ) ( x  xi 1 )( x  xi 1 ) ( x  xn )
L( x)   yi
( xi  x0 ) ( xi  xi 1 )( xi  xi 1 ) ( xi  xn )
i 1
n
• эта формула определяет интерполяционный
многочлен Лагранжа.
• Из формулы для L(x)можно получить выражения
для линейной (n = 1) и квадратичной (n = 2)
интерполяций:
x  x0
x  x1
L( x) 
y0 
y1 , n  1,
x0  x1
x1  x0
( x  x0 )( x  x2 )
( x  x1 )( x  x2 )
L( x) 
y0 
y1 
( x0  x1 )( x0  x2 )
( x1  x0 )( x1  x2 )
( x  x0 )( x  x2 )

y2 , n  2.
( x2  x0 )( x2  x1 )
• Существует несколько обобщений
интерполяционного многочлена Лагранжа.
• интерполяционные многочлены Эрмита.
• Здесь наряду со значениями функции yi в узлах xi
задаются значения ее производной уi’.
• Задача состоит в том, чтобы найти многочлен  ( x )
степени 2n + 1, значения которого и значения его
производной в узлах xi удовлетворяют
соответственно соотношениям
 ( xi )  yi ,  ( xi )  yi, i  0,1, , n.
• Многочлен Ньютона.
• рассмотрим случай равноотстоящих
значений аргумента, т. е. хi - хi-1 = h = const
(i = 1,2,...,n).
• Величина h называется шагом.
• Введем понятие конечных разностей.
• Пусть известны значения функции в узлах yi  f ( xi )
• Составим разности значений функции:
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),
• Эти значения называются первыми разностями
(или разностями первого порядка) функции.
• вторые разности функции:
 yi  yi 1  yi ,
2
• Аналогично составляются разности порядка k :
k yi  k 1 yi 1  k 1 yi , i  0,1,
n  1.
• Конечные разности можно выразить
непосредственно через значения функции.
Например,
 y0  y1  y0  ( y2  y1 )  ( y1  y0 )  y2  2 y1  y0 ,
2
3 y0  2 y1  2 y0  y3  3 y2  3 y1  y0 ,
• Аналогично для любого k можно написать
k (k  1)
 y0  yk  k yk 1 
yk  2 
2!
k
 (1) k y0 ,
• Эту формулу можно записать и для
значения разности в узле xi:
k (k  1)
 yi  yk i  k yk i 1 
yk  i  2 
2!
k
 (1) k yi ,
• Используя конечные разности, можно
определить уk
k (k  1) 2
yk  y0  k y0 
 y0 
2!
  k y0 .
• Перейдем к построению интерполяционного
многочлена Ньютона. Этот многочлен будем
искать в следующем виде:
N ( x)  a0  a1 ( x  x0 )  a2 ( x  x0 )( x  x1 ) 
 an ( x  x0 )( x  x1 )
( x  xn1 )
• График многочлена должен проходить через
заданные узлы, 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  2a2 h 2  y2 ,
• Найдем отсюда коэффициенты a0 , a1 , a2
a0  y0 ,
y1  a0 y1  y0 y0
a1 


,
h
h
h
y2  a0  2a1h y2  y0  2y0  2 y0
a2 


,
2
2
2
2h
2h
2h
• Общая формула имеет вид
 k y0
ak 
, k  0,1,
k
k !h
, n.
• Подставляя эти выражения в формулу для N(x)
получаем следующий вид интерполяционного
многочлена Ньютона:
y0
 2 y0
N ( x)  y0 
( x  x0 ) 
( x  x0 )( x  x1 ) 
2
h
2!h
 n y0

( x  x0 )( x  x1 ) ( x  xn1 ).
n
n !h
• Данную формулу часто записывают в другом
виде.
• Для этого вводится переменная t  ( x  x0 ) / h
тогда x  x0  th,
x  x1 x  x0  h

 t  1,
h
h
x  x2
 t  2,
h
x  xn 1
 t  n  1.
h
тогда
t (t  1) 2
N ( x)  y0  t y0 
 y0 
2!
t (t  1)...(t  n  1) n

 y0 .
n!
Полученное выражение называется первым
интерполяционным многочленом Ньютона для
интерполирования вперед.
• Полученное выражение может аппроксимировать
данную функцию на всем отрезке изменения
аргумента [х0, хn].
• Однако с точки зрения повышения точности
расчетов более целесообразно использовать эту
формулу для вычисления значении функции в
точках левой половины рассматриваемого
отрезка.
• Для правой половины отрезка [х0, хn]. разности
лучше вычислять справа налево.
• В этом случае t  ( x  xn ) / h, x  xn  th,
• тогда
t (t  1) 2
N ( x)  yn  t yn 1 
 yn  2 
2!
t (t  1)...(t  n  1) n

 y0 .
n!
Полученная формула называется вторым
интерполяционным многочленом Ньютона
для интерполирования назад.
Download