登录论坛

查看完整版本 : [MATLAB基础] 拉格朗日编码出错请指教


张峻508
2009-10-07, 18:24
function f=Language(x,y,x0)
%求已知数据点的拉格朗日差值多项式
%已知数据点的x坐标向量:x
%已知数据点的y坐标向量:y
%插值点的x坐标:x0
%求得的拉格朗日插值多项式:f
%x0处的插值:f0
syms t;
if(length(x)==length(y))
n=length(x);
else
disp('x和y的维数不相等!');
return;
end
f=0.0;
for(i=1:n)
l=y(i);
for(j=1:i-1)
l=l*(t-x(j))/(x(i)-x(j));
end;
for(j=i+l:n)
l=l*(t-x(j))/(x(i)-x(j));
end;
f=f+l;
simplify(f);
end
f0=subs(f,'t',x0);
看不出错误,运行时总出现Error in ==> D:\MATLAB安装软件\toolbox\symbolic\@sym\minus.m
On line 26 ==> X = X(ones(size(A)));

Error in ==> D:\MATLAB安装软件\work\Language.m
On line 22 ==> l=l*(t-x(j))/(x(i)-x(j));
请高手指教一下:)