(完整版)第三讲Matlab优化工具_第1页
(完整版)第三讲Matlab优化工具_第2页
(完整版)第三讲Matlab优化工具_第3页
(完整版)第三讲Matlab优化工具_第4页
(完整版)第三讲Matlab优化工具_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三讲Matlab优化工具一、简介在建模过程中,许多问题都可归结为“最优化(optimization)”问题,如最大利润、最小成本、最短路径等,最优化问题也称数学规划。要描述一个最优化问题,应明确三个基本要素:决策变量(decisionvariables):它们是决策者所控制的变量,它们取什么值需要决策者来决策,最优化问题的求解就是找出决策变量的最优取值。约束条件(constraints):它们是决策变量在现实世界中所受到的限制,或者说决策变量在这些限制范围之内取值才有实际意义。目标函数(objectivefunction):它代表决策者希望对其进行优化的那个指标,目标函数是决策变量的函数。最优化问题的分类,按决策变量是否是时间的函数分为动态优化和静态优化。按目标函数与约束条件是否是决策变量的线性函数分为线性规划和非线性规划,按决策变量是否为整数分为整数规划和非整数规划,此外还有0-1规划、二次规划、多目标优化、最小最大优化问题等。可行解(feasiblesolution):满足全部约束条件的决策向量。可行域:全部可行解构成的集合。最优解:使目标函数达到最优值(最大或最小值,并且有界)的可行解。无界解:若求极大化则目标函数在可行域中无上界,若求极小化

则目标函数在可行域中无下界。二、线性规划(Linearprogramming)Matlab中,线性规划问题的标准形式为mincTxAx<bs.t<Ax=beqeqlb<x<ub其中c=(c,c,Lc)t,x=(x,x,Lx)t12n12n思考:最大值问题maxcTx和不等式约束Ax>b怎样转化为上述标准形式?(加负号;两边同乘-1)Matlab中解上述线性规划问题的指令:x=linprog(c,A,b,Aeq,beq,lb,ub)或[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)说明:当上述指令中某个输入参数缺省时应在相应位置填上空矩阵[],若从某项输入参数开始往后各项参数都缺省,则可以将其全部

省略而不用补上[]。例如线性规划问题mincTx,s.t.Ax<b,可以表示

为x=linprog(c,A,b);而问题mincTx,s.t;Ax<b则必须表示为Ilb<x<ubx=linprog(c,A,b,[],[],lb,ub)例:解下列线性规划问题minz=-5x-4x-6x123x-xminz=-5x-4x-6x123x-x+x<20

1231、3x+2x+4x<42st\1233x+2x<3012

Ix>0,i=1,2,3i2、12—2x+x+x=02342x+3x<1612s.t<3x+4x<24120<x<53x>0,x>0,x>0124解:1、>>c=[-5-4-6];A=[1-11;324;320];>>b=[204230];lb=zeros(3,1);>>[x,fval]=linprog(c,A,b,[],[],lb)2、>>c=[4001000300-200];c=-c;>>A=[2300;3400];b=[1624];>>Aeq=[0-211];beq=[0];>>lb=zeros(4,1);ub=[infinf5inf]';>>[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)三、非线性规划(Nonlinearprogramming)当目标函数、约束条件中至少有一个表达式是非线性函数时称为非线性规划,一般形式:minf(x)Ax<b,Ax=b线性约束eqeqs.t<c(x)<0,ceq(x)=0非线性约束lb<x<ub其中c(x),ceq(x)都是函数向量。Matlab中求解非线性规划的指令:x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)调用格式与linprog函数的调用格式相同。其中x0是最优值x的初始值(估计值),fun和nonIcon是目标函数和非线性约束函数文件的函数句柄。例:求解非线性规划问题1minf(x)=-xxx的汁/古1、123取初值x=[10,10,10]s.t0<x+2x+2x<720123>>obj=inline('-x(1)*x(2)*x(3)','x')>>x0=[101010];A=[-1-2-2;122];b=[072];>>[x,fval]=fmincon(obj,x0,A,b)minz=x2+x2122、fx+x二4s.t彳12I(x-4)2+x2<212先建立目标函数文件[obj1・m]和非线性约束条件函数文件[nonlcon1.m]然后在命令窗口输入:>>Aeq=[11];beq=4;x0=[11];>>[xfval]=fmincon(@obj1,x0,[],[],Aeq,beq,[],[],@nonlcon1);四、整数线性规划(IntegerLinearprogramming)目标函数和约束条件都是线性函数,且决策变量都取整数值的数学规划,称为整数线性规划,简记为ILP,解整数线性规划问题的主要方法是分支定界法。Matlab中没有现成的解整数规划的库函数,可以参考外编程序[intprog・m]。基本语法为x=intprog(c,A,b,Aeq,beq,lb,ub,x0,id,options)其用法与相关参数说明同linprog.m,该程序不仅可以解纯整数规划,还可以解混合规划问题(即只有部分变量取整数的情况),输入参数id是标记整数变量索引号的列向量,1表示整数,0表示实数,默认情况是全1向量即纯整数规划。例:求解下列整数规划问题

