matlab拟合曲线的问题

RT
x=[300,600,1000,1400,1800,2200,2600,2800,3000,3098,3200,3400,3533];
y=[922.9,1181.6,1263.9,1308.9,1345.8,1379.8,1412.6,1428.8,1444.8,1452.6,1505.0,1505.0,1505.0];
f=polyfit(x,y,4)
xi=[300:100:3600];
yi=polyval(f,xi);
plot(x,y,':o',xi,yi,'-*')
得到的曲线是f=-0.0010.*x^2+1.4266.*x+ 594.2398,图如下所示。
但是为啥我代入x=2800到得到的拟合方程里,得出的数却不对呢,和实际数差很多啊??

第1个回答  2014-07-17
得到的拟合函数应该是
f=-3.52709451250464e-011*x^4+3.21388653619654e-007*x^3-0.00102607940467148*x^2+1.42664799239607*x+594.239788209228
当x=2800,f=1443.02628341896
而不是
f=-0.0010.*x^2+1.4266.*x+ 594.2398
所以,你错了。追问

为啥我求解得到的是2次式呢,你怎么得到的4次式?我即使把f=polyfit(x,y,4)里的n调的比4大,得到的也还是2次式啊!!