Optimization Toolbox

 

Optimization Toolbox

求解线性、二次、锥、整数及非线性优化问题

开始:

定义优化问题

将设计或决策问题建模为优化问题。将设计参数或决策方案设置为优化变量。使用它们定义要优化的目标函数,并使用约束来限定可能的变量值。

基于问题的优化

将目标和约束写作优化变量表达式。对非线性表达式运用自动微分,更快、更稳健地求解。应用自动选择的求解器。使用实时编辑器中的“优化”任务以交互方式创建并求解问题,然后生成代码,以便与他人共享或整合到应用。

基于求解器的优化

将非线性目标和约束写作函数,将线性目标和约束写作系数矩阵。使用实时编辑器中的“优化”任务以交互方式创建并求解问题,然后生成代码,以便与他人共享或整合到应用。

求解优化问题

应用求解器处理优化问题,确定最优解,即一组优化变量值,可实现目标函数最优值(如有)且满足约束(如有)。

设置选项

设置优化选项以调整优化过程,例如选择求解器使用的优化算法,或设置终止条件。设置选项以监控并绘制优化求解器进度。

查看并改进结果

查看退出消息、最优性度量和迭代输出,对解进行评估。提高求解器处理非线性问题的性能,可以使用自动微分、直接提供梯度,或使用并行计算估计梯度。

通过迭代输出监控求解器的进度

通过迭代输出监控求解器的进度。

非线性规划

求解具有非线性目标或非线性约束的优化问题。

应用

将非线性优化用于变量间存在非线性关系的各种应用,如估计和调整参数、寻找最优设计、计算最优轨迹、构建稳健投资组合等。

线性、二次和锥规划

求解具有线性或二次目标且具有线性或二阶锥约束的凸优化问题。

线性规划求解器

应用对偶单纯形或内点算法求解线性规划。

最优解

线性规划的可行域和最优解。

二次和二阶锥规划求解器

应用内点、活动集或信赖域反射算法来求解二次规划。应用内点法求解二阶锥规划。

最优解

二次规划的可行域和最优解。

应用

使用线性规划求解问题,如资源分配、生产规划、配料及投资规划。使用二次和二阶锥规划,求解设计优化、投资组合优化及水电站大坝的控制等问题。

水电站运行规划

使用二次规划确定最优控制策略。

混合整数线性规划

求解具有线性目标和线性约束、且另有约束规定部分或全部变量必须为整数值的优化问题。

求解器

使用分支定界算法求解混合整数线性规划问题,包含预处理、使用启发式方法生成可行点,以及割平面。

最优解

应用分支定界算法。

基于混合整数线性规划的算法

使用混合整数线性规划求解器构建专用算法。

规模为 200 个城市的旅行商问题的解

最短行程,每座城市只经过一次。

应用

使用整数变量建模,求解开/关决策、逻辑约束以及其他变量值必须为整数的问题。路由、调度、规划、分配及资本预算问题均为典型应用。

最优发电机调度

在浮动电价下调度两台发电机。

多目标优化

求解具有多个目标函数和一组约束的优化问题。

求解器

将问题构造为目标达到问题或极小化极大问题。当每个目标均有权重可选的加权目标值时,使用目标达到。需要最小化一组目标函数的最差情形值时,使用极小化极大。

帕雷托图

使用 fgoalattain 函数计算帕雷托前沿

应用

当需要对冲突目标做出权衡时,使用多目标优化算法。例如,结构设计中的重量与强度,以及投资组合优化中的风险与回报。

FIR 滤波器设计

初始和优化滤波器系数的幅值响应。

最小二乘和方程求解

求解非线性最小二乘问题和具有边界约束的非线性方程组。求解具有边界和线性约束的线性最小二乘问题。

求解器

应用 Levenberg-Marquardt、信赖域、活动集或内点算法。

非线性数据拟合

局部和全局方法比较。

线性最小二乘应用

使用线性最小二乘求解器,您可以对采集的数据进行线性模型拟合,或者求解线性方程组,包括参数具有边界和线性约束的情形。

光学去模糊

通过求解线性最小二乘问题还原模糊图像。

非线性最小二乘应用

使用非线性最小二乘求解器,您可以对采集的数据进行非线性模型拟合,或者求解非线性方程组,包括参数具有边界约束的情形。

洛仑兹方程组的圆周轨迹拟合。

对洛仑兹常微分方程组进行圆周轨迹拟合。

部署

构建基于优化的决策支持和设计工具,与企业系统进行集成,并将优化算法部署到嵌入式系统中。

MATLAB Compiler 支持

使用 MATLAB Compiler™MATLAB Compiler SDK™,可将 MATLAB® 优化模型部署为独立可执行文件、Web App、C++ 共享库、Microsoft® .NET 程序集、Java® 类和 Python® 包。

机组组合 App

一款用于计算最优发电调度方案的 App。

代码生成

使用 MATLAB Coder™ 生成可移植且可读的 C 或 C++ 代码,以求解优化问题。为包括嵌入式系统在内的各种硬件编译生成的代码。

MATLAB Coder 报告

MATLAB Coder 轨迹优化函数报告。