maXf=X1+X2-4X3x+x+2x<9123x+x-x<2s.t.s.t.v—x+x+x<4123x>0,j=1,2,3jx,x,x取整数I123>>c=-1*[11-4];A=[112;11-1;-111];b=[924];lb=[000];>>[x,fval]=intprog(c,A,b,[],[],lb)五、0-1型整数线性规划(Binaryintegerprogramming)作为整数线性规划的一种特殊情况,0-1型整数线性规划要求决策变量的值只取0或者1。Matlab中解0-1规划问题的函数是bintprog,其用法与linprog相似。x=bintprog(c,A,b,Aeq,beq)例:求解下列0-1型整数线性规划maXf=—3x1+2x2—5x3x+2x—x<2123x+4x+x<4s.t.s.t.vx+x<3124x+x<623x,x,x为0或1I123>>c=-1*[-32-5];>>A=[12-1;141;110;041];b=[2436];>>[x,fval]=bintprog(c,A,b)六、二次规划问题(Quadraticprogramming)非线性规划问题的一种特殊情况,二次规划要求目标函数是决策变量的二次函数,而约束条件是线性的。其一般形式为:min2min2xtHx+ftxAx<bs.t<Aeqx=beqlb<x<ubMatlab中解二次规划问题的语法为x=quadprog(H,f,A,b,Aeq,beq,lb,ub)其用法同linprog函数。例:求解下列二次规划问题minz=x2一2xx+2x2一2x-6x112212x+x<212st<-x+2x<212x>0,x>012>>H=[2-2;-24];f=[-2-6];>>A=[11;-12];b=[22];lb=[00];>>[x,fval]=quadprog(H,f,A,b,[],[],lb)七、无约束优化问题(Unconstrainednonlinearprogramming)类似于高等数学中的极值问题,即求函数的极小值或极大值。Matlab中与此有关的主要是两个函数:fminbnd和fminsearch。[x,fmin]=fminbnd(fun,a,b)求一元函数fun在[a,b]区间上的局部极小值点及极小值。[x,fmin]=fminsearch(fun,x0)求多元函数fun在初值x0附近的局部极小值点及极小值。这里x,x0均为向量。例1、求函数y=2e-xsinx在[0,5]上的最大值和最小值。>>[xmin,fmin]=fminbnd('2*exp(-x)*sin(x)',0,5)>>[xmax,fmax]=fminbnd('-2*exp(-x)*sin(x)',0,5)%fmax=-fmax例2、求函数f(x,y)二(4x2+2y2+4xy+2y+1)ex在点(-1,1)附近的极小值。>>f=inline('(4*x(1)A2+2*x(2)A2+4*x(1)*x(2)+2*x(2)+1)*exp(x(1))')>>x0=[-1,1];>>[xmin,fmin]=fminsearch(f,x0)注意:1、多元函数要写成向量函数的形式。2、上面的函数找到的都是局部最优解,不一定是全局最优,如果要求全局最优解,在精度要求不是很高的情况下可以尝试使用min和max函数。其它还有多目标优化问题、最小最大值问题等,可参考相关资料。上机练习1、求解下列数学规划问题:⑹minf⑹minf(x)=—xx—2x—6x1212(1)minf=一3x+4x-2x+5x12344x—x+2x—x=—2TOC\o"1-5"\h\z1234x+x+3x—x<14S・t<1234—2x+3x—x+2xn21234x,x,x>0,x无约束1234(⑶minf(x)=xxx123—x+2x+2x>0123x+2x+2x<72s.t<12310<x<202x—x=1012⑸)minf=4x+3x+2xTOC\o"1-5"\h\z1232x—5x+3x<41234x+x+3x>3s..<123x+x>123x,x,x为0或1123

(2)minf=5x+4x+8x123x+2x+x=6123—2x+x>—4<125x+3x<1512x>0,j=1,2,3j⑷maxf=3x—x123x—2x<3125x+4x>10s.t<1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论