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


 

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

В этом случае шаг таблицы h = хi+1 - xi (i = 0, 1, 2, ..., n) = const является величиной постоянной. Для таких таблиц построение интерполяционных формул (как впрочем, и вычисление по этим формулам) заметно упрощается.

Прежде чем перейти к рассмотрению этого вопроса, познакомимся с понятием конечных разностей.

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

Δ yi = yi+1 - yi (i = 0, 1, 2, ...).

Из конечных разностей первого порядка образуются конечные разности второго порядка:

Δ 2yi = Δ yi+1 - Δ yi (i = 0, 1, 2, ...)

Для записи конечных разностей используются горизонтальные и диагональные таблицы.

Горизонтальная таблица

x y Δy Δ2y Δ3y
x0 y0 Δy0 Δ2 y0 Δ3y0
x1 y1 Δy1 Δ2 y1  
x2 y2 Δy2    
x3 y3      

 

Диагональная таблица

x y Δy Δ2y Δ3y  
x0 y0 Δy0 Δ2 y0 Δ3y0  
x1 y1  
Δy1  
x2 y2 Δ2 y1  
Δy2  
x3 y3  

 

Формула Ньютона «вперед»:

где n – порядок полинома, h – шаг (расстояние между узлами).

 

Первый порядок:

x1=x0-h Δy= y1 – y0
x2=x0-2h Δy1= y2 – y1
xn=x0-n×h Δyn-1= yn – yn-1

Второй порядок:

Δ2y= Δy1 – Δy0
Δ2y1= Δy2 – Δy1
Δ2yn-2= Δyn-1 – Δyn-2

 

Формула Ньютона «назад»:

Программа для интерполирования «вперед»: Программа для интерполирования «назад»:
program newton; const n=3; var d:array[0..n,0..n] of real; x,y:array[0..n] of real; p:array[1..n] of real; f1,f2:text; h,x1,s1:real;i,j:integer; begin assign(f1,'n1.pas');assign(f2,'nnn.pas'); reset(f1);rewrite(f2);x1:=1.5;h:=1; for i:=0 to n do read(f1,x[i],y[i]); s1:=y[0]; for i:=0 to n do d[i,0]:=y[i]; for j:=1 to n do for i:=0 to n-j do d[i,j]:=d[i+1,j-1]-d[i,j-1]; for i:=1 to n do begin p[i]:=1;for j:=1 to i do p[i]:=p[i]*(x1-x[j-1])/(h*j); s1:=s1+d[0,i]*p[i]; end; write(f2,s1:7:4);close(f2);end. program newton; const n=3; var d:array[0..n,0..n] of real; x,y:array[0..n] of real; p:array[1..n] of real; f1,f2:text; h,x1,s1:real;i,j:integer; begin assign(f1,'n1.pas');assign(f2,'nn3.pas'); reset(f1);rewrite(f2);x1:=1.5;h:=1; for i:=0 to n do read(f1,x[i],y[i]);s1:=y[n]; for i:=0 to n do d[i,0]:=y[i]; for j:=1 to n do for i:=0 to n-j do d[i,j]:=d[i+1,j-1]-d[i,j-1]; for i:=1 to n do begin p[i]:=1;for j:=1 to i do p[i]:=p[i]*(x1-x[n-j+1])/(h*j); s1:=s1+d[n-i,i]*p[i]; end; write(f2,s1:5:2);close(f2);end.

 

4.2. Итерационные методы решения нелинейных уравнений

 

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

Уравнения в общем случае можно представить следующим образом:

f(x)=0.

Нелинейные уравнения можно разделить на два класса - алгебраические и трансцендентные.

Алгебраическими считаются уравнения, содержащие только алгебраические функции (целые, рациональные, иррациональные).

Алгебраическое уравнение в общем виде можно представить многочленом n-й степени с действительными коэффициентами:

f(x)=a0+a1x+...+an-1xn-1+an xn=0 .

Уравнения, содержащие другие функции (тригонометрические, показательные, логарифмические и др.), называются трансцендентными, например: x3+x2+2ex+5=0; 2x-sin3x=0.

Задача решения уравнения заключается в нахождении таких значений х, которые обращают его в тождество.

 



Дата добавления: 2016-06-15; просмотров: 3441;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.