Интерполирование функций

advertisement
4. ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ
4.0. Постановка задачи интерполирования.
На отрезке [a,b] заданы точки x0 , x1,..., xn , которые называются узлами
интерполяции, и значения некоторой функции f(x) в этих точках
f ( x0 )  y 0 , f ( x1 )  y1, …, f ( xn )  y n .
(1)
Для удобства поместим их в таблицу
x0
xn
x2
…
x
y0
yn
f ( x)
y1
…
Требуется построить функцию F(x) (интерполирующая функция), принимающую в узлах интерполяции те же значения, что и f(x), т. е. такую, что
F  x0   y 0 , F  x1   y1 , …, F  xn   y n .
(2)
Геометрически это означает, что нужно найти кривую y = F(x) определенного
типа, проходящую через заданную систему
точек Mi ( xi , y i ) , i  0, 1, 2, ...
В такой общей постановке задача
может иметь бесчисленное множество
решений или совсем не иметь решений.
Однако эта задача становится однозначно
разрешимой, если вместо произвольной
функции F(x) искать полином Pn ( x )
степени не выше n, удовлетворяющий
условиям (2), т. е. такой, что
Рис. 8
Pn ( x )  a0  a1x  a2 x 2  ...  an x n ,
Pn ( x0 )  y 0 , Pn ( x1)  y1,..., Pn ( xn )  y n .
(3)
Докажем это. Равенства (3) представляют собой линейную систему (n+1)
алгебраических уравнений вида:
a0  a1x0  a2 x0 2  ...  an x0n  y 0 ,

2
n
a0  a1x1  a2 x1  ...  an x1  y1,
(4)

............................................

a  a x  a x 2  ...  a x n  y .
1 n
2 n
n n
n
 0
с (n+1) неизвестными a0 , a1,...an .
Определителем этой системы является определитель Вандермонда
1 x0 x02 ... x0n
1 x1
... ...
1 xn
x12 ... x1n
 0,
... ... ...
xn2 ... xnn
3
который отличен от нуля, так как узлы xi — различны. Следовательно, система
(3) имеет единственное решение при любых правых частях y i , т. е. коэффициенты интерполяционного многочлена Pn ( x ) находятся однозначно.
Интерполяционные формулы обычно используют для приближенного вычисления значений данной функции f(x) для значений аргумента x, отличных от
узлов интерполирования. Такая операция называется интерполированием.
4.1. Интерполяционный полином Лагранжа
Пусть функция f ( x) задана таблицей. Построим интерполяционный полином Ln ( x) , степени не больше n и для которого выполнены условия (3).
Будем искать Ln ( x) в виде
где li ( x) – полином степени n , причем
Ln ( x)  l0 ( x)  l1 ( x)  ...  ln ( x)
 y , если i  k
li ( xk )   i
 0, если i  k
(5)
(6)
Требование (6) совместно с (5) обеспечивает выполнение условий (3).
Полиномы li ( x) составим следующим образом:
li ( x)  ci ( x  x0 )( x  x1 ) ... ( x  xi 1 )( x  xi 1 ) ... ( x  xn )
(7)
Здесь ci – постоянный коэффициент, значение которого найдем из первой части
условия (6):
ci 
yi
( xi  x0 )( xi  x1 ) ... ( xi  xi 1 )( xi  xi 1 ) ... ( xi  xn )
Подставим ci в (7), тогда с учётом (5), интерполяционный полином
Лагранжа будет иметь вид:
n
Ln ( x)   yi
i 0
( x  x0 )( x  x1 )...( x  xi 1 )( x  xi 1 )...( x  xn )
( xi  x0 )( xi  x1 )...( xi  xi 1 )( xi  xi 1 )...( xi  xn )
(8)
Пример 1. Построить интерполяционный полином Лагранжа для функции, заданной таблицей:
x
1
3
4
f ( x)
12
4
6
Решение. Из таблицы видно, что x0  1 , x1  3 , x2  4 , т. е. степень n интерполяционного полинома не выше, чем вторая. Используя формулу (8) получаем:
L2 ( x)  12
( x  3)( x  4)
( x  1)( x  4)
( x  1)( x  3)
4
6
 2( x 2  7 x  12) 
