在内部,解决
函数通过调用求解器来解决优化问题。有关问题的默认求解器和支持的求解器,请参阅万博1manbetx“规划求解”
论点。
之前解决
可以调用求解器,问题必须转换为求解器形式,由解决
或其他相关的函数或对象。例如,这种转换需要具有矩阵表示而不是优化变量表达式的线性约束。
算法的第一步发生在将优化表达式放入问题时。一个OptimizationProblem
对象具有在其表达式中使用的变量的内部列表。每个变量在表达式中都有一个线性索引和一个大小。因此,问题变量具有隐含的矩阵形式。的prob2struct
函数执行从问题形式到求解器形式的转换。例如,请参见将问题转化为结构.
对于非线性优化问题,解决
使用自动分化计算目标函数和非线性约束函数的梯度。这些导数适用于目标函数和约束函数由万博1manbetx支持优化变量和表达式的操作不要使用fcn2optimexpr
函数。当自动微分不适用时,求解器使用有限差分估计导数。自动区分的详细信息请参见自动分化背景.
对于默认值和允许的解算器解决
调用,视问题的客观和约束而定,见“规划求解”
.属性可以覆盖默认值“规划求解”
调用时的名称-值对参数解决
.
对于这个算法intlinprog
用来解决MILP问题intlinprog算法.对于那些linprog
用来解决线性规划问题,见线性规划算法.对于那些quadprog
用来解决二次规划问题,见二次规划算法.关于线性或非线性最小二乘求解算法,请参阅最小二乘(模型拟合)算法.有关非线性求解算法,请参见无约束非线性优化算法和约束非线性优化算法.
对于非线性方程的求解,解决
在内部表示每个方程为左右两边的差。然后解决
试图最小化方程各部分的平方和。解非线性方程组的算法见方程求解算法.当问题也有界时,解决
调用lsqnonlin
使方程各分量的平方和最小。看到最小二乘(模型拟合)算法.
请注意
如果你的目标函数是平方和,你想解决
要认识到这一点,就把它写成两者之一规范(expr) ^ 2
或总和(expr。^ 2)
,而不是expr‘* expr
或任何其他形式。内部解析器仅在表示为范数的平方或显式的平方和时才能识别平方和。有关详细信息,请参见编写基于问题的最小二乘的目标函数.例如,请参见基于问题的非负线性最小二乘.
linprog
|intlinprog
|prob2struct