matlab的函数fmincon可以用于求出可以求出多元函数的极值,其制约有5种。 1、线性不等式约束; 2、线性等式约束; 3、变量约束; 4、非线性不等式约束5、非线性等式约束。
其形式为x=fmincon(fun,x0,a,b,Aeq,beq,lb,ub,nonlcon ) )
求解问题的标准型为minf(x ) s.t AX=b )线性不等式约束(AeqX=beq )线性等式约束(g ) x )0)非线性不等式约束(CEQ ) x )0)非线性等式约束(lb=X=ub )变量约束)
matalb实例:
fxx.m
clcclearcloseallfun=@(x ) x(1) (2x )2) ) 28; x0=rand (2,1 ); A=[]; b=[]; Aeq=[]; beq=[]; vlb=[ 0,0 ]; vub=[]; 退出标志=1; [x,fval,exitflag]=fmincon(fun,x0,a,b,Aeq,beq,vlb,vub,' mycon ' ) mycon.m
function [g,CEQ]=mycon(x ) g=-x(1)1) ^2x ) 2; CEQ=-x(1)-x (2) ^2;