主要内容

解决者

确定问题的默认和有效解决方案

描述

例子

autosolver=解决(概率的默认求解器概率

例子

autosolvervalidsolvers解决]= (概率的有效求解器的列表概率

例子

全部折叠

创建一个以Rosenbrock函数为目标的优化问题求解一个约束非线性问题,基于问题).

x = optimvar (“x”下界= 3,UpperBound = 3);y = optimvar (“y”下界= 0,UpperBound = 9);Obj = 100*(y - x²)²+ (1 - x)²;概率= optimproblem(客观= obj);

找到问题的默认和有效解决方案。

解决[autosolver, validsolvers] =(概率)
autosolver = " lsqnonlin "
validsolvers =1 x10字符串第1至5列"lsqnonlin" "lsqcurvefit" "fmincon" "ga" "patternsearch"第6至9列"surrogateopt" "particleswarm" "simulannealbnd" "gamultiobj"

使用默认求解器解决问题。

x0。x = -2.1;x0。y = 2.2;[溶胶,fval] =解决(x0概率)
使用lsqnonlin解决问题。局部最小值。Lsqnonlin停止了,因为相对于其初始值的平方和的最终变化小于函数公差的值。
索尔=结构体字段:X: 1.000 y: 1.000
fval = 4.9503 e-16

fmincon而不是默认值lsqnonlin

[溶胶,fval] =解决(概率,x0,解算器=“fmincon”
使用fmincon解决问题。找到了满足约束条件的局部极小值。由于目标函数在可行方向上不减少,优化完成,在最优性公差的值内,约束满足在约束公差的值内。
索尔=结构体字段:X: 1.000 y: 1.000
fval = 1.9355 e-13

输入参数

全部折叠

优化问题或方程问题,指定为OptimizationProblem对象或一个EquationProblem对象。创建一个优化问题,使用optimproblem;用。创建一个方程问题eqnproblem

警告

基于问题的方法不支持目标函数、非线性等式或非线性不等式中的复值。如果函数计算具有复杂值,即使是作为中间值,最终结果也可能是不正确的。

例子:概率= optimproblem;概率。目标= obj;prob.Constraints。cons1 = cons1;

例子:概率= eqnproblem;概率。公式=方程式;

输出参数

全部折叠

默认的能手概率,作为字符串返回。使用默认的求解器解决prob2struct调用这些函数时不传递解算器名称-值参数。

有效解决概率,作为字符串向量返回。你可以使用任何有效的求解器概率当您指定解算器的调用中的名称-值参数解决prob2struct

有效求解器的列表取决于您的工具箱许可证。例如,如果你有一个全局优化工具箱许可证,有效的求解者列表包括遗传算法,遗传算法求解器。

版本历史

介绍了R2022b

Baidu
map