Лабораторная работа: Интерполяция функций 2
for j:=0 to 3*(n-1) do edt.writer(' ',urm[i,j],0);
end;
end;
Выполнить интерполяцию сплайнами третьей степени. Построить график и отметить на нем узлы интерполяции.
xi | 7 | 9 | 13 |
yi | 2 | -2 | 3 |
Решение.
Будем искать кубический сплайн на каждом из частичных отрезков [xi , xi +1 ], i=0..2 в виде:
, где ai ,bi ,ci ,di – неизвестные.
Из того что 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;