fminsearch не находит минимайзер в Matlab

#matlab

Вопрос:

Я пытаюсь найти минимизатор в Matlab

Ниже приведен пример функции(valuefn) Я написал.

 function out = valuefn(input_k,input_d,input_z,x1,x2) % Parameters R = 1.0080; sig = 0.75; delta = 0.1; fixed = 0.05; psi = 0.88;  k = input_k; d = input_d; z = input_z; kp = x1; dp = x2; c = z   k   (1-delta)*d - dp - kp/R - fixed*(1-delta)*d; out = (1/(1-1/sig)) * (c gt; 0 amp; dp gt; 0) .* (c.^psi.*dp.^(1-psi)).^(1-1/sig)   (c lt;= 0 | dp lt;= 0) * (-999999); if isnan(out)  out = -999999;  end  end  

А затем я выполняю следующее,

 sol = fminsearchbnd(@(kp) -valuefn(-20,2,0.6620,kp(1),kp(2)), [0 0], [-20 2], [60 60]); valuefn(-20,2,0.6620,sol(1),sol(2)) valuefn(-20,2,0.6620,-20,2)   

Таким образом, в принципе, » sol » должен искать минимизатор, начиная с kp(1) = 0 и kp(2) = 0, а интервал равен [-20 60] для kp(1) и [2 60] для kp(2).

Однако «соль» не дает мне минимизатора, когда я сравниваю значение функции с решением, а значение функции с (-20,2), последнее меньше первого.

Я не совсем понимаю, почему это происходит. Любая помощь была бы очень признательна.

Спасибо