Интерполяционный многочлен Ньютона
Предположим дополнительно, что рассматриваемые значения аргумента являются равноотстоящими, т. е. образуют арифметическую прогрессию.
В этом случае шаг таблицы 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; просмотров: 3698;











