Matlab 优化函数fmincon 1. fmincon 是一种局部优化函数,利用目标函数以及约束函数的一阶导数信息,从给的初始点开始,在满足约束的条件下,沿着目标函数下降的方向迭代,最后收敛到局部最优解。约束函数不同,对应的结果当然会不一样,因为一般的多维优化问题总存在很多局部最优解,而fmincon 只能找到离给的初始点最近的极小值,在你的问题中,可能在[-5,-6]区间上存在一个极小值,当然也可能是[-6,-7],因此你优化的结果会不同。ex itflag 是优化结果的标志,ex itflag=1 说明优化收敛到局部最优解;ex itflag=4、5 说明你采用的是有效集算法(activ e-set ),也得到相应的结果;如果ex itflag=0 那说明你的优化失败了。 2. fmincon 函数,用与解方程和拟合。fmincon 可用于局部优化,全局优化。功能强大,若灵活运用能解决很多问题。 局部优化的语句为:X = FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON) 全局优化的语句为: opts1 = optimset('Algorithm','interior-point'); opts2 = optimset('Algorithm','sqp'); opts3 = optimset('Algorithm','tru st-region-reflectiv e'); opts4 = optimset('Algorithm','activ e-set'); createOptimProblem('fmincon','objectiv e', FUN, 'x 0', X0, ... 'Aineq', A, 'bineq', b, 'Aeq', Aeq, 'beq', beq, 'lb', LB, ... 'u b', UB, 'nonlcon', NONLCON, 'options',opts1) gs = GlobalSearch; [x 1,fv al1] = ru n(gs,problem1) 3. X0=[2 2]; A=[1 0.1;-0.1 -1]; B=[4;-2]; Aeq=[]; Beq=[]; LB=[]; UB=[]; NONLCON=[]; options = optimset('Algorithm','activ e-set'); [X,FVAL,EXITFLAG,OUTPUT]=fmincon(@(x )x (1)^2+x (2)^2,X0,A,B,Aeq,Beq,LB,UB,NONLCON,options) 结果: X = 0.1980 1.9802 FVAL = 3.9604 EXITFLAG = 1 OUTPUT = iterations: 3 funcCount: 12 lssteplength: 1 stepsize: 0.0028 algorithm: 'medium-scale: SQP, Quasi-Newton, line-search' firstorderopt: 1.9757e-008 constrviolation: 0 message: [1x144 char] Matlab 的fmincon 函数(非线性等式/不等式约束优化问题求解) fmincon 函数优化问题 x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) fmincon 是求解目标fun 最小值的内部函数 x0 是初值 A b 线性不等式约束 Ae...