当前位置:编程学习 > Matlab >>

这个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版本问题,7.0没有收录simplify和double函数,而7.9有,所以出现问题,谢谢!
其他:simplify这个函数不化简简单的数字!
我的QQ联系方式,散坝而要龄要伞流午,请用普通话念出

上一个:matlab 色块识别及应用的程序 20分悬赏 有高手会的 发到tangjerrya@163.com
下一个:matlab程序出不了图,直接白板什么情况

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,