主要内容

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

有效地组织任务

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

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

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

右输出按钮

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

输出内联按钮

  • 在任务上面,包含一个用于优化所需数据的部分。例如,初始点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 = log(pi);w = 2/3;

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

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

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

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

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

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

运行任务的方法

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

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

    从菜单运行部分

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

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

    autorun章节

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

    在任务左侧的条纹条

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

    运行按钮

视图解决进展

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

绘制客观值

查看等效代码

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

选择控件和代码

代码出现在任务下面。

Lsqnonlin选项和run语法

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

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

转换任务菜单项

另请参阅

相关话题