主要内容

优化

在实时编辑器中优化或解决方程

描述

优化Task让你选择两种方式来交互优化问题或解决非线性方程组:

  • 基于问题的(推荐)——创建符号优化变量和表达式来表示目标函数和约束或方程。

  • 基于求解器-使用标准MATLAB表示目标函数和约束或方程®代码。

该任务自动为您的实时脚本生成MATLAB代码。

使用此任务的基于问题的版本,您可以:

  • 指定优化变量数组,包括它们的边界和初始值。

  • 指定问题类型:最小化、最大化、可行性或方程求解。

  • 通过编写表达式或浏览函数来指定目标函数和约束函数。

  • 可选地,选择一个求解器,并指定非默认选项。

  • 运行优化。

使用这个任务的基于求解器的版本,你可以:

  • 根据问题的特点选择解决方法。如果你有全局优化工具箱,你也可以选择使用它的求解器。

  • 通过编写函数或浏览函数来指定目标函数和约束函数。

  • 指定求解器选项。

  • 运行优化。

开始使用优化,请参阅开始使用基于求解器的优化实时编辑器任务而且开始使用基于问题的优化实时编辑器任务.如何使用的建议优化,请参阅有效地使用基于求解器的实时编辑器任务优化有效地使用基于问题的优化实时编辑器任务.属性当前不能使用fseminfGlobalSearch,或MultiStart解决与优化

有关实时编辑器任务的一般信息,请参见在活动脚本中添加交互式任务

打开任务

要添加优化任务到MATLAB编辑器中的实时脚本,在实时编辑器上插入选项卡上,选择任务>优化

插入一个优化活动编辑器任务

或者,在脚本中的代码块中,键入相关的关键字,例如optimfmincon.选择优化从建议的命令补全。

从命令完成建议中选择“优化”

参数

基于问题的变量名是动态的;您可以根据通常的命名限制选择任何您喜欢的名称(请参阅变量名).

具体问题具体分析

问题类型,通过单击适当的标记按钮指定。

目标函数,指定为优化表达式、局部函数或函数文件。适用于目标最小化最大化

解决方案的约束,指定为优化表达式、局部函数或函数文件。通过单击+按钮向问题添加约束。

问题方程,指定为优化表达式、局部函数或函数文件。适用于目标解决方程.通过单击+按钮为问题添加方程。

任务状态,指定为定义问题解决问题.有关更多信息,请参见有效地使用基于问题的优化实时编辑器任务

Solver-Based

目标函数类型,通过单击适当的标记按钮指定。所选的目标函数决定了哪些解算器可用,以及为问题推荐哪些解算器(参见解算器).

约束类型,通过单击适当的标记按钮指定。您可以指定多个约束类型。所选的约束决定了哪些解算器可用,以及为该问题推荐哪些解算器(请参见解算器).

MATLAB用来解决问题的优化求解器,通过从可用求解器列表中选择一个求解器来指定。可用的解算器和推荐的解算器取决于您的许可证和所选的客观的而且约束

限制

  • 目前,优化对于多目标优化有以下限制。

    • 您必须使用具有多个输出的单个函数指定目标函数。换句话说,你的目标函数必须输出一个值向量,每个目标对应一个条目。

    • 所有目标函数都必须使用相同的意义,最小化用于基于求解器的任务,最小化或最大化用于基于问题的任务。

提示

  • 对于有额外输入的函数,基于求解器和基于问题优化任务有一些不同的要求。

    • Solver-Based:选择优化变量,指定哪些工作空间变量包含固定的数据输入。例如,请参见将优化变量放在一个向量中,数据放在其他变量中,其中包含三个函数输入:

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

      优化仅在指定所有函数输入后才生成代码。

    • 具体问题具体分析:为每个函数输入指定一个优化变量或工作区变量名。如果函数签名中的输入参数名称与现有优化变量或工作空间变量名称匹配,则优化自动选择该名称。

      函数输入= x y a。

      优化仅在指定所有函数输入后才生成代码。

  • 优化属性的函数不能解析变长度输入宗量包含错误的输入或函数。

  • 如果从文件中选择一个函数,优化将文件位置添加到MATLAB路径中。

  • 如果优化有解析错误,或者如果多个本地函数具有相同的名称,可用的本地函数列表为空。

版本历史

R2020b中介绍

另请参阅

功能