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实例:
func.mclcclearcloseallfun=@(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 ) 这里,func是目标函数,x0是给定的初始值,a、b对应于线性不等式约束,Aeq、beq对应于线性等式约束; vlb、vub对应变量限制; mycon对应非线性不等式和等式约束