Интерполяционный сплайн

Форум пользователей пакета Maple

Модератор: Admin

Кли
Сообщения: 145
Зарегистрирован: Пт ноя 04, 2016 4:54 pm

Интерполяционный сплайн

Сообщение Кли » Чт дек 13, 2018 12:28 am

Здравствуйте!!! Помогите исправить: у меня S и S3 в коде не совпадают(они же должны совпадать?), мне кажется я M[1] и M[n] неправильно выбрал

Код: Выделить всё

restart;
with(CurveFitting):
with(plots):
x:=[-1,0,1,2,3];
y:=[17,7,5,11,49];
n:=5:
for i from 1 to n-1 do в #вычисления разделенных разностей
f[1][i]:=y[i]:
end do;
printlevel:=2:
for k from 2 to n-1 do
for i from 2 to n-k do
f[k][i]:=(f[k-1][i+1]-f[k-1][i])/(x[i+k]-x[i]):
end do:
end do;
for i from 1 to n-1 do
h[i]:=x[i+1]-x[i]:
end do;
M[1]:=f[1][1];
M[5]:=f[2][n-2];
for i from 2 to n-1 do
S[i]:=(1/6)*h[i-1]*M[i-1]+(1/3*(h[i-1]+h[i]))*M[i]+(1/6)*h[i]*M[i+1] = (y[i+1]-y[i])/h[i]-(y[i]-y[i-1])/h[i-1]; end do;
assign(solve({seq(S[i],i=1..4)}));
for j from 1 to n-1 do
S3[j]:=expand(-M[j]*(t-x[j+1])^3/(6*h[j])+M[j+1]*(t-x[j])^3/(6*h[j])+((y[j+1]-y[j])/h[j]-(1/6)*h[j]*(M[j+1]-M[j]))*(t-x[j])+y[j]-(1/6)*M[j]*h[j]^2): end do;                 
S:=spline(x,y,t,cubic);
plot(S,t=-2..3);

Кли
Сообщения: 145
Зарегистрирован: Пт ноя 04, 2016 4:54 pm

Re: Интерполяционный сплайн

Сообщение Кли » Пн мар 04, 2019 5:59 pm

А можете ответить на вопрос? почему M[1] и M[5] можно взять нулями