优化
说明
优化任务允许您在两种方法之间进行选择,以交互方式优化问题或求解非线性方程组:
基于问题(推荐)- 创建符号优化变量和表达式来表示目标函数和约束或方程。
基于求解器 - 使用标准 MATLAB® 代码表示目标函数和约束或方程。
该任务会自动为您的实时脚本生成 MATLAB 代码。
使用此任务的基于问题的版本,您可以:
指定优化变量数组,包括其边界和初始值。
指定问题类型:最小化、最大化、可行性或方程求解。
通过编写表达式或浏览查找函数来指定目标函数和约束函数。
(可选)选择求解器,并指定非默认选项。
运行优化。
使用此任务的基于求解器的版本,您可以:
根据问题的特征选择一个求解器。如果您有 Global Optimization Toolbox,也可以选择使用它的求解器。
通过编写函数或浏览查找函数来指定目标函数和约束函数。
指定求解器选项。
运行优化。
要开始使用优化,请参阅开始使用基于求解器的优化实时编辑器任务 和 基于问题的优化实时编辑器任务快速入门。有关如何使用优化任务的建议,请参阅有效使用基于求解器的优化实时编辑器任务或有效使用基于问题的优化实时编辑器任务。当前,您无法将 fseminf
、GlobalSearch
或 MultiStart
求解器与优化任务结合使用。
有关实时编辑器任务的一般信息,请参阅将交互式任务添加到实时脚本中。
打开任务
要将优化任务添加到 MATLAB 编辑器中的实时脚本,请在实时编辑器的插入选项卡上,选择任务 > 优化。
或者,在脚本的代码块中,键入相关关键字,如 optim
或 fmincon
。从建议的命令自动填充项中选择优化。
插入任务后,请选择基于问题(推荐) 或基于求解器。
示例
- 开始使用基于求解器的优化实时编辑器任务
- 基于问题的优化实时编辑器任务快速入门
- 使用优化实时编辑器任务或求解器的有约束非线性问题
- 使用基于问题的 Optimize 实时编辑器任务求解可行性问题
- 使用 fmincon 求解器优化实时编辑器任务
- 使用 lsqlin 求解器优化实时编辑器任务
- 使用 GPS 算法进行优化 (Global Optimization Toolbox)
- 最小化具有许多局部最小值的函数 (Global Optimization Toolbox)
- 双目标的帕累托前沿 (Global Optimization Toolbox)
- 有效使用基于问题的优化实时编辑器任务
- 有效使用基于求解器的优化实时编辑器任务
- 基于求解器的优化问题设置
- 如何使用基于求解器的优化实时编辑器任务
- 如何使用基于问题的优化实时编辑器任务
参数
局限性
当前,优化对多目标优化有以下限制。
您必须使用具有多个输出的单一函数来指定目标函数。换句话说,您的目标函数必须输出一个值向量,每个目标对应一个条目。
所有目标函数必须使用相同的含义,基于求解器的任务的最小化,以及基于问题的任务的最小化或最大化。
提示
对于具有额外输入的函数,基于求解器和基于问题的优化任务的要求略有不同。
基于求解器:选择优化变量,并指定哪些工作区变量包含固定数据输入。有关示例,请参阅将优化变量放在一个向量中,将数据放在其他变量中,其中包含三个函数输入:
优化仅在您指定所有函数输入后才生成代码。
基于问题:为每个函数输入指定优化变量或工作区变量名称。如果函数签名中的输入参量名称与现有优化变量或工作区变量名称匹配,优化任务会自动选择该名称。
优化仅在您指定所有函数输入后才生成代码。
优化无法解析包含
varargin
输入的函数或包含错误的函数。如果从文件中选择函数,优化会将文件位置添加到您的 MATLAB 路径中。
如果优化出现解析错误,或多个局部函数同名,则可用局部函数列表为空。
版本历史记录
在 R2020b 中推出另请参阅
函数
fmincon
|intlinprog
|surrogateopt
(Global Optimization Toolbox) |patternsearch
(Global Optimization Toolbox)