matlab指数函数拟合 nlinfit效果不好

兄弟用matlab拟合指数函数
题目是那道经典的酒驾问题
X=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16];
Y=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4];
alcool=inline('A(1)*exp(A(2)*X)-A(3)*exp(A(4)*X)','A','X');
A=nlinfit(X,Y,alcool,[200 -0.01 150 -0.01])
t=0:0.25:max(X);
y=A(1)*exp(A(2)*t)-A(3)*exp(A(4)*t);
plot(X,Y,'O',t,y)
结果
A = 927.7303 -0.0193 853.0350 -0.0140
最终结果不尽如人意
结果图像

求大神指导
参考答案为190。1285 -0.2316 130.4542 -0.4775

修改如下:(注只需要重新设置A的初始值)

X=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16];

Y=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4];

alcool=inline('A(1)*exp(A(2)*X)-A(3)*exp(A(4)*X)','A','X');

A=nlinfit(X,Y,alcool,[200 -0.01 150 -0.01])%把A初始值设成与参考答案相近就行。

t=0:0.25:max(X);

y=A(1)*exp(A(2)*t)-A(3)*exp(A(4)*t);

plot(X,Y,'O',t,y)

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网