基于问题的非线性优化
使用基于问题的方法以串行或并行方式求解非线性优化问题
在开始求解优化问题之前,您必须选择合适的方法:基于问题或基于求解器。有关详细信息,请参阅首先选择基于问题或基于求解器的方法。
将您的目标和非线性约束函数表示为使用优化变量的表达式,或使用 fcn2optimexpr
转换 MATLAB® 函数。有关问题设置,请参阅基于问题的优化设置。
函数
evaluate | 计算问题中的优化表达式或目标和约束 |
fcn2optimexpr | 将函数转换为优化表达式 |
infeasibility | 一个点处的约束违反值 |
optimproblem | 创建优化问题 |
optimvar | 创建优化变量 |
prob2struct | 将优化问题或方程问题转换为求解器形式 |
solve | 求解优化问题或方程问题 |
实时编辑器任务
优化 | 在实时编辑器中优化或求解方程 (自 R2020b 起) |
主题
基于无约束问题的应用
- 基于问题的有理目标函数
此示例说明如何使用优化变量创建一个有理目标函数,并求解由此产生的无约束问题。
基于有约束问题的应用
- 基于问题求解有约束非线性优化
此示例说明如何基于优化表达式求解有约束非线性问题。该示例还说明如何将非线性函数转换为优化表达式。 - 将非线性函数转换为优化表达式
通过使用fcn2optimexpr
转换非线性函数,无论是表示为函数文件还是匿名函数。 - 使用优化变量的约束静电非线性优化
定义基于问题的方法中结构化非线性优化的目标和约束函数。 - 基于问题的离散化最优轨迹
此示例展示如何使用基于问题的方法求解离散化最佳轨迹问题。 - 基于问题的约束约束非线性最小化
展示如何使用优化变量创建线性约束,以及如何使用fcn2optimexpr
将函数转换为优化表达式。 - 自动微分在基于问题的优化中的作用
自动微分减少了求解问题的函数计算的次数。 - 基于问题的工作流中的供应衍生品
当自动导数不适用时,如何在基于问题的优化中包含导数信息。 - 获取生成函数详细信息
查找由prob2struct
创建的非线性函数中的额外参数的值。 - 具有串行或并行共同函数的目标和约束,基于问题
当基于问题的方法中的目标和非线性约束函数共享共同计算时,可以节省时间。 - 求解基于问题的非线性可行性问题
求解可行性问题,该问题仅具有约束。 - 使用基于问题的 Optimize 实时编辑器任务求解可行性问题
使用基于问题的优化实时编辑器任务和多个求解器来求解非线性可行性问题。 - 使用可行性模式获得解
使用fmincon
可行性模式求解具有困难约束的问题。 - 基于问题的优化的输出函数
使用基于问题的方法中的输出函数来记录迭代历史并制作自定义图表。
并行计算
- Optimization Toolbox 中的并行计算是什么?
使用多个处理器进行优化。 - 在 Optimization Toolbox 中使用并行计算
并行执行梯度估计。 - 利用并行计算提高性能
调查加速优化的因素。
仿真或 ODE
- 优化仿真或常微分方程
优化仿真、黑盒目标函数或 ODE 时的特殊注意事项。
算法和其他理论
- 无约束非线性优化算法
在无约束的情况下,在 n 个维度中最小化单目标函数。 - 约束非线性优化算法
在有各种约束的情况下,在 n 个维度中最小化单目标函数。 - fminsearch 算法
fminsearch
最小化函数所采取的步骤。 - 优化选项参考
了解优化选项。 - 局部最优与全局最优
解释为什么求解器可能找不到最小的最小值。 - 非光滑函数的光滑表示
使用辅助变量将一些非光滑函数重新构造为光滑函数。 - 优化参考书目
列出涉及优化求解器算法中所实现概念的已发布资料。