主要内容

绘制函数

优化执行期间

你可以画出各种措施的进展在解算器的执行。设置PlotFcn名称-值对的optimoptions,并指定一个或多个绘图函数在每个迭代解算器调用。通过一个函数处理或处理单元阵列的功能。

有各种各样的预定义的情节功能可用。看到PlotFcn在求解函数参考页面选项描述。

另外您还可以使用一个函数。编写一个函数文件使用相同的结构作为输出功能。有关这种结构的更多信息,请参阅输出函数和情节函数的语法

使用一块功能

这个例子展示了如何使用情节功能视图的进展fmincon“内点”算法。问题是来自使用优化约束非线性问题编辑任务或解决生活

写的非线性目标和约束函数,包括他们的梯度。目标函数。函数。

类型rosenbrockwithgrad
函数(f, g) = rosenbrockwithgrad f (x) %计算目标f = 100 * (x (2) - x (1) ^ 2) ^ 2 + (1 - x (1)) ^ 2;如果nargout > 1%梯度需要g = (-400 * (x (2) - x (1) ^ 2) * x (1) 2 * (1 - x (1));200 * (x (2) - x (1) ^ 2)];结束

保存这个文件rosenbrockwithgrad.m

满足的约束函数的解决方案规范(x) ^ 2 < = 1

类型unitdisk2
函数[c,测查,gc, gceq] = unitdisk2 c (x) = x (1) ^ 2 + x (2) ^ 2 - 1;测查= [];如果nargout > 2 gc = (2 * x (1), 2 * x (2)];gceq = [];结束

保存这个文件unitdisk2.m

解算器,包括创建选项调用三个情节功能。

选择= optimoptions (@fmincon,“算法”,“内点”,“SpecifyObjectiveGradient”,真的,“SpecifyConstraintGradient”,真的,“PlotFcn”,{@optimplotx、@optimplotfval @optimplotfirstorderopt});

创建初始点x0 = (0,0),其余的输入空([])。

x0 = (0,0);一个= [];b = [];Aeq = [];说真的= [];磅= [];乌兰巴托= [];

调用fmincon,包括选项。

有趣= @rosenbrockwithgrad;nonlcon = @unitdisk2;x = fmincon (Aeq有趣,x0, A, b,说真的,磅,乌兰巴托,nonlcon,选项)

情节图优化函数包含3轴对象。坐标轴对象1与当前点标题,包含数量的变量:2,ylabel当前点包含一个对象类型的酒吧。坐标轴对象2标题当前函数值:0.0456748,包含迭代,ylabel函数值包含一行对象显示它的值只使用标记。轴与标题一阶最优对象3:2.16246 e-08,包含迭代,ylabel一阶最优性包含一行对象显示它的值只使用标记。

局部最小值发现,满足约束。优化完成,因为目标函数中引入可行的方向,在最优值的宽容,和约束满足约束的值公差内。
x =1×20.7864 - 0.6177

相关的话题