您的位置:首页 > 编程语言 > MATLAB

Matlab Newton向后插值

2017-09-16 16:33 423 查看
**********************本文章由计算机专业的孙旭编写,复制请谨慎



function Fun()
clc;
X=[0 1 2 3];
Y=[1 2 17 64];
x0=2.5;
h=1;
New_Back(X,Y,x0,h);
end

%子函数
function New_Back(X,Y,x0,h)
len_x=length(X);
len_y=length(Y);
if (len_x~=len_y)
disp('你输入的维度不相等');
return;
else
syms s;
p=Y(len_x);
q=1;
f=1;
for i=1:1:len_x-1
Y(i+1:len_x)=Y(i+1:len_x)-Y(i:len_x-1);
A(i)=Y(len_x);
q=q*(s+i-1);
f=f*i;
p=p+(q/f)*A(i);
end

%化简多项式
simplify(p);

if nargin==4
disp('所求的插值函数的值为');
p0=subs(p,'s',(x0-X(len_x)/h));
vpa(p0,6),
else
disp('所求牛顿的向后插值多项式为: ');
p=collect(p);
p=vpa(p,6),
end
end
end


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab Newton 插值