使用Solver-Based优化有效的实时编辑任务
有效地组织任务
把优化活动脚本中的活动编辑器任务,该任务的上面有一个节,下面有两个或多个节。打开优化任务中的实时编辑器,单击插入TAB,然后选择任务>优化.使用节休息按钮。插入选项卡插入一个新部分。
默认情况下,右边的输出按钮在任务窗口右侧被选中。
此选择将输出放在任务的右侧。要将输出放在任务下面,请选择输出内联按钮。
在任务上方,包括用于优化所需数据的部分。例如,初始点
x0
,任何约束矩阵,如Aeq
或说真的
,目标函数或非线性约束函数的额外参数属于任务上面的部分。数据必须包含在任务上方的部分中,以便能够成功运行整个脚本,例如,在保存和重新加载脚本之后。数据在脚本需要访问它之前加载到工作区中。将任务的输出放在任务下面的部分中。例如,显示
解决方案
和objectiveValue
此部分中的输出,在任务将它们写入工作区之后。您可以在任务下面包含多个部分,以查看和处理任务的结果。最后一部分包含该问题的所有局部函数。本地函数必须包含在活动脚本的末尾。但是,如果您有从多个脚本访问的函数,请将它们作为单独的MATLAB文件包括在内®路径可以更方便。
将优化变量放在一个向量中,数据放在其他变量中
优化是基于求解器的优化和方程求解的前端。因此,它要求所有变量都放在一个向量中,如中所述标量目标函数的编写.例如,假设你的目标函数是
在这个例子中,变量x和z是优化变量,还是变量y和w都是固定数据。控件下面的一节中表示函数优化任务如下。
函数F = myfun(vars,y,w) x = vars(1);Z = vars(2);F = (x²+ y²)*exp(-z/(1 + x²))*w*exp(-z);结束
定义变量的值y和w在任务上面的一节中。
Y = log(pi);W = 2/3;
通过按,运行任务上面的部分按Ctrl + Enter把y和w进入工作区。中选择适当的输入选择问题数据部分任务。
指定问题类型以获取推荐的解决方案
的指定问题类型部分提供了用于选择目标函数类型和约束类型的按钮。选择这些项目后,优化减少可用求解器的数量,并显示一个推荐的求解器。例如,对于一个具有最小二乘目标和上下界的问题,优化这表明lsqnonlin
推荐使用Solver。
若要使用当前选择中不可用的求解器,请单击每个所选按钮取消选择所有问题类型按钮。
运行任务的方法
您可以运行优化实时编辑器任务的各种方式:
点击选项按钮⁝在任务窗口的右上方,并选择运行部分.
单击任务,然后按按Ctrl + Enter.
属性将任务设置为在任何更改后自动运行自动运行按钮(位于任务窗口右上方的选项按钮旁边)。如果您的任务很耗时,请不要选择此设置。
通过单击任务左侧的条纹条,运行包含任务的部分。
中运行整个活动脚本住编辑器选项卡,点击运行按钮,或按下F5.
查看求解器进度
Live Editor任务使您能够轻松地监视求解程序的进度。为确保求解器正常执行,至少查看目标函数值图。此外,通过使用绘图函数,您可以停止求解器而不会丢失任何数据。
查看等效代码
优化在内部创建代码以匹配可视选择。您可以通过单击选项按钮查看代码⁝并选择控件和代码或代码只.
代码显示在任务下面。
您可以选择并复制此代码以修改它,以便在其他上下文中使用。
若要将任务从可视界面转换为可用的代码,请选择将任务转换为可编辑代码.这个选择去掉了视觉效果优化接口,并允许您继续使用代码。