В этом примере показано, как получить большую часть той же информации с помощью или подхода, основанного на проблеме или основанного на решателе подхода. Сначала создайте проблему и решите ее с помощью основанного на проблеме подхода.
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.
y индексируйте тот varindex использование является линейным индексом. Измените переменную sol.y иметь размер x0.y.
Проверяйте, что две структуры решения идентичны.
Причиной, что два подхода не абсолютно эквивалентны, является тот fmincon может возвратить больше аргументов, таких как множители Лагранжа, тогда как solve не может.