(1  3)(1  4)
(3  1)(3  4)
(4  1)(4  3)
2( x 2  5 x  4)  2( x 2  4 x  3)  2 x 2  12 x  22
4
Формуле Лагранжа (8) можно придать более сжатый вид.
Пn1 ( x)  ( x  x0 )( x  x1 ) ... ( x  xn )
Обозначим произведение:
Продифференцируем это произведение Пn1 ( x) по x :
n
Пn1 ( x)   ( x  x0 )...( x  xi 1 )( x  xi 1 )...( x  xn )
i 0
При x  xi ( i  0,1, ... , n ) имеем:
Пn1 ( xi )  ( xi  x0 ) ... ( xi  xi 1 )( xi  xi 1 ) ... ( xi  xn )
Тогда формула Лагранжа примет вид:
n
Ln ( x)   yi
i 0
n
  yi
i 0
( x  x0 ) ( x  xi 1 )( x  xi 1 ) ( x  xn )

( xi  x0 ) ( xi  xi 1 )( xi  xi 1 ) ( xi  xn )
n
Пn1 ( x)
yi
 Пn1 ( x)
( x  xi ) Пn1 ( xi )
i 0 ( x  xi ) Пn 1 ( xi )
n
Ln ( x )  П n1 ( x )
Окончательно:
i 0
yi
( x  xi )П n1 ( xi )
(8c)
Полезно рассмотреть два частных случая полинома Лагранжа.
При n = 1 имеем две точки, и формула Лагранжа представляет в этом
случае уравнение прямой y  L1( x ) , проходящей через две эти точки:
y
x b
x a
y0 
y1 ,
ab
ba
где a и b — абсциссы этих точек.
При n = 2 получим уравнение параболы y  L2 ( x ) , проходящей через три
( x  b)( x  c )
( x  a)( x  c )
( x  a )( x  b )
y0 
y1 
y2 ,
(a  b)(a  c )
(b  a )(b  c )
(c  a )(c  b )
где a, b и с — абсциссы этих точек.
точки
y
5
4.2. Оценка погрешности формулы Лагранжа
Для функции y  f ( x) мы построим интерполяционный полином Лагранжа
Ln ( x ) , принимающий в точках x0 , x1 , …, xn , заданные значения y 0  f ( x0 ) , …,
y n  f ( xn ) . Возникает вопрос, насколько близко построенный полином приближается к функции f ( x ) в других точках, т. е. как велик остаточный член
Rn ( x )  f ( x )  L( x ) .
Предположим, что при x  a, b  , содержащем все узлы интерполирования,
функция f ( x) имеет все производные f ' ( x ) , f '' ( x ) , …, f ( n 1) ( x ) до (n+1)-го порядка
включительно.
Введем вспомогательную функцию F ( x )  f ( x )  L( x )  Cw ( x ) (8), где С — постоянный коэффициент, который будет выбран ниже. Очевидно, F ( x ) имеет (n+1)
корень в точках x0 , x1 , …, xn . Подберем коэффициент С так, чтобы F ( x ) имела (n+2)-й
корень в любой фиксированной точке x  a, b , не совпадающей с узлами интерполирования. Для этого достаточно положить f ( x )  L( x )  Cw( x )  0 . Так как w  x   0 , то
f ( x )  L( x )
.При этом значении С функция F ( x ) имеет (n+2) корня на отрезке a, b 
w(x )
и будет обращаться в нуль на концах каждого из отрезков  x0 , x1  ,  x1, x2  , …, [ xi , x ] ,
C
 x, xi 1 ,…,  xn1, xn  . Применяя теорему Ролля к каждому из этих отрезков, убеждаем-
ся, что производная F '( x) , имеет не менее (n+1)-го корня. Применив теорему Ролля к
производной F '( x) , мы убеждаемся, что производная F ''( x) имеет n корней на a, b  .
Продолжая эти рассуждения, придем к заключению, что на рассматриваемом отрезке
a, b производная F (n 1) ( x ) имеет хотя бы один корень, который обозначим через  ,
т. е.
F ( n 1) ()  0 .
Из
(8),
так
L(nn 1) ( x)  0
как
и
w ( n 1) ( x )  (n  1)! ,
имеем:
F ( n 1) ( x )  f ( n 1) ( x )  C(n  1)! . При x   получаем: 0  f ( n 1) ()  C(n  1)! . Отсюда
C
n 1
f ( x )  Ln ( x )
f ( n 1) () f ( x )  Ln ( x )
f   ()

