怎么解读这个非线性优化的结果。

下列非线性优化中(其中objfun和confun1分别为目标函数),
问题一:结果output中algorithm: 'medium-scale: SQP, Quasi-Newton, line-search',其中的拟牛顿法是BFGS还是DFP?
问题二:结果exitflag =0的意思是最大迭代次数不够吗,有没有方法增加迭代次数?
谢谢!
命令:
x0 = [-0.657,0.0064,0]; % Make a starting guess at the solution
options = optimset('Algorithm','active-set');
[x,fval,exitflag,output,lambda,grad,hession]=fmincon(@objfun,x0,[],[],[],[],[],[],@confun1,options)
计算结果如下:
Solver stopped prematurely.
fmincon stopped because it exceeded the function evaluation limit,
options.MaxFunEvals = 300 (the default value).
x =
-0.8194 0.0108 -0.0122
fval =
0.2623
exitflag =
0
output =
iterations: 18
funcCount: 303
lssteplength: 4.8828e-04
stepsize: 0.0083
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 100
constrviolation: 3.5892e+13
message: [1x142 char]
lambda =
lower: [3x1 double]
upper: [3x1 double]
eqlin: [0x1 double]
eqnonlin: [2x1 double]
ineqlin: [0x1 double]
ineqnonlin: [3x1 double]
grad =
1
100
0
hession =
0.0072 0.0267 -0.0747
0.0267 0.9992 0.0369
-0.0747 0.0369 13.5853

 采纳的回答

gacot
gacot 2022-11-24

0 个投票

问题1: Active-Set Optimization
fmincon uses a sequential quadratic programming (SQP) method. In thismethod, the function solves a quadraticprogramming (QP) subproblem at each iteration. fmincon updatesan estimate of the Hessian of the Lagrangian at each iteration usingthe BFGS formula
问题2:
MaxFunEvals 默认值是100*变量个数,所以你的是300. 你可以通过 optimset 来设置更大的数值,比如
options = optimset('Algorithm','active-set','MaxFunEvals',1000);
如果运行后又提示其他参数(TolX,MaxIter,TolFun)太小,继续用optimset 设置

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 求解器输出和迭代输出 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!