如果我必须写一个死亡指数下降的模型,那就写下来
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
函数,如果你知道一个很好的参考,那将非常感激。
答案 0 :(得分:2)
fminbnd
找到1D函数的最小值。
例如,如果要在[0,2]中找到二次函数(x-1)^ 2的最小值,则执行
fminbnd(@(x)((x-1)^2), 0, 2)
在你的情况下,既然你想要优化r,那么创建一个函数(比如decayRate(r)
),它接受参数r并返回衰减率,你可以运行像
fminbnd(@(r)((decayRate(r) - targetRate)^2), -5, 5)