Этот пример показывает, как получить большую часть той же информации с помощью основанного на подходе , основанном на проблеме или основанного на решателе подхода. Сначала создайте задачу и решите ее с помощью основанного на проблеме подхода.
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 невозможно.