优化
在实时编辑器中优化或解决方程
描述
的优化Task让你选择两种方式来交互优化问题或解决非线性方程组:
基于问题的(推荐)——创建符号优化变量和表达式来表示目标函数和约束或方程。
基于求解器-使用标准MATLAB表示目标函数和约束或方程®代码。
该任务自动为您的实时脚本生成MATLAB代码。
使用此任务的基于问题的版本,您可以:
指定优化变量数组,包括它们的边界和初始值。
指定问题类型:最小化、最大化、可行性或方程求解。
通过编写表达式或浏览函数来指定目标函数和约束函数。
可选地,选择一个求解器,并指定非默认选项。
运行优化。
使用这个任务的基于求解器的版本,你可以:
根据问题的特点选择解决方法。如果你有全局优化工具箱,你也可以选择使用它的求解器。
通过编写函数或浏览函数来指定目标函数和约束函数。
指定求解器选项。
运行优化。
开始使用优化,请参阅开始使用基于求解器的优化实时编辑器任务而且开始使用基于问题的优化实时编辑器任务.如何使用的建议优化,请参阅有效地使用基于求解器的实时编辑器任务优化或有效地使用基于问题的优化实时编辑器任务.属性当前不能使用fseminf
,GlobalSearch
,或MultiStart
解决与优化.
有关实时编辑器任务的一般信息,请参见在活动脚本中添加交互式任务.
打开任务
要添加优化任务到MATLAB编辑器中的实时脚本,在实时编辑器上插入选项卡上,选择任务>优化.
或者,在脚本中的代码块中,键入相关的关键字,例如optim
或fmincon
.选择优化从建议的命令补全。
例子
参数
基于问题的变量名是动态的;您可以根据通常的命名限制选择任何您喜欢的名称(请参阅变量名).
具体问题具体分析目标
-问题类型
最小化
(默认)|最大化
|可行性
|解决方程
问题类型,通过单击适当的标记按钮指定。
客观的
-目标函数
优化表达式|局部函数|函数文件
目标函数,指定为优化表达式、局部函数或函数文件。适用于目标
是最小化
或最大化
.
约束
-解决方案约束
优化表达式|局部函数|函数文件
解决方案的约束,指定为优化表达式、局部函数或函数文件。通过单击+按钮向问题添加约束。
方程
-问题方程
优化表达式|局部函数|函数文件
问题方程,指定为优化表达式、局部函数或函数文件。适用于目标
是解决方程
.通过单击+按钮为问题添加方程。
选择任务模式
-任务状态
定义问题
|解决问题
任务状态,指定为定义问题
或解决问题
.有关更多信息,请参见有效地使用基于问题的优化实时编辑器任务.
客观的
-目标函数类型
线性
|二次
|最小二乘
|非线性
|非光滑
目标函数类型,通过单击适当的标记按钮指定。所选的目标函数决定了哪些解算器可用,以及为问题推荐哪些解算器(参见解算器
).
约束
-约束类型
无约束
|下界
|上界
|线性不等式
|线性平等
|二阶锥
|非线性
|整数
约束类型,通过单击适当的标记按钮指定。您可以指定多个约束类型。所选的约束决定了哪些解算器可用,以及为该问题推荐哪些解算器(请参见解算器
).
限制
目前,优化对于多目标优化有以下限制。
您必须使用具有多个输出的单个函数指定目标函数。换句话说,你的目标函数必须输出一个值向量,每个目标对应一个条目。
所有目标函数都必须使用相同的意义,最小化用于基于求解器的任务,最小化或最大化用于基于问题的任务。
提示
对于有额外输入的函数,基于求解器和基于问题优化任务有一些不同的要求。
Solver-Based:选择优化变量,指定哪些工作空间变量包含固定的数据输入。例如,请参见将优化变量放在一个向量中,数据放在其他变量中,其中包含三个函数输入:
优化仅在指定所有函数输入后才生成代码。
具体问题具体分析:为每个函数输入指定一个优化变量或工作区变量名。如果函数签名中的输入参数名称与现有优化变量或工作空间变量名称匹配,则优化自动选择该名称。
优化仅在指定所有函数输入后才生成代码。
优化属性的函数不能解析
变长度输入宗量
包含错误的输入或函数。如果从文件中选择一个函数,优化将文件位置添加到MATLAB路径中。
如果优化有解析错误,或者如果多个本地函数具有相同的名称,可用的本地函数列表为空。
版本历史
R2020b中介绍