Можно построить график различных показателей прогресса во время выполнения решателя. Установите PlotFcn пара имя-значение в optimoptionsи укажите одну или несколько функций печати, которые решатель должен вызывать в каждой итерации. Передача дескриптора функции или массива ячеек дескрипторов функции.
Существует множество предварительно определенных функций печати. См. раздел PlotFcn описание опции на справочной странице функции решателя.
Также можно использовать пользовательскую функцию печати. Запишите файл функции, используя ту же структуру, что и выходная функция. Дополнительные сведения об этой структуре см. в разделах Функция вывода и Синтаксис функции печати.
В этом примере показано, как использовать функции печати для просмотра хода выполнения fmincon 'interior-point' алгоритм. Задача взята из команды «Решить ограниченную нелинейную задачу на основе решателя».
Запишите нелинейные целевые функции и функции ограничения, включая их градиенты. Целевой функцией является функция Розенброка.
type rosenbrockwithgradfunction [f,g] = rosenbrockwithgrad(x)
% Calculate objective f
f = 100*(x(2) - x(1)^2)^2 + (1-x(1))^2;
if nargout > 1 % gradient required
g = [-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1));
200*(x(2)-x(1)^2)];
end
Сохранить этот файл как rosenbrockwithgrad.m.
Функция ограничения заключается в том, что решение удовлетворяет norm(x)^2 <= 1.
type unitdisk2function [c,ceq,gc,gceq] = unitdisk2(x)
c = x(1)^2 + x(2)^2 - 1;
ceq = [ ];
if nargout > 2
gc = [2*x(1);2*x(2)];
gceq = [];
end
Сохранить этот файл как unitdisk2.m.
Создайте структуру опций, которая включает вызов трех функций печати:
options = optimoptions(@fmincon,'Algorithm','interior-point',... 'SpecifyObjectiveGradient',true,'SpecifyConstraintGradient',true,... 'PlotFcn',{@optimplotx,@optimplotfval,@optimplotfirstorderopt});
Создание начальной точки x0 = [0,0]и установите остальные входы в пустое состояние ([]).
x0 = [0,0]; A = []; b = []; Aeq = []; beq = []; lb = []; ub = [];
Звонить fmincon, включая варианты.
fun = @rosenbrockwithgrad; nonlcon = @unitdisk2; x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)

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.
x = 1×2
0.7864 0.6177