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)

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