我用的matlab里面的cftool拟合的数据,但是返回的结果不对呀?

用的是logistics模型拟合函数a/(1+((a/1104)-1)*exp(-r*(x-1978)));a为人口最大容量,r为增长率Generalmodel:f(x)... 用的是logistics模型
拟合函数
a/(1+((a/1104)-1)*exp(-r*(x-1978))); a为人口最大容量,r为增长率
General model:
f(x) = a/(1+((a/1104)-1)*exp(-r*(x-1978)))
Coefficients (with 95% confidence bounds):
a = 606.7 (527, 686.4)
r = -0.01515 (-0.01869, -0.0116)

Goodness of fit:
SSE: 2.695e+04
R-square: 0.9946
Adjusted R-square: 0.9945
RMSE: 28.58
这里的a怎么才600多呀,哪里错了?大神快现身吧~~~

PS;数据:
x=1978:1:2012;

y=[1104.00 1137.00 1152.00 1168.001186.00 1201.00 1217.00 1233.00 1249.00 1265.00 1288.00 1311.00 1334.00 1350.001365.00 1381.00 1398.00 1414.00 1451.00 1489.00 1527.00 1567.00 1608.60 1668.331712.97 1765.84 1834.98 1890.26 1964.11 2063.58 2140.65 2210.28 2302.66 2347.462380.43];
y的最后两个数据可能连一起了,是2347.46 2380.43,谁能解释一下为什么出现这种情况
展开
 我来答
lhmhz
高粉答主

推荐于2017-11-26 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17014

向TA提问 私信TA
展开全部
用cftool拟合虽然为我们提供了方便,但并不是每次都能得到较满意的结果。此时,你可以考虑其他拟合函数进行拟合,如lsqcurvefit()、nlinfit()。对于本问题,可以用nlinfit()拟合比较合理。拟合结果为
a=162384467.421874 r=0.0204305926730004
验证,拟合前的y值与拟合后的y1值对比
1104 1104
1137 1126.7872032058
1152 1150.04474423083
1168 1173.782330914
1186 1198.00987145962
。。。。。。
从比较结果来看,其拟合结果还是比较合理的。
更多追问追答
追问
请问您能不能帮我一下把这个做出来,我用1stopt出来的结果和matlab 差不多,但就是错误,因为拟合的效果还好,但是一进行预测就不行,成负的的了。。。
参数 最佳估算
---------- -------------
a 858.84440474384
b -0.0281648139703349
追答
这跟初值有点关系,因每一次的初值并不完全一致,所以,每次拟合的结果也就不一样了。你可以拟合多次,进行比较,然后取最佳的那个处值。
匿名用户
2014-05-24
展开全部
不清楚,你应该写错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式