主要内容

优化

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

描述

优化任务让您交互式优化线性和非线性目标函数的各种类型的约束,并解决非线性方程组。任务自动生成MATLAB®为您的活动脚本编写代码。

使用这个任务,你可以:

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

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

  • 指定解算器选项。

  • 运行优化。

询问如何使用的建议优化,请参阅有效使用优化实时编辑器任务.目前,您不能使用fseminf,GlobalSearch,或MultiStart解决与优化

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

打开任务

添加优化任务到一个在MATLAB编辑器中的活动脚本,在活动编辑器上插入选项卡上,选择任务>优化

插入优化实时编辑器任务

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

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

参数

目标函数类型,通过单击相应标记的按钮指定。所选的目标函数确定哪些求解器可用,建议使用哪种求解器(参见求解器).

约束类型,通过单击适当的标记按钮指定。可以指定多个约束类型。所选的约束决定了哪些求解器是可用的,以及对于该问题建议使用哪些求解器(参见求解器).

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

可用的求解器

约束类型 目标类型
线性 二次 最小二乘 非线性 非光滑
不受约束的 解决方案是微不足道的 Quadprog. lsqcurvefit,lsqnonlin,lsqnonneg,lsqlin fgoalattain,fminsearch,Fminimax.,fminunc,fsolve,Fzero.,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),particleswarm(全局优化工具箱),simulannealbnd(全局优化工具箱) fminsearch,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),particleswarm(全局优化工具箱),simulannealbnd(全局优化工具箱)
范围只 linprog. Quadprog. lsqcurvefit,lsqnonlin,lsqnonneg,lsqlin fgoalattain,fminbnd,fmincon,Fminimax.,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),particleswarm(全局优化工具箱),simulannealbnd(全局优化工具箱),surrogateopt(全局优化工具箱) fminbnd,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),particleswarm(全局优化工具箱),simulannealbnd(全局优化工具箱),surrogateopt(全局优化工具箱)
线性 linprog. Quadprog. lsqlin,fmincon fgoalattain,fmincon,Fminimax.,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱) 遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱)
线性+整数 intlinprog 遗传算法(全局优化工具箱),surrogateopt(全局优化工具箱) 遗传算法(全局优化工具箱),surrogateopt(全局优化工具箱) 遗传算法(全局优化工具箱),surrogateopt(全局优化工具箱) 遗传算法(全局优化工具箱),surrogateopt(全局优化工具箱)
二阶锥 coneprog. fgoalattain,fmincon,Fminimax.,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱) fgoalattain,fmincon,Fminimax.,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱) fgoalattain,fmincon,Fminimax.,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱) 遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱)
非线性 fgoalattain,fmincon,Fminimax.,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱) fgoalattain,fmincon,Fminimax.,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱) fgoalattain,fmincon,Fminimax.,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱) fgoalattain,fmincon,Fminimax.,遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱) 遗传算法(全局优化工具箱),gamultiobj.(全局优化工具箱),paretosearch(全局优化工具箱),Patternsearch.(全局优化工具箱),surrogateopt(全局优化工具箱)
非线性+整数 遗传算法(全局优化工具箱),surrogateopt(全局优化工具箱) 遗传算法(全局优化工具箱),surrogateopt(全局优化工具箱) 遗传算法(全局优化工具箱),surrogateopt(全局优化工具箱) 遗传算法(全局优化工具箱),surrogateopt(全局优化工具箱) 遗传算法(全局优化工具箱),surrogateopt(全局优化工具箱)

例子:fmincon

提示

  • 对于有额外输入的函数,优化要求您选择优化变量,并指定哪些工作区变量包含固定的数据输入。例如,请参见将优化变量放在一个向量中,数据放在其他变量中,包含三个函数输入:

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

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

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

  • 如果从文件中选择目标或非线性约束函数,优化将文件位置添加到MATLAB路径中。

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

介绍了R2020b