2、,goal,w)极小极大问题Minmax{Fi(x)}X{Fi(x)}s.t.G(x)<=0X=fminimax(‘FG’,x0)变量调用函数描述flinprog,quadprog线性规划的目标函数f*X或二次规划的目标函数X’*H*X+f*X中线性项的系数向量funfminbnd,fminsearch,fminunc,fmincon,lsqcurvefit,lsqnonlin,fgoalattain,fminimax非线性优化的目标函数.fun必须为行命令对象或M文件、嵌入函数、或MEX文件的名称Hquadprog二次规划的目标函数X’*H*X+f*X中二次项的系数矩阵A
3、,blinprog,quadprog,fgoalattain,fmincon,fminimaxA矩阵和b向量分别为线性不等式约束:中的系数矩阵和右端向量Aeq,beqlinprog,quadprog,fgoalattain,fmincon,fminimaxAeq矩阵和beq向量分别为线性等式约束:中的系数矩阵和右端向量vlb,vublinprog,quadprog,fgoalattain,fmincon,fminimax,lsqcurvefit,lsqnonlinX的下限和上限向量:vlb≤X≤vubX0除fminbnd外所有优化函数迭代初始点坐标x1,x2fminbnd函
4、数最小化的区间options所有优化函数优化选项参数结构,定义用于优化函数的参数x=bintprog(f,A,b,Aeq,Beq,x0,options)0-1规划MATLAB工具箱用MATLAB优化工具箱解线性规划minz=cX1、模型:命令:x=linprog(c,A,b)2、模型:命令:x=linprog(c,A,b,Aeq,beq)注意:若没有不等式:存在,则令A=[],b=[].若没有等式约束,则令Aeq=[],beq=[].3、模型:命令:[1]x=linprog(c,A,b,Aeq,beq,VLB,VUB)[2]x=linprog(c,A,b,Aeq,beq,V
5、LB,VUB,X0)注意:[1]若没有等式约束,则令Aeq=[],beq=[].[2]其中X0表示初始点4、命令:[x,fval]=linprog(…)返回最优解x及x处的目标函数值fval.例1max解编写M文件小xxgh1.m如下:c=[-0.4-0.28-0.32-0.72-0.64-0.6];A=[0.010.010.010.030.030.03;0.02000.0500;00.02000.050;000.03000.08];b=[850;700;100;900];Aeq=[];beq=[];vlb=[0;0;0;0;0;0];vub=[];[x,fval]=lin
6、prog(c,A,b,Aeq,beq,vlb,vub)MATLAB工具箱例2解:编写M文件xxgh2.m如下:c=[634];A=[010];b=[50];Aeq=[111];beq=[120];vlb=[30,0,20];vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub例3(任务分配问题)某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工
7、工件的要求,又使加工费用最低?解设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3,在乙车床上加工工件1、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:编写M文件xxgh3.m如下:f=[1391011128];MATLAB工具箱A=[0.41.110000000.51.21.3];b=[800;900];Aeq=[100100010010001001];beq=[400600500];vlb=zeros(6,1);vub=[];[x,fval]=linprog(f,A,b,Aeq,beq,v