, a, b  . С другой стороны, C 
, т. е.
, то
(n  1)!
(n  1)!
w(x )
w(x)
есть f ( x )  Ln ( x ) 
f ( n 1) ()
w ( x ) . Так как x — произвольно, то справедливо
(n  1)!
Rn ( x )  f ( x )  L( x ) 
f ( n 1) ()
w ( x ) , x,   a, b .
(n  1)!
Отсюда, если известна верхняя граница
Mn 1  sup f n 1( x) ,
x[ a,b ]
получим оценку для абсолютной погрешности интерполяционной формулы
Лагранжа
Rn ( x ) 
Mk 1
L( x ) , x  a, b  .
(n  1)!
6
Формула Лагранжа удобна в задаче интерполирования многих функций в
одной точке x , т. к. все значения множителей Lk ( x ) можно вычислить однажды
для всех функций. Но формула Лагранжа имеет существенный недостаток.
Бывает, что заданное число узлов недостаточно для достижения заданной
точности. Тогда к данным узлам добавляют еще один или несколько и выполняют вычисления заново.
4.3. Конечные разности различных порядков. Таблица разностей
Часто интерполирование ведется для функций y  f ( x) заданных таблицами y i  f ( xi ) с равностоящими значениями аргумента. В этом случае шаг
таблицы h  xi 1  xi , i  0,1,2,3... является величиной постоянной. Для таких
таблиц построение интерполяционных формул заметно упрощается.
Пусть y  f ( x) — заданная функция. Обозначим через h  x фиксированную величину приращения аргумента. Выражение y  f ( x )  f ( x x )  f ( x )
называется первой конечной разностью.
Аналогично определяются конечные разности высших порядков
 n y  (  n 1y ) ,
