[quote][parse]Bush wrote:[/parse]
用Matlab软件:知道指数函数y=exp(a*x+b)以及该函数的一些点,即,并求出a,b的值????????
那位大侠知道,请速发:usa_hp@163.com
不尽感谢!!!!!!!!!!!!!!!
[/quote]
好像你的模型不太好
这样拟和出来的结果很不如人意
我上次用lsqcurvefit拟和过,结果很差,我以为出错了
就没有回你
今天又用cftool拟和了一下,结果与上次的一样,看来只能够说是你的模型不恰当了。
结果如下:
用cftool拟和结果:
fittedmodel1 =
General model:
fittedmodel1(x) = exp(a*x+b)
Coefficients (with 95% confidence bounds):
a = 0.0003925 (0.0003351, 0.0004499)
b = 7.51 (7.503, 7.517)
用函数lsqcurvefit拟和结果:
K>> format long
K>> a
a =
0.00039804211957 7.50963226605840
函数拟和过程:
function bush
y=1790:10:1990;
ydata=log(y);
x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92 106.5 123.2 131.7 150.7 179.3 204 226.5 251.4];
a0=rand(1,2);
opt=optimset('TolFun',1e-10);
a=lsqcurvefit(@myfun,a0,x,ydata,[],[],opt)
xxx=3:0.5:260;
yyy1=a(1)*xxx+a(2);
yyy2=exp(yyy1);
plot(xxx,yyy1);
hold on
plot(xxx,yyy2);
% plot(xxx,yyy,x,y,'.');
% % yyy=xx(1).*xxx+xx(2);
% % plot(xxx,yyy,x,ydata,'.');
function F=myfun(x,xdata)
F=x(1).*xdata+x(2);