1、预备知识:M文件简介在MATLAB中,用户可以利用Edtior(编辑器)建立M文件,然后在命令窗口中的“”提示符下键入M文件的主文件名,回车执行.MATLAB的M文件有两类:命令文件和函数文件。将原本要在MATLAB环境下直接输入的语句,放在一个以 .m为后缀的文件中,这一文件就称为命令文件;函数文件由五部分组成:函数定义行、H1行、函数帮助文本、函数体、注释,MATLAB的内部函数都是由函数文件定义的。1.11 优化(最值、数学规划)在数学上,优化问题包括最值问题和数学规划问题等,后者又包括线性规划、整数规划(含0-1规划)、二次规划等.在MATLAB中,求解最值问题的命令主要有:fminb
2、nd(f,x1,x2) 求一元函数f在区间x1,x2上的最小值点x,fval=fminbnd(f,x1,x2) 求一元函数f在区间x1,x2上的最小值点和最小值fminsearch(f,x0) 求多元函数f在点x0附近的最小值点x,fval=fminsearch(f,x0) 求多元函数f在点x0附近的最小值点和最小值例1.11.1 求函数在区间上的最小值点和最小值. x,fval=fminbnd(x2+3*x+2,-5,5)x = -1.5000fval = -0.2500例1.11.2 求函数在点附近的最小值点和最小值. x,fval= fminsearch(x(1)*x(2)+2/x(1)
3、+2/x(2),1 1)x = 1.2599 1.2599fval = 4.7622在MATLAB中,求解数学规划问题的命令主要有:(1)线性规划命令:x,fval=linprog(c,A,b,Aeq,beq,lb,ub)在上述命令中,当某些参数空缺时,可用代替或省略,下同。例1.11.3 求解线性规划问题. c=2;3;6;5; A=1 -1 -2 -4;0 -1 -1 1; b=0;0; Aeq=1 1 1 1; beq=1; lb=0;0;0;0; x,fval=linprog(c,A,b,Aeq,beq,lb,)Optimization terminated.x = 0.5000 0.
4、5000 0.0000 0.0000fval = 2.5000(2)0-1规划命令:x,fval=bintprog(c,A,b,Aeq,beq) 例1.11.4 求解0-1规划问题. c=-1;-1.2;-0.8; A=2.1,2,1.3;0.8,1,0;1,2.5,2;0,2,0; b=5;5;8;8; x,fval=bintprog(c,A,b,)Optimization terminated.x = 1 1 0fval = -2.2000(3)二次规划命令:x,fval=quadprog(H,c,A,b,Aeq,beq,lb,ub)例1.11.5 求解二次规划问题. H=1 -1;-1
5、2; c=-2;-6; A=1 1;-1 2; b=2 2; Aeq=2 1; beq=3; lb=0;0; x,fval=quadprog(H,c,A,b,Aeq,beq,lb,)Warning: Large-scale method does not currently solve this problem formulation,switching to medium-scale method. In quadprog at 242Optimization terminated.x = 1.0000 1.0000fval = -7.5000(4)非线性规划命令:x,fval=fminco
6、n(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)在上述命令中,fun为定义目标函数的M文件的主文件名,x0为初值,nonlcon为定义非线性约束条件的M文件的主文件名.例1.11.6 求解非线性规划问题,初始点为.首先,建立fun.m文件,定义目标函数:function f=fun(x);f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);其次,建立nonlcon.m文件,定义非线性约束条件:function D,Deq=nonlcon(x)D(1)=1.5+x(1)*x(2)-x(1)-x(2);D(2)=-x(1)*x(
7、2)-10;Deq=;最后,输入如下命令并执行: x0=-1;1; Aeq=1 1;beq=0; x,fval=fmincon(fun,x0,Aeq,beq,nonlcon)Warning: Large-scale (trust region) method does not currently solve this type of problem, switching to medium-scale (line search). In fmincon at 274Optimization terminated: first-order optimality measure less than
8、 options. TolFun and maximum constraint violation is less than options. TolCon.Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 1x = -1.2247 1.2247fval = 1.8951显然,利用MATLAB求解数学规划问题(特别是非线性规划)较为不便. 为此,第二章将要介绍功能更为强大、操作更为便捷的LINGO软件.实验91. 求如下函数的最小值和最小值点:(1) ;(2) 2. 求解线性规划问题:(1) (2) 3. 求解0-1规划问题:(1) (2) 4. 求解二次规划问题:5. 求解非线性规划问题:(1) (2)