主题:江胡大哥来相助
小弟刚学的matlab编程 请各位江湖大哥多帮忙 小弟感激不尽
下面是小弟编的拉格朗日插直多项式在matlab里无法运行,请各位大哥给看看错误。
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+1:n)
l=l*(t-x(j))/(x(i)-x(j));
end;
f=f+l;
simplify(f);
end
f0=subs(f,'t',x0);
下面是小弟编的拉格朗日插直多项式在matlab里无法运行,请各位大哥给看看错误。
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+1:n)
l=l*(t-x(j))/(x(i)-x(j));
end;
f=f+l;
simplify(f);
end
f0=subs(f,'t',x0);