Из того что Si(xi)=yi получим:
В соответствии с теоретическим положениями изложенными выше, составим систему линейных уравнений, матрица которой будет иметь вид:
При этом мы потребовали равенства производной нулю.
Решая систему уравнений получим вектор решений [b1,c1,d1,b2,c2,d2]:
Подставляя в уравнение значения b1,c1,d1, получим на отрезке [7..9]:
Если выражение упростить то:
Аналогично подставляя в уравнение значения b2,c2,d2, получим на отрезке [9..13]:
или
График имеет вид:
МетодНьютона
procedure TForm1.Button1Click(Sender: TObject);
type tip=array of real;
var x,y:tip;
i,j,n:byte;
p,s,xx,t,h:real;
kp:array of array of real;
begin
n:=edt.Count;
setlength(x,n);
setlength(y,n);
for i:=0 to n-1 do x[i]:=edt.massiv[i];edt.Lines.Delete(0);
for i:=0 to n-1 do y[i]:=edt.massiv[i];edt.Lines.Delete(0);
xx:=strtofloat(edt.Text);
edt.Lines.Delete(0);
setlength(kp,n,n);
for i:=0 to n-1 do for j:=0 to n-1 do kp[i,j]:=0;
for i:=0 to n-1 do kp[0,i]:=y[i];
for i:= 1 to n-1 do
for j:=0 to n-i-1 do
kp[i,j]:=kp[i-1,j+1]-kp[i-1,j];
for i:= 0 to n-1 do
begin
for j:=0 to n-1 do edt.writer(' ',kp[i,j],0);
edt.writer('',1);
end;
edt.writer('',1);
h:=0.5;
t:=(xx-x[0])/h;
s:=y[0];
for i:=1 to n-1 do
begin
p:=1;
for j:=0 to i-1 do p:=p*(t-j)/(j+1);
s:=s+p*kp[i,0];
end;
edt.writer('',s,1);;
end;
Построить интерполяционный многочлен Ньютона. Начертить график и отметить на нем узлы интерполяции. Вычислить значение функции в точке х=1.25.
xi | 1 | 1.5 | 2 | 2.5 | 3 | 3.5 |
yi | 0.5 | 2.2 | 2 | 1.8 | 0.5 | 2.25 |
Решение.
Построим таблицу конечных разностей в виде матрицы:
Воспользуемся интерполяционной формулой Ньютона:
Pn(x)=y0+tΔy0+t(t-1)/2! Δ2y0+...+t(t-1)...(t-n+1)/n!Δny0
Подставив значения получим многочлен пятой степени, упростив который получим:
P5(x)=2.2x5-24x4+101.783x3-20.2x2+211.417x-80.7
Вычислим значение функции в точке x=1.25; P(1.25)=2.0488;
График функции имеет вид:
Построить интерполяционный многочлен Лагранжа. Начертить график и отметить на нем узлы интерполяции. Вычислить значение в точке х=1.2.
xi | 0 | 0.25 | 1.25 | 2.125 | 3.25 |
yi | 5.0 | 4.6 | 5.7 | 5.017 | 4.333 |
Решение.
Построим интерполяционный многочлен Лагранжа L4(x), подставив значения из таблицы в формулу:
Напишем программу и вычислим значение многочлена в точке х=1.2:
L4(1.2)=5.657;
Полученный многочлен имеет четвертую степень. Упростим его и получим:
Построим график полученного полинома: