Этот пример показывает, как получить большую часть той же информации с помощью основанного на подходе , основанном на проблеме или основанного на решателе подхода. Сначала создайте задачу и решите ее с помощью основанного на проблеме подхода.
Solving problem using fmincon.
Local minimum found that satisfies the constraints.
Optimization completed because the objective function is non-decreasing in
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the value of the constraint tolerance.
Далее преобразуйте задачу в форму на основе решателя с помощью prob2struct
. Иметь fmincon
решатель использует автоматические градиенты в задаче, установите SpecifyObjectiveGradient
опция для true
.
Решите задачу, используя fmincon
.
Local minimum found that satisfies the constraints.
Optimization completed because the objective function is non-decreasing in
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the value of the constraint tolerance.
Для преобразования fmincon
решение структурной формы, возвращаемое solve
, создайте соответствующие структуры с помощью varindex
.
The y
индекс, который varindex
uses является линейным индексом. Измените форму переменной sol.y
иметь размер x0.y
.
Проверьте, что две структуры решения идентичны.
Причина того, что эти два подхода не полностью эквивалентны, заключается в том, что fmincon
может вернуть больше аргументов, таких как множители Лагранжа, в то время как solve
невозможно.