声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1267|回复: 4

[综合讨论] 用多项式拟合出的函数来计算f(x)值怎么就不对呢

[复制链接]
发表于 2008-5-14 15:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
这样两列数据,多项式拟合一个函数y = 44195x4 - 132962x3 + 149979x2 - 75172x + 14127,然后我取一个数据计算f(0.728803),值怎么不和原来的值接近呢.拟合挺好的啊.,这是什么原因啊?
0.7288030.59077
0.7489290.628106
0.7741940.692193
0.7868580.745445
0.7890250.758609
0.7896910.763105
0.7913250.775284
0.7921270.782015
0.7929040.789121
0.7961750.828962
0.7976930.856583
0.7979030.861061
0.7980570.864457
0.8035381.001588
0.8044941.021224
0.8046281.023867
0.8064691.057236
0.8090971.097809


[ 本帖最后由 eight 于 2008-5-14 15:31 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-5-14 15:28 | 显示全部楼层
怎么不接近啊?蛮好啊.
[a,S]=polyfit(x,y,4);
[ye,delta]=polyval(a,0.728803,S);
ye

ye =

   0.58990327400716

评分

1

查看全部评分

 楼主| 发表于 2008-5-14 15:44 | 显示全部楼层

回复 2楼 的帖子

您好,我拟合出的函数y = 44195x4 - 132962x3 + 149979x2 - 75172x + 14127
能不能直接用这个函数计算值,比如
y=44195*0.728803^4-132962*0.728803^3+149979*0.728803^2-75172*0.728803+14127

结果就是1.3718了.
 楼主| 发表于 2008-5-14 15:50 | 显示全部楼层
不好意思,我知道错误了,大概是拟合出来的系数小数位不够,所以直接用公式计算值会有误差.,精度不够.
发表于 2008-5-14 16:40 | 显示全部楼层

回复 4楼 的帖子

估计是你取的位数不够.

a =

  1.0e+005 *

   0.44198651960080  -1.32972123361196   1.49990439386474  -0.75178293998984   0.14127617613639
b=0.728803;
a(1)*b^4+a(2)*b^3+a(3)*b^2+a(4)*b+a(5)

ans =

   0.58990327401079

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 15:14 , Processed in 0.062226 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表