求助线性拟和
我想拟和出曲线y=1/(c+a*exp(b*x)),因为其中有3个未知数,特别是参数c的存在,使我不能用两边求倒数和对数的方法来转化为线性拟和。还请各位高手指点我一下,怎样才能把它拟和出来啊谢谢啊
[ 本帖最后由 ChaChing 于 2009-4-22 13:14 编辑 ] 麻烦给出拟合的数据
谢谢大家啊
要拟和的数据为x = 3.9900 9.9900 16.3900 22.7900 29.1900 35.1900 41.5900
47.9900 53.9900 60.3900 66.7900 72.7900 79.1900 85.5900
91.9900 97.9900
y = 2.1634 2.9223 4.0168 5.4091 7.0874 9.2672 11.6971
13.8987 15.9450 17.5862 18.4444 18.9926 19.5583 19.7022
19.5028 19.8513
拟和函数y=1/(c+a*exp(b*x))为倒指数函数,其渐进线为y=1/c,如果事先知道渐进线1/c,则拟和可以化为线性拟和,但如果事先未知渐进线,那该怎样拟和啊,还请各位高手帮忙啊
谢谢啊 funtion f=myfun(a,x)
f=1./(a(3)+a(1)*exp(a(2)*x));
x = [3.9900 9.9900 16.3900 22.7900 29.1900 35.1900 41.5900...
47.9900 53.9900 60.3900 66.7900 72.7900 79.1900 85.5900...
91.9900 97.9900];
y=[2.1634 2.9223 4.0168 5.4091 7.0874 9.2672 11.6971...
13.8987 15.9450 17.5862 18.4444 18.9926 19.5583 19.7022...
19.5028 19.8513];
a0=;
options=optimset('MaxFunEvals',1000000);
options=optimset('MaxIter',1000000);
=lsqcurvefit(@myfun,a0,x,y,[],[],options)
plot(x,y,'o')
hold on
plot(x,1./(a(3)+a(1)*exp(a(2)*x)))
解得
a =
0.7546 -0.0740 0.0493
residual =
1.2527
其中a(1)为a,a(2)为b,a(3)为c
谢谢您的指点啊
十分感谢您的指点,在次我向您表示深深的敬意! 用1stOpt算的结果好像更好:均方差(RMSE): 0.268318172408539
残差平方和(SSE): 1.15191426631453
相关系数(R): 0.999212888651519
相关系数之平方(R^2): 0.998426396847313
决定系数(DC): 0.998308215230725
卡方系数(Chi-Square): 0.102326680563435
F统计(F-Statistic): 3842.09629856389
参数 最佳估算
---------- -------------
a 0.696536404853994
b -0.0719189910314401
c 0.0492240412963468
页:
[1]