用多项式拟合出的函数来计算f(x)值怎么就不对呢
这样两列数据,多项式拟合一个函数y = 44195x4 - 132962x3 + 149979x2 - 75172x + 14127,然后我取一个数据计算f(0.728803),值怎么不和原来的值接近呢.拟合挺好的啊.,这是什么原因啊?0.7288030.590770.7489290.6281060.7741940.6921930.7868580.7454450.7890250.7586090.7896910.7631050.7913250.7752840.7921270.7820150.7929040.7891210.7961750.8289620.7976930.8565830.7979030.8610610.7980570.8644570.8035381.0015880.8044941.0212240.8046281.0238670.8064691.0572360.8090971.097809
[ 本帖最后由 eight 于 2008-5-14 15:31 编辑 ] 怎么不接近啊?蛮好啊.
=polyfit(x,y,4);
=polyval(a,0.728803,S);
ye
ye =
0.58990327400716
回复 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了. 不好意思,我知道错误了,大概是拟合出来的系数小数位不够,所以直接用公式计算值会有误差.,精度不够.
回复 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]