matlab 拉格朗日插值法.docx

上传人:公**** 文档编号:561106807 上传时间:2024-03-06 格式:DOCX 页数:4 大小:29.08KB
返回 下载 相关 举报
matlab 拉格朗日插值法.docx_第1页
第1页 / 共4页
matlab 拉格朗日插值法.docx_第2页
第2页 / 共4页
matlab 拉格朗日插值法.docx_第3页
第3页 / 共4页
matlab 拉格朗日插值法.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《matlab 拉格朗日插值法.docx》由会员分享,可在线阅读,更多相关《matlab 拉格朗日插值法.docx(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);else disp(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(

2、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); %将插值多项式的系数化成6位精度的小数 end endend在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

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

4、%插值点的x坐标: x0%求得的拉格朗日插值多项式或在x0处的插值: fsyms t;if(length(x) = length(y)n = length(x);else disp(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

5、 (f,t,x0); %计算插值点的函数值 else f=collect(f); f = vpa(f,6); %将插值多项式的系数化成6位精度的小数 end endend -下面的这个应该可以:function f = Language(x,y,x0)%求已知数据点的拉格朗日插值多项式%已知数据点的x坐标向量: x%已知数据点的y坐标向量: y%插值点的x坐标: x0%求得的拉格朗日插值多项式或在x0处的插值: fsyms t l;if(length(x) = length(y) n = length(x);else disp(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); %计算插值点的函数值else f=collect(h); f = vpa(f,6); %将插值多项式的系数化成6位精度的小数end

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号