т.е. в узлах интерполяции xk значения многочлена (1.5) совпадают со значениями приближаемой функции f(x) , так как согласно таблице (1.1) выполняются равенства yk f xk .
Формула (1.5) значительно упростится в случае равноотстоящих узлов интер-
полирования, т.е. когда все отрезки |
|
[xk, xk+1] ( k 0,1,2, , n 1) будут одинаковой |
||||||||||||||||
длины h. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рассмотрим самую простую ситуацию, когда значения функции |
y f x за- |
|||||||||||||||||
даны в двух узлах интерполяции х0, |
х1: y0 |
f x0 , y1 f x1 . Тогда |
n 1 и со- |
|||||||||||||||
гласно (1.5) интерполяционный многочлен Лагранжа принимает вид |
|
|||||||||||||||||
L x y |
|
x x1 |
y |
x x0 |
. |
|
||||||||||||
|
|
|
|
|
||||||||||||||
1 |
|
|
|
0 |
x |
0 |
x |
1 |
x |
x |
0 |
|
|
|||||
|
|
|
|
|
|
|
1 |
|
|
|
1 |
|
|
|
|
|
||
Для функции f x получилось приближённое равенство |
|
|||||||||||||||||
f x y |
|
|
x x1 |
y |
|
x x0 |
|
|
|
(1.6) |
||||||||
0 |
|
x |
0 |
x |
1 x |
x |
0 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
1 |
|
|
1 |
|
|
|
|
|
|
|||
которое называют формулой линейной интерполяции, так как многочлен L1(x) есть линейная функция x kx b . При таком подходе дуга исходной интерполируемой кривой y f x на промежутке [x0, x1] заменяется отрезком прямой
y y |
|
x x1 |
y |
x x0 |
, |
(1.7) |
||
|
|
x |
x x |
|
||||
|
0 |
x |
1 |
0 |
|
|
||
|
|
0 |
1 |
|
1 |
|
|
|
соединяющим две точки (х0, у0) и (х1, у1) исходной таблицы (1.1). Так как х1≠х0, эти точки не являются вертикальными. Из аналитической геометрии известно, что уравнение прямой на плоскости, проходящей через точки (х0,у0) и (х1, у1), не являющиеся вертикальными, имеет вид
y y0 y1 y0 ( x x0 ) . x1 x0
Предлагаем читателю установить, что уравнение совпадает с последним. Учитывая сказанное, приближённое равенство (1.6) можно переписать в виде
f (x) f (x |
|
) |
y1 |
y0 |
(x x |
|
). |
(1.8) |
0 |
|
|
0 |
|||||
|
|
x1 |
x0 |
|
|
|||
|
|
|
|
|
|
|||
Формула линейной интерполяции функции f(x) используется для приближённого вычисления её значений внутри промежутка [x0, x1].
В математическом анализе (точнее, дифференциальном исчислении функций одной переменной) для дифференцируемых функций хорошо известно другое приближённое равенство
f x f x0 f x0 x x0 , |
(1.9) |
6 |
|
применяемое для приближённого вычисления значений функции в окрестности ( x 0 ; x0 ) точки х0 достаточно малого радиуса .
Равенство (1.9) следует из определения производной в точке, т.е. из равенства
lim |
f ( x) f ( x0 ) |
f ( x ) |
|
||
x x0 |
0 |
|
x x0 |
||
или из приближённого равенства y(x0 ) dy(x0 ) для дифференцируемой функции, которое означает, что приращение функции в точке х0 ( y(x0 ) f (x) f (x0 ) )
примерно равно дифференциалу этой функции в точке х0 ( dy(x0 ) f (x0 ) x,x x x0 есть приращение аргумента). При этом точность последнего прибли-
жённого равенства тем больше, чем меньше x , т.е. чем ближе х к х0.
Так как справа в (1.9) стоит линейная функция, формулу (1.9) называют линеаризацией функции f(x) в окрестности точки х0. Эту формулу можно использовать как для x x0 , так и для x x0 , но достаточно близких аргументов х к х0.
Читателю рекомендуется дать геометрическую интерпретацию формулам
(1.8) и (1.9).
Шаг 1. Найдём коэффициенты k k xk :
|
0 x0 x1 x0 x2 x0 xn , |
|
|
1 x1 x0 x1 x2 x1 x3 x1 xn , |
|
|
2 x2 x0 x2 x1 x2 x3 x2 xn , |
|
и так до n |
xn x0 xn x1 xn |
x2 xn xn 1 . |
Каждый |
коэффициент k |
xk x j есть произведение разностей xk со |
|
|
j k |
всеми остальными значениями аргументов из таблицы (1.1).
x x x j x x0 x x1 x x2 x xn .
Полином Лагранжа для значений функции в точке x выглядит так:
|
y0 |
|
|
y1 |
|
|
|
|
y2 |
|
yn |
|
|||
Ln x ( x) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
x x0 |
1 |
x x1 |
|
2 |
x x2 |
|
||||||||
0 |
|
|
|
n x xn |
|||||||||||
где y0 , y1 , , yn – известные значения функции в точках |
x0 , x1 , , xn |
соответ- |
|||||||||||||
ственно. Последняя формула совпадает с (1.5). |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
n |
|
|
x x |
|
y |
k |
|
|
x A |
x A |
x |
|
|
|
|
|
A |
||||||
|
|
|
|||||||||
|
|
j |
|
|
|
|
0 0 |
1 1 |
n n |
|
|
k 1 |
j k |
|
|
k |
|
|
|
|
|||
как классический полином Лагранжа, а продолжая раскрытие скобок, свести к стандартному виду a0 a1x a2 x2 an xn , но обычно удобнее работать с поли-
номом в виде, полученном на шаге 2, хотя он и терпит устранимый разрыв во всех точках xk .
х |
0 |
1 |
2 |
3 |
4 |
|
|
|
|
|
|
у |
2 |
3 |
6 |
11 |
18 |
|
|
|
|
|
|
построить полином Лагранжа и найти приближённые значения в точках 2,7 и 4,05. Решение. Удобно пронумеровать точки и значения:
x0 0, x1 1, x2 2, x3 3, x4 4 и y0 2, y1 3, y2 6, y3 11, y4 18.
0 0 1 0 2 0 3 0 4 24 ,
1 1 0 1 2 1 3 1 4 6 ,2 2 0 2 1 2 3 2 4 4 ,
3 3 0 3 1 3 1 3 4 64 4 0 4 1 4 2 4 3 24 .
Шаг 2. Составим произведение x x 0 x 1 x 2 x 3 x 4 . Полином Лагранжа:
|
|
2 |
|
|
3 |
|
|
|
|
|
|
|
6 |
|
|
|
|
11 |
|
|
|
|
|
18 |
|
|||
L |
x x x 1 x 2 x 3 x 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
4 |
|
24x |
|
|
6 x |
1 |
|
4 x 2 |
|
|
6 x 3 |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
24 x 4 |
||||||||||||||||||||
или |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0,0833 |
|
0,5 |
|
|
1,5 |
|
|
|
|
1,8333 |
|
|
0,75 |
|
|
||||||||||
|
L x x x 1 x 2 x 3 x 4 |
|
|
|
|
|
|
|
|
. |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
4 |
|
|
|
|
|
x 1 |
|
|
x 2 |
|
|
x 3 |
|
|
|
|
|
|
|||||||||
|
|
|
x |
|
|
|
|
|
|
|
x 4 |
|
|
|||||||||||||||
Шаг 3. Раскрыв скобки, получим |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
L4 |
0,833 3 x 1 x 2 x 3 x 4 0,5x x 2 x 3 x 4 |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
1,5x x 1 x 3 x 4 1,833 3x x 1 x 2 x 4 0,75x x 1 x 2 x 3 . |
|
|||||||||||||||||||||||||||
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вычислим значение полинома Лагранжа в точке 2,7:
2,7 2,7 2,7 1 2,7 2 2,7 3 2,7 4 1,253 07 ,
причём каждый из множителей появится в знаменателе на следующем шаге;
|
0,083 3 |
|
0,5 |
|
1,5 |
|
1,833 3 |
|
0,75 |
|
|
|
||||
L4 |
2,7 1,253 07 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1,253 07 7,413 8 9,29 . |
2,7 |
|
1,7 |
0,7 |
|
0,3 |
1,3 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||
Оставлять в ответе много знаков нет смысла, поскольку данные задачи – целые числа и нет информации об их точности.
Вычислим значение полинома Лагранжа в точке 4,05. Находим
4,05 4,05 4,05 1 4,05 2 4,05 3 4,05 4 1,329 4 ,
затем
|
0,083 3 |
|
0,5 |
|
1,5 |
|
1,833 3 |
|
0,75 |
|
|
|||||
L4 |
4,05 1,329 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1,329 4 13,841 18,40 . |
|
4,05 |
|
3,05 |
2,05 |
1,05 |
|
0,05 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|||||||
Ответ: L4 2,7 9,29; |
L4 4,05 18,40 . |
|
|
|
|
|
|
|
|
|||||||
Метод Лагранжа прост, но его существенный недостаток в том, что при добавлении новой пары надо пересчитывать все коэффициенты. Метод
разделённых разностей позволяет в этом случае посчитать лишь дополнительный коэффициент без пересчёта остальных, и к тому же требует примерно в два раза меньше вычислений.
Пусть по-прежнему задана таблица (1.1) значений функции, и надо найти аналитическую зависимость y f x в виде полинома
Идея метода – найти разложение искомой функции в виде некоторого ряда по аналогии с рядом Тейлора, где учитывается приращение как скорость изменения функции, скорость изменения приращений и т.д.
Схема метода разделенных разностей состоит из двух частей.
Для каждой пары соседних точек xi , xi 1 находим разностный аналог первой производной – дроби
10 |
y1 y0 |
, |
11 |
y2 |
y1 |
, |
12 |
y3 y2 |
, , |
1n 1 |
yn |
yn 1 |
. |
|||||||
x x |
|
|
|
x |
|
|
x |
|
|
|
|
|||||||||
|
0 |
|
|
x |
2 |
|
|
x |
3 |
2 |
|
|
x |
n |
x |
n 1 |
||||
|
1 |
|
|
|
1 |
|
|
|
|
|
|
|
|
|||||||
9
Всего находим n значений по общей формуле 1i |
yi 1 |
yi |
при i 0,1, ,n 1 . |
|
xi 1 |
xi |
|||
|
|
Для каждой пары соседних значений 1i , 1i 1 находим разностный аналог 2-й
производной:
|
|
|
11 10 |
|
|
|
|
12 11 |
|
|
13 12 |
|
|
|
|
|
|
|
1n 1 1n |
2 |
|
|||||||||||||||
2 0 |
x |
2 |
x |
0 |
, |
21 |
x |
3 |
x |
, |
2 2 |
|
x |
4 |
x |
2 |
|
, |
|
, 2 n 2 |
x x |
|
|
; |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
n 2 |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
1i 1 |
1i |
|
|
|
|
|
|
|||||||
всего находим n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
значение по формуле i |
xi 2 |
xi |
|
|
при i 0,1, ,n 2 . |
|
||||||||||||||||||||||||||||||
Находим n 2 разностных аналога третьей производной: |
|
|
|
|
||||||||||||||||||||||||||||||||
21 2 0 |
|
|
|
2 2 21 |
|
|
|
|
|
|
|
2 n |
|
2 2 n |
|
3 |
|
|
|
|
|
|||||||||||||||
30 x |
3 |
x |
0 |
, 31 |
x |
4 |
x |
|
|
, |
|
, 3n 3 |
|
x |
|
x |
n |
3 |
|
|
при i 0,1, ,n |
3 , |
|
|||||||||||||
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n 1 |
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
1 |
|
0 |
и так, пока на шаге с номером n не найдём единственное значение 0 |
xn |
x0 |
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k 1 |
|
|
|
k 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
i 1 |
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Общая формула вычисления: |
i xi k |
xi |
|
|
при k |
1,2, ,n |
и i 0,1, ,n k . |
|||||||||||||||||||||||||||||
Верхние индексы означают порядок разностной производной, а не степень. Можно заметить, что y1 y0 10 x1 x0 . Также можно показать, что
y2 y0 10 x2 x0 2 0 x2 x0 x2 x1 ,
y3 y0 10 x3 x0 2 0 x3 x0 x3 x1 30 x3 x0 x3 x1 x3 x2 ,
и так до
y |
n |
y |
0 |
10 |
x |
n |
x |
0 |
2 0 x |
n |
x |
0 |
x |
n |
x 3 0 x |
n |
x |
0 |
x |
n |
x x |
n |
x |
2 |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
||||||||||||||
|
|
|
|
|
n 0 x |
n |
x |
0 |
x |
n |
|
x x |
n |
x |
n 1 |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Общая формула |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
yk y0 i 0 xk x0 xk xi 1 . |
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Заменим в формуле для yn |
точку xn на переменную x: |
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
N |
n |
x y |
0 |
1 |
x x |
2 x x |
x x |
3 x x |
0 |
x x x x |
2 |
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
0 |
|
|
|
0 |
|
|
0 |
|
|
|
|
0 |
|
|
|
1 |
0 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
n x x |
|
x x |
n |
x x |
n 1 |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
(1.10) |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Подставляя |
x0 , x1 , , xn и учитывая множители, |
равные 0, |
получим соответ- |
||||||||||||||||||||||||||||||||||||||
ственно y0 , y1 , , yn .
Из курса алгебры известно, что если два полинома степени n совпали в n+1 точке, то они совпадут в любой другой точке и потому тождественны. Нашей целью было найти полином, принимающий указанные значения в n+1 точке.
10