Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по Вычислительной матема....doc
Скачиваний:
37
Добавлен:
25.04.2019
Размер:
2.08 Mб
Скачать

2. Интерполяционный полином Ньютона

Построим интерполяционный полином степени в виде:

(4.4)

Коэффициенты полинома определим из условия Лагранжа:

(4.5)

При все слагаемые, кроме , обращаются в нуль, следовательно .

Полагая , из условия (4.5), получим , откуда находим коэффициент . Он называется разделенной разностью первого порядка. Величина близка к первой производной функции при малом расстоянии между узлами и .

При из условия Лагранжа (4.5), определим искомый коэффициент , где . Величина называется разделенной разностью второго порядка, которая близка ко второй производной.

Аналогично, при находим , где ; .

Полученные результаты можно свести в следующую таблицу

1

2

3

Реализацию интерполяции методом Ньютона можно провести в Excel.

Вычислим в точке значение функции , заданной таблично

Х

5

5.5

6

6.5

7

Y

51

76.625

109

148.875

197

используя первый и второй интерполяционные полиномы Ньютона.

Дальнейшие вычисления приведем в таблице 5.1.

Таблица 5.1. Вспомогательная таблица для интерполирования значений сеточной функции полиномом Ньютона

i

xi

yi

yi

2yi

3yi

4yi

0

5

51

25,625

6,75

0,75

0

1

5,5

76,625

32,375

7,5

0,75

 

2

6

109

39,875

8,25

 

 

3

6,5

148,875

48,125

 

 

 

4

7

197

 

 

 

 

где . Иными словами, каждая последующая конечная разность получается путем вычитания в предыдущей колонке верхней строки из нижней.

Используя первый интерполяционный многочлен Ньютона третьего порядка для интерполирования вперед:

, где

получим .

Используя второй интерполяционный многочлен Ньютона третьего порядка для интерполирования назад:

, где

получим .

Таким образом, значение функции в точке равно 91,922.

В пакете MathCad реализация первого и второго интерполяционного многочлена Ньютона будет выглядеть следующим образом.

Заметим, что для построения итерационного полинома используются только диагональные элементы таблицы, остальные элементы являются промежуточными данными. Для хранения разделенных разностей будем использовать один и тот же массив. На языке Turbo Pascal процесс вычисления можно организовать так:

for j:=1 to n do

begin

a:=y[j-1]; b:=x[j-1];

for i:=j to n do y[i]:=(a-y[i-1])/(b-x[i-1])

end;

Значения полинома при конкретных разумно вычислять по схеме Горнера:

(4.6)

Причем сразу можно получать значения для первой и второй производных. Действительно, дважды дифференцируя рекуррентное соотношение Горнера , получим:

;

Запишем фрагмент программы, сделав замену на и на :

p:=y[n]; p1:=0; p2:=0;

for i:=n-1 downto 0 do

begin

s:=z-x[i]; p2:=2*p1+s+p2; p1:=p+s+p1; p:=y[i]+s*p

end;

Заметим, что при интерполяции полиномом Ньютона, задачи вычисления коэффициентов и полинома разделены, и их можно оформить в виде двух различных процедур.