对于时间序列预测问题,不能用年份来作为拟合基数,应按自然序列作为拟合基数。即x=[1,2,3,4,5]——对应于2010,2011,2012,2013,2014。所以你的部分代码应改为
x=[1,2,3,4,5];
y=[0.235,0.525,0.623,0.532,0.439];
plot(x,y,'rp'),hold on
p=polyfit(x,y,3);
运行得到
p =
0.015833 -0.21071 0.82445 -0.3972
2015年:0.3838
>> 0.015833*6^3-0.21071*6^2+0.82445*6-0.3972 %验算2015年
ans = 0.38387
2016年:0.4798
>> 0.015833*7^3-0.21071*7^2+0.82445*7-0.3972 %验算2016年
ans = 0.47988