|
报错说1=t赋值有问题,if(length(x)==length(y))有问题,不知道是什么情况,也没有好心大哥帮我看看,谢谢谢谢
function f=Newtonforward(x,y,x0)
syms t;
if(length(x)==length(y))
n=length(x);
c(1:n)=0.0;
else
disp('维数不相等');
return;
end
f=y(1);
y1=0;
xx=linspace(x(1),x(n),n);
if(xx~=x)
disp('节点之间不等距');
return;
end
for(i=1:n-1)
for(j=1:n-i);
y1(j)=y(j+1)-y(j);
end
c(i)=y1(1);
1=t;
for(k=1:i-1)
1=1*(t-k);
end;
f=f+c(i)*1/factorial(i);
simplify(f);
y=y1;
if(i==n-1)
if(nargin==3)
f=subs(f,'t',(x0-x(1))/(x(2)-x(1)));
else
f=collect(f);
f=vpa(f,6);
end
end
end |
|