Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > Mathematica论坛
Mathematica论坛 Mathematica是比较流行的符号运算软件之一
 
 
主题工具 显示模式
旧 2009-09-17, 07:20   #1
liu6tot
初级会员
 
注册日期: 2009-07-12
帖子: 1
声望力: 0
liu6tot 正向着好的方向发展
难过 谁能帮我找找code的毛病

本人写了一拉格朗日插值的程序,通过输入插值点的数值,完成对函数Ln(x)的模拟,可是发现在Mathematica中的运行结果比真实的情况差别很大,请坛有们帮忙看看。
xi = Input["xi="]
yi = Input["yi="]
n = Length[xi] - 1;
p = Sum[yi[[
i]]*(Product[(x - xi[[i]])/(xi[[i]] - xi[[j]]), {j, 1, i - 1}]*
Product[(x - xi[[i]])/(xi[[i]] - xi[[j]]), {j, i + 1,
n + 1}]), {i, 1, n + 1}];
lag[x_] = Expand[%]

输入数据结果为:
{0.4, 0.5, 0.6, 0.7, 0.8}
{-0.916291,-0.693147,-0.510826,-0.356675,-0.223144}

可是生成的Lagrange多项式和实际的要求差很多:
1.56762 - 1.68125 x - 1.4322 x^2 - 1.63133 x^3 - 2.12625 x^4
比较精确的函数应该为:
-2.6487620000000094` + 6.985559166666734` x -
9.010387500000176` x^2 + 6.786583333333535` x^3 -
2.126250000000086` x^4

请坛子里的各位老大帮帮忙啊?
liu6tot 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 06:12


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.