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