我正在尝试拟合模型P(t)= P0 * exp(k * t)并估计k的参数值。我有P和t的数据。在我编写的Matlab代码中,我得到了警告, 本地最小值。 lsqcurvefit停止,因为相对于平方和的最终变化 其初始值小于功能公差的默认值。
因此,如果我使用高于-30(例如-1)的初始猜测,则会收到上述警告。但是,对于-30以上的值(例如-40或-50),我得到“初始点是局部最小值”。
但是,我认为参数估计值约为-0.8到-1。
我尝试了here上的建议。我尝试使用各种初始猜测并更改最佳容差,但是并不能解决问题。
这是代码:
initialGuess=-1;
time=[0;1;2;3;4;5;6];
data=[350000,210000,80000,20000,100,100,100];
data=(log10(data))';
lb=-150;
ub=0;
P_0=data(1);
model = @(x,time) P_0*exp(x(1).*time);
options = optimoptions('lsqcurvefit','OptimalityTolerance',1e-13,'FiniteDifferenceType','central');
[x,error]=lsqcurvefit(model,initialGuess,time,data,lb,ub,options)
有人可以告诉我如何找到这些数据的参数估计值。