matlab 拉格朗日离散,matlab-拉格朗日插值法

《matlab-拉格朗日插值法》由会员分享,可在线阅读,更多相关《matlab-拉格朗日插值法(4页珍藏版)》请在人人文库网上搜索。

1、matlab 拉格朗日插值法 function f = Language(x,y,x0)%求已知数据点的拉格朗日插值多项式%已知数据点的x坐标向量: x%已知数据点的y坐标向量: y%插值点的x坐标: x0%求得的拉格朗日插值多项式或在x0处的插值: fsyms t;if(length(x) = length(y)n = length(x);elsedisp(x和y的维数不相等!);return; %检错endf=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。

2、(j);end;f=f+1;simplify(f);if(i=n)if(nargin = 3)f = subs (f,t,x0); %计算插值点的函数值elsef=collect(f);f = vpa(f,6); %将插值多项式的系数化成6位精度的小数endendend在matlab中输入x=18 31 66 68 70 72 70; y=23 33 52 51 43 40 46;f=Language(x,y)plot(x,y)x =18 31 66 68 70 72 70出现错误? Function collect is not defined for values of class dou。

3、ble.Error in = Language at 32f=collect(f);怎么解决,谢谢了,急!问题补充: 还是不行,? Error using = sym.mapleat offset 12, ) unexpectedError in = sym.collect at 34r = maple(collect,s,x);Error in = Language at 32f=collect(f);最佳答案 function f = Language(x,y,x0)%求已知数据点的拉格朗日插值多项式%已知数据点的x坐标向量: x%已知数据点的y坐标向量: y%插值点的x坐标: x0%求得。

4、的拉格朗日插值多项式或在x0处的插值: fsyms t;if(length(x) = length(y)n = length(x);elsedisp(x和y的维数不相等!);return; %检错endf=0.0; %改为 f=sym(0);for(i=1:n)l=y(i); %改为 l=sym(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+1;simplify(f);if(i=n)if(nargin = 3)f = subs (f,t,x0); %计算插值点的函数值。

5、elsef=collect(f);f = vpa(f,6); %将插值多项式的系数化成6位精度的小数endendend -下面的这个应该可以:function f = Language(x,y,x0)%求已知数据点的拉格朗日插值多项式%已知数据点的x坐标向量: x%已知数据点的y坐标向量: y%插值点的x坐标: x0%求得的拉格朗日插值多项式或在x0处的插值: fsyms t l;if(length(x) = length(y)n = length(x);elsedisp(x和y的维数不相等!);return; %检错endh=sym(0);for (i=1:n)l=sym(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;h=h+l;endsimplify(h);if(nargin = 3)f = subs (h,t,x0); %计算插值点的函数值elsef=collect(h);f = vpa(f,6); %将插值多项式的系数化成6位精度的小数end。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值