基于求解器的非线性优化
使用基于求解器的方法以串行或并行方式求解非线性最小化和半无限规划问题
在开始求解优化问题之前,您必须选择合适的方法:基于问题或基于求解器。有关详细信息,请参阅首先选择基于问题或基于求解器的方法。
有关问题设置,请参阅基于求解器的优化问题设置。
函数
fminbnd | 查找单变量函数在定区间上的最小值 |
fmincon | 寻找约束非线性多变量函数的最小值 |
fminsearch | 使用无导数法计算无约束多变量函数的最小值 |
fminunc | 求无约束多变量函数的最小值 |
fseminf | 求解半无限约束多变量非线性函数的最小值 |
checkGradients | 根据有限差分近似检查一阶导数函数 (自 R2023b 起) |
optim.coder.infbound | 对代码生成的边界支持 (自 R2022b 起) |
实时编辑器任务
优化 | 在实时编辑器中优化或求解方程 (自 R2020b 起) |
主题
基于无约束求解器的应用
- 香蕉函数的最小化
说明如何使用不同求解器在使用或不使用梯度的情况下求解罗森布罗克函数的最小值。 - 求解多变量非线性问题
为大型非线性问题选择适当的选项。 - 使用 fminunc 进行无约束最小化
无约束非线性规划的示例。 - 使用梯度和黑塞矩阵的最小化
包含导数的无约束非线性规划的示例。 - 使用梯度和 Hessian 稀疏模式进行最小化
使用一些导数信息的非线性规划的示例。
基于有约束求解器的应用
- Optimization Toolbox 教程
教程示例说明如何求解非线性问题和传递额外参数。 - 使用 fmincon 求解器优化实时编辑器任务
使用优化实时编辑器任务的约束非线性规划示例。 - 非线性不等式约束
具有非线性不等式约束的非线性规划示例。 - 带梯度的非线性约束
含有导数信息的非线性规划示例。 - 使用解析黑塞函数的 fmincon 内点算法
使用所有导数信息的非线性规划示例。 - 具有二次约束的线性或二次目标
此示例说明如何求解具有线性或二次目标和二次不等式约束的优化问题。 - 非线性等式和不等式约束
同时具有两类非线性约束的非线性规划。 - 如何使用所有类型的约束
显示所有约束的示例。 - 获取最佳可行点
在output
结构中找到最佳可行点。 - 求解多变量非线性问题
为大型非线性问题选择适当的选项。 - 具有边界约束和带状预条件子的最小化
该示例展示了通过结构化非线性问题可以提高效率。 - 使用线性等式约束的信赖域反射算法进行最小化
显示仅具有线性等式约束的非线性规划的示例。 - 使用密集结构 Hessian 和线性等式进行最小化
示例展示了如何使用结构化的 Hessian 和仅线性等式约束或仅边界来节省非线性规划中的内存。 - 使用 Symbolic Math Toolbox 计算梯度和 Hessian
示例展示了如何为优化求解器符号化计算导数。 - 使用符号数学和 Optimization Toolbox 求解器
使用 Symbolic Math Toolbox™ 生成梯度和 Hessians。
代码生成
- fmincon 背景中的代码生成
为非线性优化生成 C 代码的前提条件。 - 优化代码生成基础知识
了解为fmincon
优化求解器生成代码的基础知识。 - fmincon 代码生成的静态内存分配
当问题发生变化时,在代码生成中使用静态内存分配。 - 实时应用的优化代码生成
探索处理生成代码中的实时需求的技术。
半无限约束
- 一维半无限约束
展示如何在非线性规划中使用一维半无限约束的示例。 - 二维半无限约束
展示如何在非线性规划中使用二维半无限约束的示例。 - 使用半无限规划分析不确定性的影响
此示例说明如何使用半无限规划来研究优化问题模型参数不确定性的影响。
并行计算
- Optimization Toolbox 中的并行计算是什么?
使用多个处理器进行优化。 - 在 Optimization Toolbox 中使用并行计算
并行执行梯度估计。 - 利用并行计算提高性能
调查加速优化的因素。 - 使用 Parallel Computing Toolbox 最小化高成本优化问题
说明如何在 Global Optimization Toolbox 和 Optimization Toolbox™ 求解器中使用并行计算的示例。
仿真或 ODE
- 优化仿真或常微分方程
优化仿真、黑盒目标函数或 ODE 时的特殊注意事项。
算法和其他理论
- 无约束非线性优化算法
在无约束的情况下,在 n 个维度中最小化单目标函数。 - 约束非线性优化算法
在有各种约束的情况下,在 n 个维度中最小化单目标函数。 - fminsearch 算法
fminsearch
最小化函数所采取的步骤。 - 优化选项参考
了解优化选项。 - 局部最优与全局最优
解释为什么求解器可能找不到最小的最小值。 - 非光滑函数的光滑表示
使用辅助变量将一些非光滑函数重新构造为光滑函数。 - 优化参考书目
列出涉及优化求解器算法中所实现概念的已发布资料。