这个MATLAB中实现拉格朗日插值的程序有什么问题这个是拉格朗日插值的程序:function f=Language(x,y,x0)syms t;if(length(x)==length(y))n=length(x);elsedisp('vx!=vy');return;endf=0.0;for(i=1:n)l=y(i);for(j=1:i-1)l=l*(t-x(j))/(
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 19:04:16
![这个MATLAB中实现拉格朗日插值的程序有什么问题这个是拉格朗日插值的程序:function f=Language(x,y,x0)syms t;if(length(x)==length(y))n=length(x);elsedisp('vx!=vy');return;endf=0.0;for(i=1:n)l=y(i);for(j=1:i-1)l=l*(t-x(j))/(](/uploads/image/z/5431013-53-3.jpg?t=%E8%BF%99%E4%B8%AAMATLAB%E4%B8%AD%E5%AE%9E%E7%8E%B0%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E6%8F%92%E5%80%BC%E7%9A%84%E7%A8%8B%E5%BA%8F%E6%9C%89%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98%E8%BF%99%E4%B8%AA%E6%98%AF%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E6%8F%92%E5%80%BC%E7%9A%84%E7%A8%8B%E5%BA%8F%EF%BC%9Afunction+f%3DLanguage%28x%2Cy%2Cx0%29syms+t%3Bif%28length%28x%29%3D%3Dlength%28y%29%29n%3Dlength%28x%29%3Belsedisp%28%27vx%21%3Dvy%27%29%3Breturn%3Bendf%3D0.0%3Bfor%28i%3D1%3An%29l%3Dy%28i%29%3Bfor%28j%3D1%3Ai-1%29l%3Dl%2A%28t-x%28j%29%29%2F%28)
这个MATLAB中实现拉格朗日插值的程序有什么问题这个是拉格朗日插值的程序:function f=Language(x,y,x0)syms t;if(length(x)==length(y))n=length(x);elsedisp('vx!=vy');return;endf=0.0;for(i=1:n)l=y(i);for(j=1:i-1)l=l*(t-x(j))/(
这个MATLAB中实现拉格朗日插值的程序有什么问题
这个是拉格朗日插值的程序:
function f=Language(x,y,x0)
syms t;
if(length(x)==length(y))
n=length(x);
else
disp('vx!=vy');
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;
for(j=i+1:n)
l=l*(t-x(j))/(x(i)-x(j));
end;
f=f+1;
simplify(f);
if(i==n)
if(nargin==3)
f=subs(f,'t',x0);
else
f=collect(f);
f=vpa(f,6);
end
end
end
存为M文件后,我尝试调用,如下:
x=[0.40 0.50 0.60 0.70 0.80 0.90];
y=[-0.916291 -0.693147 -0.510826 -0.356675 -0.223144 -0.153265];
f=Language(x,y)
结果显示:
Function 'simplify' is not defined for values of class 'double'.
Error in ==> Language at 22
simplify(f);
这是怎么回事?我的MATLAB的版本是7.0.0.那个拉格朗日插值的程序该怎么变才能正确呢?
这个MATLAB中实现拉格朗日插值的程序有什么问题这个是拉格朗日插值的程序:function f=Language(x,y,x0)syms t;if(length(x)==length(y))n=length(x);elsedisp('vx!=vy');return;endf=0.0;for(i=1:n)l=y(i);for(j=1:i-1)l=l*(t-x(j))/(
这个是MATLAB版本问题,7.0没有收录simplify和double函数,而7.9有,所以出现问题,谢谢!