Интерполяционная формула Ньютона и табулирование значений многочлена

Рассмотрим специальный случай вычисления многочлена. Интерполяционный многочлен Ньютона степени n, определяемый формулой

u [ n ](x) = a n (xx 0) (xx 1)…(xxn – 1) +…+ a n (xx 0) (xx 1) + a1 (xx 0) + a0, (5)

является единственным многочленом степени £ n от x, который принимает предписанные значения y 0, y 1, …, yn в заданных n + 1 различных точках x 0, x 1, …, xn соответственно. После того, как значения постоянных a найдены, интерполяционная формула Ньютона становится удобной для вычислений, так как мы можем, обобщив правило Горнера, записать

u [ n ](x) = ((…(a n (xxn – 1) + a n – 1)(xxn – 2) + …)(xx 1) + a1)*

*(xx 0) + a 0. (6)

Теперь рассмотрим, как находятся постоянные a в формуле Ньютона. Их можно определить, находя «разделённые разности» и сводя вычисления в следующую таблицу (иллюстрирующую случай n = 3):

y 0

(y 1y 0)/(x 1x 0) = 1

y 1                              (y 2y’ 1)/(x 2x 0) = y¢¢ 2

(y 2y 1)/(x 2x 1) = 2                               (y’’ 3y’’ 2)/(x 3x 0) = y¢¢¢ 3

y 2                              (y 3y’ 2)/(x 3x 1) = y¢¢ 3

(y 3y 2)/(x 3x 2) = 3

y 3                                                                                                         (7)

Можно доказать, что a0 = y 0, a1 = y’ 1, a2 = y’ 2, и т. д. Следовательно, для нахождения величин может быть использована следующая вычислительная процедура (соответствующая таблице (7)):

Начать с того, что установить (a0, a1, …, a n) (y 0, y 1, …, yn); затем для k = 1, 2, …, n (именно в таком порядке) установить yj (yjyj 1)/(xjxjk)для j  = n, n – 1, …, k (именно в таком порядке).

Если мы хотим вычислить многочлен u (x) степени n сразу для многих значений x, образующих арифметическую прогрессию (т. е. хотим вычислить u (x 0), u (x 0 + h), u (x 0 + 2 h),…), то весь процесс можно после нескольких первых шагов свести к одному только сложению вследствие того факта, что n -я разность от многочлена есть постоянная.

1 Найти коэффициенты b n, …, b1, b0 представления нашего многочлена в виде интерполяционного многочлена Ньютона

u (x) = b n / n! hn (xx 0 – (n – 1) h)…(xx 0h)(xx 0) +…+ b2/ 2! h 2* *(xx 0h)(xx 0) + b1/ h 2 (xx 0) + b0.      (8)

(Это можно сделать, беря повторные разности, в точности так же, как мы определяли выше постоянные a в (5) (надо принять xj = x 0 + jh), с тем исключением, что все деления на xjxjk  из вычислительной процедуры устраняются.)

2 Установить x x 0.

3 Теперь значением u (x) является b0.

4 Установить b j b j + b j + 1 для j = 0, 1, …, n – 1 (именно в таком порядке). Увеличить x на h и вернуться в шаг 3.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: