Gabriel Ha,Mathworks
与Matlab交互式创建和解决优化问题®,优化工具箱™,或全局优化工具箱使用可视化界面。指定目标和约束,选择求解器,并设置选项。利用优化任务来指定和解决有约束和无约束的非线性规划、线性规划、二次规划、二阶锥规划、混合整数规划、线性和非线性最小二乘问题以及非线性方程组。
优化任务通过选择目标和约束的类型来指导您通过指定问题的类型。视频中的示例是最小化对非线性约束和绑定约束的rosenbrock函数。
非线性目标和约束由MATLAB函数定义。您可以在文件或脚本中浏览定义,或者您可以在选择“新建”时创建新的定义。优化任务为可以编辑的这些新功能创建模板。示例约束函数取决于参数;该视频显示如何修改这种情况的函数。优化任务将参数添加到其选择中,并自动创建优化求解器在使用参数化功能时所需的匿名功能。
最后的规范步骤是选择算法和显示选项。完成后,运行任务并查看结果。使用生成的MATLAB代码在应用程序中重现这些结果或与他人共享。
优化实时编辑器任务使得通过引导您通过问题及其数据的规范来更轻松地解决您的优化问题,当您制作选择,生成MATLAB代码以及在整个文档中提供工具提示和链接时调整。
R2020B中的优化实时编辑器任务使您可以交互式设置并使用Live Editor运行优化。它指导您通过指定问题和探索选项的过程。与所有实时任务一样,它会自动生成与您的选择相对应的MATLAB代码,您可以在其他应用程序中使用,并使其他人能够快速复制您的发现。
作为一个例子,我们将找到一个半径为R的圆上的Rosenbrock函数在x和y上的最小值。
我们将打开一个新的Live Script,并在顶部添加一个部分,在那里我们指定了一些稍后可以轻松更改的参数,即圆的半径和初始起点。我们将快速运行这一节,将变量放入工作区中。
然后,我们将导航到这里,插入Optimize Live Task。
根据目标和约束条件的不同,解决者的列表将改变为能够解决问题的列表。如果你想了解更多关于求解器,点击此图标打开相关文档。
在RosenBrock函数的情况下,我们最小化了低于下限和上限和非线性约束的非线性函数。我们将使用推荐的求解器。
非线性目标如Rosenbrock函数被指定为MATLAB函数。您可以从文件中指定现有函数、Live Script本地函数或创建一个新函数。让我们在Live Script中创建一个局部函数。在输入详细信息之后,我们将返回任务并确保它已被选中。
初始点将设置为我们之前定义的变量。我们可以根据需要在此改变它,并迅速重新运行我们的代码。在输入我们绑定的约束后,我们需要定义我们的非线性约束,也将在新的本地功能中指定。
这是与我们的约束相对应的代码。作为快速概述,C的非正值满足约束,而正值则不满足。由于我们没有非线性平等约束,因此CEQ被设置为空数组。选择实时任务中的约束函数并设置其参数。最后,我们将指定我们希望看到的情节。
我们都准备好了。请注意,与其他Live Tasks不同的是,自动运行按钮默认是关闭的,因为在问题完全设置好之前运行求解器是没有意义的。让我们运行脚本,看看得到了什么。
我们可以从选项菜单中生成用于重新生成这些结果的代码。您可以在应用程序中使用此代码或与他人共享它。
最后一件事是您可以为求解器指定其他选项。例如,我们可以运行不同的算法,看看它是否更快地运行或收敛到不同的本地解决方案。在这种情况下,算法较少迭代并将其收敛到与以前相同的解决方案。
使用优化实时任务以交互式设置并运行优化。要了解更多信息,请在下面的链接中签出文档或直接从应用程序访问它。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。