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