n  2,3,4...
Конечные разности последовательности y i , i  0,1,2,3... естественно определяются соотношениями:
y i  y i 1  y i ,
2 yi  (yi 1)  yi 1  yi ,
…………………………….
n yi  (n 1yi 1)  n 1yi 1  n 1yi .
Конечные разности любого порядка могут быть представлены через значения функции. Действительно, для разности второго порядка имеем:
2 yi  yi 1  yi  yi 2  yi 1  yi 1  yi  yi 2  2yi 1  yi .
Аналогично для разности третьего порядка
 y i  2y i 1 2y i  ( y i 3  2y i 2  y i 1)  (y i 2  2y i 1  y i )  y i 3  3y i 2  3y i 2`  y i .
3
Методом математической индукции можно доказать, что
 k y i  y i  k  ky i  k 1 
k (k  1)
y i  k  2  ...  (1)k y i .
2!
7
Конечные разности различных порядков удобно располагать в форме
таблицы: горизонтальной или диагональной.
x
y
y
2y
3 y
x
y
x0
y0
y 0
2 y0
3 y 0
x0
y0
x1
y1
y1
2 y1
x2
y2
y 2
x3
y3
y
2y
3 y
y 0
x1
2 y0
y1
y1
…
x2
3 y 0
2 y1
y2
y 2
…
…
x3
y3
4.4. Первая интерполяционная формула Ньютона
Пусть для функции y  f ( x) заданы значения y i  f ( xi ) , xi  x0  ih ,
где h — шаг интерполяции, i  0, n ,. Требуется подобрать полином Pn ( x ) степени
не выше n, принимающий в точках xi значения Pn ( xi )  y i , .
Следуя Ньютону, будем искать полином в виде:
Pn ( x )  a0  a1( x  x0 )  a2 ( x  x0 )( x  x1)  ...  an ( x  x0 )( x  x1)...( x  xn )
Задача состоит в определении коэффициентов
(9)
ai , i  0, n полинома.
Полагая x  x0 в выражении (9), получим
Pn ( x0 )  y 0  a0 .
Положим x  x1 , тогда Pn ( x1)  y1  a0  a1( x1  x0 )  y 0  a1( x1  x0 ) .
А отсюда следует, что
a1 
y 1  y 0 y 0

.
x1  x0
h
Положим x  x2 , тогда
y
2h  a2 2h 2 .
h
y 2  y 0  2 y 0 y 2  2y 1  y 0  2 y 0
.
a2 


2h2
2h2
2h2
Pn ( x2 )  y 2  a0  a1( x2  x0 )  a2 ( x2  x0 )( x2  x1 )  y 0 
Отсюда
k y0
Последовательно продолжая этот процесс, получим ak 
, k  0, n .
k ! hk
Заметим, что 0!=1 и  0 y  y .
Подставляя найденные коэффициенты ai
интерполяционный полином Ньютона:
в выражение (9), получим
y 0
2 y 0
n y 0
Pn ( x )  y 0 
( x  x0 ) 
( x  x0 ) x  x1   ... 
( x  x0 ) x  x1 ...( x  xn1) . (10)
1!h
2!h2
n! h n
8
Легко видеть, что построенный полином полностью удовлетворяет поставленным требованиям. Его степень не выше n и
Pn ( x0 )  y 0 ,
y 0
y  y0
( x1  x0 )  y 0  1
h  y1 ,
h
h
y
2 y 0
y y
y  2y 1  y 0 2
Pn ( x2 )  y 0  0 ( x2  x0 ) 
( x2  x0 ) x2  x1   y 0  1 0 2h  2
2h  y 2
2
h
2h
h
2h 2
и так далее.
Pk ( xk )  y k , k  1, n .
Нетрдно показать, что
Pn ( x1 )  y 0 
Для практического использования интерполяционную формулу (10) обычно записывают в несколько преобразованном виде.
x  x0
x  x0  qh ,
Введем новую переменную q 
, тогда
h
x  x1 x0  qh  x0  h

 q  1,
h
h
x  x2 x0  qh  x0  2h

 q  2,
h
h
…………………………
x  xn 1
 q  n  1.
h
Подставляя эти выражения в формулу (10), получим первую интерполяционную формулу Ньютона.
q(q  1) 2
q(q  1)(q  2) 3
 y0 
 y0 
2!
3!
q(q  1)(q  2)...(q  n  1) n

 y0.
n!
Pn ( x )  y 0 y 

(11)
Эту формулу выгодно использовать для интерполирования функции y  f ( x) в
окрестности начального значения x  x0 , где q мало по абсолютной величине.
При n = 1, получим формулу линейного интерполирования
P1( x )  y 0  q y 0 .
При n = 2 будем иметь формулу параболического или квадратичного
интерполирования
P2 ( x )  y 0  q y 0 
q(q  1) 2
 y0 .
2
З а м е ч а н и е 1 . Если дана неограниченная таблица значений функции
y  f ( x) , то число n в интерполяционной формуле Ньютона (11) может быть любым.
Практически число n в этом случае выбирают так, чтобы разность n y i была постоянной с заданной степенью точности. За начальное значение x0 можно принимать любое
табличное значение аргумента x . Если таблица значений конечна, то число n ограничено, а именно: n не может быть больше числа значений функции y , уменьшенного на
1.
9
З а м е ч а н и е 2 . При применении первой интерполяционной формулы Ньютона удобно пользоваться горизонтальной таблицы разностей, так как тогда нужные
значения разностей функции находятся в соответствующей горизонтальной строке
таблицы.
4.5. Вторая интерполяционная формула Ньютона
Первая интерполяционная формула Ньютона на практике неудобна для
интерполирования вблизи конца таблицы. В этом случае обычно применяется
вторая интерполяционная формула Ньютона.
Пусть имеем систему значений функции y i  y ( xi ) , i  0, n для равноотстоящих значений аргумента xi  x0  ih .
Построим интерполяционный полином следующего вида:
Pn ( x )  a 0 a1( x  xn )  a2 ( x  xn )( x  xn 1 )  a3 ( x  xn )( x  xn 1 )( x  xn 2 ) 

 an ( x  xn )( x  xn 1 )...( x  x1 ).
(12)
Задача состоит в определении коэффициентов ai таким образом, чтобы
Pn ( xi )  y i
были выполнены равенства:
для i  0, n .
Положим x  xn .в формуле (12). Тогда Pn ( x )  y n  a0 ,
Для x  xn 1 , имеем Pn ( xn 1 )  y n 1  a0  a1( xn 1  xn )  a0  ha1  y n  ha1 ,
y n  y n 1 y n 1

.
h
h
Для x  xn  2 получаем:
откуда a1 
Pn ( xn 2 )  y n 2  a0  a1( xn 1  xn )  a2 ( xn 2  xn )( xn 2  xn 1 )  y n 
y n 1
2h  a2 ( 2h )h ,
h
y n 2  y n  2y n  2y n 1 y n  2y n 1  y n 2 2 y n 2
откуда a2 
.


2h2
2h2
2h2
Последовательно продолжая этот процесс, мы получим
i y n i
ai 
i ! hi
,
i  0, n .
Подставляя эти значения в формулу (12) получим вторую интерполяционную формулу Ньютона:
y n 1
 2 y n 2
Pn ( x )  y n 
( x  xn ) 
( x  xn )( x  xn 1 ) 
1! h
2! h 2
n y0
 
( x  xn )( x  xn 1 ) ( x  x1 ).
n ! hn
Введем более удобную запись полученной формулы. Обозначим q 
Тогда
x  xn 1 x  xn  h

 q  1,
h
h
(13)
x  xn
.
h
x  xn  2 x  xn  2h

 q  2 …. и так далее….
h
h
10
Подставим эти значения в формулу (13), получим:
y n 1
 2 y n 2
 3 y n 3
Pn ( x )  y n  q
 q(q  1)
 q(q  1)(q  2)

1!
2!
3!
n y 0
...  q(q  1)...(q  n  1)
.
n!
(14)
Формула (14) и есть обычный вид второй интерполяционной формулы Ньютона.
4.6. Оценки погрешностей интерполяционных формул Ньютона
Если узлы интерполирования x0 , x1, , xn — равноотстоящие, причем
xi 1  xi  h , i  0, n  1,
x  x0
, на основании оценки остаточного члена интерполяционh
ной формулы Лагранжа, получим остаточный член первой интерполяционной формулы Ньютона:
f n 1()
f n 1() n 1
Rn ( x ) 
( x ) 
h q(q  1) (q  n) ,
(n  1)!
(n  1)!
где  — некоторое промежуточное значение между узлами интерполирования
x0 , x1, , xn и рассматриваемой точкой x .
то, полагая q 
x  xn
, получим остаточный член второй инh
терполяционной формулы Ньютона:
f n 1()
f n 1() n 1
Rn ( x ) 
( x ) 
h q(q  1) (q  n) ,
(n  1)!
(n  1)!
где  — некоторое промежуточное значение между узлами интерполирования
x0 , x1, , xn и рассматриваемой точкой x .
Аналогично, полагая q 
Обычно при практических вычислениях интерполяционная формула Ньютона обрывается на членах, содержащих такие разности, которые в пределах
заданной точности можно считать постоянными.
Предполагая, что  n 1y почти постоянны для функции y  f ( x) и h — доn 1y 0
n 1
статочно мало, и учитывая, что
f ( x)  lim n 1 ,
h 0 h
 n 1y 0
n 1
приближенно можно положить
f ()  n 1 .
h
В этом случае остаточный член первой интерполяционной формулы
Ньютона приближенно равен
Rn ( x ) 
q(q  1) (q  n) n 1
 y0 .
(n  1)!
11
В этих же условиях для остаточного члена второй интерполяционной
формулы Ньютона получаем выражение:
Rn ( x ) 
q(q  1) (q  n) n 1
 y0 .
(n  1)!
З а м е ч а н и е 3 . Если максимальные разности практически постоянны, то результат интерполирования обыкновенно имеет столько верных десятичных знаков,
сколько их есть в табличных данных, и поэтому оценка погрешности не обязательна.
При пользовании интерполяционной формулой Лагранжа нет возможности следить за
ходом конечных разностей, и поэтому следует, если это возможно, оценивать остаточный член.
12
Download