matlab最小二乘法拟合多指数曲线

问题描述:

matlab最小二乘法拟合多指数曲线
X=[ 0.1667 0.4167 0.7500 1.0 2.0 4.0 8.0 14.0 22.0 44.0 58.0];
Y=[2.320 1.760 1.650 1.450 1.140 0.720 0.373 0.146 0.053 0.021 0.010];
y=a*exp(-b*x)+c*exp(-d*x)
请大侠们编详细的程序.先谢谢大家了!
x是时间,y是浓度,a、b、c、d是常数,就是通过拟合X、Y描述的曲线来求这四个常数.谢谢!
1个回答 分类:综合 2014-10-28

问题解答:

我来补答
先建立一个函数
function Y=efun(b,x)
Y=b(1)*exp(b(2)*x)+b(3)*exp(b(4)*x);
保存为efun.m;
再输入:
x=[0.1667 0.4167 0.7500 1.0 2.0 4.0 8.0 14.0 22.0 44.0 58.0];
y=[2.32 1.76 1.65 1.45 1.14 0.72 0.373 0.146 0.053 0.021 0.010];
x0=[1,1,1,1]; %设置初始值
b=lsqcurvefit(@efun,x0,x,y);
sprintf('参数:a=(%0.5g),b=(%0.5g),c=(%0.5g),d=(%0.5g)',b(1),b(2),b(3),b(4))
 
 
展开全文阅读
剩余:2000
也许感兴趣的知识