MATLAB: fmincon не может найти минимальное значение - PullRequest
0 голосов
/ 21 февраля 2012

пробег:

function test()

Aeq = ones(1,4); beq = 1;
a0 = [.2,.2,.2,.1];
[a,f] = fmincon(@ttest,a0,[],[],Aeq,beq);

Результат:

Warning: Trust-region-reflective algorithm does not solve
this type of problem, using active-set algorithm. You
could also try the interior-point or sqp algorithms: set
the Algorithm option to 'interior-point' or 'sqp' and
rerun. For more help, see Choosing the Algorithm in the
documentation. 
> In fmincon at 472
  In test at 6

Local minimum found that satisfies the constraints.

Optimization completed because the objective function is non-decreasing in 
feasible directions, to within the default value of the function tolerance,
and constraints were satisfied to within the default value of the constraint tolerance.

<stopping criteria details>

Я проверил 'ttest', он отлично работает ..... не совсем понимаю предупреждение ~~ Почему он не работает?

1 Ответ

1 голос
/ 21 февраля 2012

Ваша локальная минимизация выполнена успешно: Local minimum found that satisfies the constraints. .Проверьте значения a и f.

. Все предупреждение говорит вам о том, что алгоритм по умолчанию не работает для проблемы, с которой вы работаете, поэтому он выбирает другой для вас.См. Документацию fmincon внизу для описания различных алгоритмов, которые он может использовать.Вы можете избавиться от этого предупреждения, указав ему, какой алгоритм использовать:

Aeq = ones(1,4); beq = 1;
a0 = [.2,.2,.2,.1];
options = optimset('Display', 'iter', ...
                   'Algorithm', 'active-set');
[a,f] = fmincon(@ttest,a0,[],[],Aeq,beq,[],[],[],options);

Я также сказал ему отображать его итерации, что я всегда нахожу полезным на этапе отладки.См. здесь для различных доступных вариантов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...