主要内容

使用优化有效的实时编辑器任务

有效组织任务

优化活动编辑器任务在活动脚本中,任务上面有一节,任务下面有两节或更多节。打开优化任务,单击插入选项卡,然后选择任务>优化.使用节休息按钮插入选项卡以插入新区段。

实时脚本,数据部分在顶部,然后优化实时编辑器任务,然后部分输出,然后部分函数。

默认情况下,输出正确的单击任务窗口右侧的。

右输出按钮

这个选择将输出放置到任务的右侧。要将输出放置在任务下方,请选择输出内联按钮。

输出内联按钮

  • 在任务上面,包含一个用于优化所需数据的部分。例如,初始点x0,任何约束矩阵,如Aeq说真的,目标函数或非线性约束函数的额外参数属于任务的上述部分。数据必须包含在任务上面的一个部分中,这样您就可以成功地运行整个脚本,例如,在保存并重新加载脚本之后。数据在脚本需要访问它之前加载到工作区中。

  • 将任务的输出放在任务下面的一节中。例如,显示解决方案objectiveValue在任务将其写入工作空间之后,本节中的输出。您可以在任务下面包含多个部分,以查看和处理任务的结果。

  • 最后一节包含该问题的任何局部函数。本地函数必须包含在现场脚本的末尾。但是,如果您有从多个脚本访问的函数,请将它们作为MATLAB中的单独文件包含®路径可以更方便。

将优化变量放在一个向量中,数据放在其他变量中

优化是基于求解器的优化和方程求解的前端。因此,它要求将所有变量放在一个向量中,如标量目标函数的编写.例如,假设你的目标函数是

f x y z w x 2 + y 4 经验值 z / 1 + x 2 w 经验值 z

在这个例子中,变量xz是优化变量,还是变量yw是固定的数据。可以在下面的一节中表示函数优化任务如下。

函数F = myfun(vars,y,w) x = vars(1);z = var (2);F = (x^2 + y^4)*exp(-z/(1 + x^2))*w*exp(-z)结束

定义变量的值yw在任务上面的一节。

y =日志(π);w = 2/3;

通过按下运行任务上面的部分按Ctrl + Enteryw进入工作区。然后选择适当的输入选择问题数据任务的一部分。

优化输入= var,固定输入y = y,固定输入w = w。

指定获取的问题类型推荐解决方案

指定的问题类型任务段提供了选择目标函数类型和约束类型的按钮。选择这些项目后,优化减少可用求解器的数量,并按照建议显示一个求解器。例如,对于一个有最小二乘目标和上界和下界的问题,优化表明,lsqnonlin建议解决。

最小二乘目标,下界和上界导致推荐的lsqnonlin

若要使用当前选择中不可用的求解器,请单击每个已选按钮取消对所有问题类型按钮的选择。

运行任务的方法

你可以运行优化Live Editor任务有多种方式:

  • 点击选项按钮在任务窗口的右上方,然后选择运行部分

    从菜单运行部分

  • 在任务中单击,然后按按Ctrl + Enter

  • 属性,将任务设置为在任何更改之后自动运行自动运行按钮(在任务窗口右上角的选项按钮旁边)。如果您的任务比较耗时,请不要选择此设置。

    自动运行部分

  • 通过单击任务左侧的条纹条运行包含任务的部分。

    在任务左侧的条纹条

  • 从。运行整个活动脚本住编辑器选项卡,单击运行按钮,或按下F5

    运行按钮

视图解决进展

Live Editor任务使您能够轻松地监视求解程序的进度。为了确保求解器运行正常,至少要查看目标函数值图。此外,通过使用plot函数,您可以在不丢失任何数据的情况下停止求解器。

绘制客观值

视图等价的代码

优化在内部创建代码以匹配可视选择。您可以通过单击选项按钮来查看代码并选择控制和代码代码只

选择控件和代码

代码出现在任务下面。

Lsqnonlin选项和run语法

您可以选择并复制此代码以修改它以在其他上下文中使用。

要将任务从可视化界面转换为可用代码,请选择将任务转换为可编辑代码.这个选择删除了视觉效果优化接口,并允许您继续使用代码。

转换任务菜单项

另请参阅

相关的话题