我用matlab的polyfit函数拟合出来了函数,但是我再把某个变量代入进去,结果却很离谱,是为什么?

图像是这样函数是这个但是我把x换成2015代入这个函数的时候,却给我这个数WHY???怎么着得3.7左右吧,咋还出来个负数?... 图像是这样
函数是这个

但是我把x换成2015代入这个函数的时候,却给我这个数

WHY???
怎么着得3.7左右吧,咋还出来个负数?
展开
 我来答
lhmhz
高粉答主

2017-01-22 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16991

向TA提问 私信TA
展开全部

对于时间序列预测问题,不能用年份来作为拟合基数,应按自然序列作为拟合基数。即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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式