Может кто-нибудь объяснить мне, как использовать сумму квадратов и функцию Matlab Fminbnd - PullRequest
0 голосов
/ 11 сентября 2011

Если мне нужно написать модель экспоненциального снижения смертности и, следовательно, написать ее

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, если вы знаете хороший справочник, он будет очень признателен.

1 Ответ

2 голосов
/ 12 сентября 2011

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...