如果我必须写一个死亡率指数下降的模型,那么就写
X(n) = X(n-1) - r*X(n-1);
然后我必须使用平方和和matlab函数fminbnd
来估计给出衰减率的参数。
应该是
function X = exponentialDecline(X1,r,nmax)
%Computes death under exponential decline, with decline rate r
X = zeros(1,nmax);
X(1) = X1;
for n=2:nmax
X(n) = X(n-1) - r*X(n-1);
end
这是正确的方式吗?我真的不知道如何使用fminbnd
函数,如果你知道一个好的参考,我将非常感谢。
fminbnd
求1D函数的极小值。例如,如果你想找到二次函数(x-1)^2在[0,2]中的最小值,那么执行
fminbnd(@(x)((x-1)^2), 0, 2)
在您的情况下,由于您希望针对r进行优化,因此创建一个函数(例如decayRate(r)
),该函数接受参数r并返回衰减率,并且您可以运行类似
fminbnd(@(r)((decayRate(r) - targetRate)^2), -5, 5)