基于MATLAB优化工具箱优化计算_第1页
基于MATLAB优化工具箱优化计算_第2页
基于MATLAB优化工具箱优化计算_第3页
基于MATLAB优化工具箱优化计算_第4页
基于MATLAB优化工具箱优化计算_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

第9章基于MATLAB优化工具箱的优化计算,9.1MATLAB优化工具箱,一、常用的优化功能函数求解线性规划问题的主要函数是linprog。求解二次规划问题的主要函数是quadprog。求解无约束非线性规划问题的主要函数是fminbnd、fminunc和fminsearch。求解约束非线性规划问题的主要函数是fgoalattain和fminimax。,1、线性规划数学模型,数学模型形式:minfTXs.t.AXb(线性不等式约束条件)AeqX=beq(线性等式约束条件)lbXub(边界约束条件)常用的简化模型:minfTXs.t.AXb(线性不等式约束条件),数学模型形式:s.t.AXb(线性不等式约束条件)AeqX=beq(线性等式约束条件)lbXub(边界约束条件),2、二次规划问题数学模型,二次函数,目标函数,1.数学模型形式:minf(X)s.t.AXb(线性不等式约束)AeqX=beq(线性等式约束)C(X)0(非线性不等式约束条件)Ceq(X)=0(非线性等式约束)LbXUb(边界约束条件),约束条件,3、无约束非线性规划数学模型形式:minf(X),例1:求解二维无约束优化问题f(x)=(x14+3x12+x22-2x1-2x2-2x12x2+6)的极小值。,例2:求解二维无约束优化问题min,例13求在0x8中的最小值与最大值,数学模型形式:minf(X)(函数为f(x)非线性函数)s.t.AXb(线性不等式约束)AeqX=beq(线性等式约束)C(X)0(非线性不等式约束条件)Ceq(X)=0(非线性等式约束)LbXUb(边界约束条件),约束条件,4.约束线性规划,3.1matlab优化函数,二、一般步骤,建立目标函数文件,针对具体工程问题建立优化设计的数学模型,不等式约束条件表示成g(X)0的形式,建立调用优化工具函数的命令文件,文件内容:必须的输入参数、描述标函数表达式等存储:以自定义的目标函数文件名存储在文件夹中,建立约束函数文件,文件内容:必须的输入参数、约束函数表达式等存储:以自定义的约束函数文件名存储在文件夹中,将优化设计的命令文件复制到MATLAB命令窗口中进行运算求解。,分析优化设计的数学模型,选择适用的优化工具函数文件内容:初始点,设计变量的边界约束条件,运算结果输出等内容存储:以自定义的命令文件名存储于文件夹中。,小例:求解二维无约束优化问题min,解:首先编制目标函数functionf=li3mubiao_fminunc(x)a=64516;hd=pi/180;f=a/x(1)-x(1)/tan(x(2)*hd)+2*x(1)/sin(x(2)*hd);注意:保存时,要使保存的文件名与函数名一致再编制主函数x0=25;45;x,fminunc=fminunc(li3mubiao_fminunc,x0)保存后运行得到优化结果:x=192.995860.0005fminunc=668.5656,9.2线性规划问题,一、线性规划数学模型,1.主要应用对象:(1)在有限的资源条件下完成最多的任务;(2)如何统筹任务以使用最少资源。2.数学模型形式:minfTXs.t.AXb(线性不等式约束条件)AeqX=beq(线性等式约束条件)lbXub(边界约束条件),约束条件,决策变量,目标函数,非负数,线性,3.MATLAB中函数调用格式xopt,fopt=linprog(f,A,b,Aeq,beq,lb,ub,x0,options),最优解,最优值,目标函数各维变量系数向量,初始点,可选项,二、例题,生产规划问题:某厂利用a,b,c三种原料生产A,B,C三种产品,已知生产每种产品在消耗原料方面的各项指标和单位产品的利润,以及可利用的数量,试制定适当的生产规划使得该工厂的总利润最大。,x1,x2,x3,2x1,4x2,3x3,3x1,4x2,2x3,2x1,x1,x2,3x2,2x3,2x3,+,+,+,+,+,+,+,+,3.确定约束条件:,X=x1,x2,x3T,4.编制线性规划计算的M文件f=2,4,3A=3,4,2;2,1,2;1,3,2;b=600;400;800;Aeq=;beq=;lb=zeros(3,1);xopt,fopt=linprog(f,A,b,Aeq,beq,lb),二、例题,解:1.确定决策变量:,max2x1+4x2+3x3,3x1+4x2+2x3600,2x1+x2+2x3400,x1+3x2+2x3800,设生产A、B、C三种产品的数量分别是x1,x2,x3,决策变量:,根据三种单位产品的利润情况,按照实现总的利润最大化,建立关于决策变量的函数:,2.建立目标函数:,根据三种资料数量限制,建立三个线性不等式约束条件,5.M文件运行结果:Optimizationterminatedsuccessfully.xopt=0.000066.6667166.6667fopt=-766.6667,x1,x2,x30,xopt,fopt=linprog(f,A,b,Aeq,beq,lb,ub,x0,options),-,-,-,Linprog函数使用的拓展,求解线性规划,线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描述的LP问题求解:,解:编写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=linprog(c,A,b,Aeq,beq,vlb,vub),解:编写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),9.3二次规划问题,1.研究意义:(1)最简单的非线性规划问题;(2)求解方法比较成熟。2.数学模型形式:s.t.AXb(线性不等式约束条件)AeqX=beq(线性等式约束条件)lbXub(边界约束条件),一、二次规划问题数学模型,约束条件,决策变量,目标函数,二次函数,3.MATLAB中函数调用格式xopt,fopt=quadprog(H,C,A,b,Aeq,beq,lb,ub,x0,options),最优解,最优值,目标函数的海赛矩阵,初始点,可选项,目标函数的一次项系数向量,结果xopt=2.571,1.143,0.000fopt=-16.4898,二、例题,求解约束优化问题,s.t.,解:(1)将目标函数写成二次函数的形式,,其中:,xopt,fopt=quadprog(H,C,A,b,Aeq,beq,lb,ub,x0,options),(2)编写求解二次规划的M文件:H=4,-2,0;-2,4,0;0,0,2;C=0,0,1;A=1,3,2;b=6;,Aeq=2,-1,1;beq=4;lb=zeros(3,1);,xopt,fopt=quadprig(H,C,A,b,Aeq,beq,lb),例2minf(x1,x2)=-2x1-6x2+x12-2x1*x2+2*x22s.t.x1+x22-x1+2x22x10,x201、写成标准形式:,s.t,2、输入命令:H=2-2;-24;c=-2;-6;A=11;-12;b=2;2;Aeq=;beq=;VLB=0;0;VUB=;x,z=quadprog(H,c,A,b,Aeq,beq,VLB,VUB)3、运算结果为:x=0.66671.3333z=-8.2222,程序:编写M文件mainG.m如下:H=1-1;-12;f=-2;-6;A=11;-12;b=2;2;Aeq=;beq=;lb=0;0;ub=;X,fval,exitflag=quadprog(H,f,A,b,Aeq,beq,lb,ub)结果:X=0.66671.3333fval=-8.2222exitflag=1,程序:编写M文件mainG.m如下:H=2-2;-24;f=-4;-12;A=11;-12;21;b=2;2;3;lb=zeros(2,1);x,fval,exitflag=quadprog(H,f,A,b,lb)结果:x=0.66671.3333fval=-16.4444exitflag=1,9.4无约束非线性规划问题,无约束非线性规划问题的MATLAB函数有,fminbnd,要求目标函数为连续函数,只求解单变量问题,fminunc,可求解单变量和多变量问题,适用于简单优化问题,可求解复杂优化问题,fminsearch,三个函数:fminbnd,fminunc,fminsearch.三个都是解无约束非线性规划问题三者有相同点与不同点:(1)Fminbnd是解单变量无约束非线性规划问题Fminunc和fminsearch可用于求解单变量或多变量的无约束非线性规划问题(2)fminbnd和fminunc要求目标函数为连续函数(3)fminbnd和fminsearch的优化算法比较简单,适用于比较简单无约束非线性规划问题,函数fminunc的优化算法较复杂,适用于求解比较复杂的优化问题(4)这三个函数只能输出局部最优解,1.使用格式:xopt,fopt=fminbnd(fun,x1,x2,options),9.4.1函数fminbnd,设置优化选项参数,迭代搜索区间,目标函数,返回目标函数的最优值,返回目标函数的最优解,2.例题:求解一维无约束优化问题f(x)=(x3+cosx+xlogx/ex)在区间0,1中的极小值。解:(1)编制求解优化问题的M文件。%求解一维优化问题fun=inline(x3+cos(x)+x*log(x)/exp(x),x);%目标函数x1=0;x2=1;%搜索区间xopt,fopt=fminbnd(fun,x1,x2)(2)编制一维函数图形的M文件。ezplot(fun,0,10)title(x3+cosx+xlogx)/ex)gridon,9.4.1函数fminbnd,运行结果:xopt=0.5223fopt=0.3974,3.2简单实例例1、函数fminbnd实例:求解一维无约束优化问题f(x)=(x+1)(x-2)2在区间0,1中的极小值。解:编制求解的M文件fun=inline(x+1)*(x-2)2,x)x1=0;x2=1;xopt,fopt=fminbnd(fun,x1,x2)优化的结果:xopt=0.9999fopt=2.0002,1.使用格式:xopt,fopt=fminsearch(fun,x0,options),9.4.2函数fminsearch,设置优化选项参数,初始点,目标函数,返回目标函数的最优值,返回目标函数的最优解,2.例题:求解二维无约束优化问题f(x)=(x14+3x12+x22-2x1-2x2-2x12x2+6)的极小值。解:(1)编制求解二维无约束优化问题的M文件。%求解二维优化问题fun=x(1)4+3*x(1)2+x(2)2-2*x(1)-2*x(2)-2*x(1)2*x(2)+6;x0=0,0;%初始点xopt,fopt=fminsearch(fun,x0)(2)讨论。将目标函数写成函数文件的形式:%目标函数文件search.mfunctionf=search(x)f=x(1)4+3*x(1)2+x(2)2-2*x(1)-2*x(2)-2*x(1)2*x(2)+6;则命令文件变为:%命令文件名称为eg9_4.mx0=0,0;%初始点xopt,fopt=fminsearch(search,x0),9.4.2函数fminsearch,运行结果:xopt=1.00002.0000fopt=4.0000,fun=x(1)4+3*x(1)2+x(2)2-2*x(1)-2*x(2)-2*x(1)2*x(2)+6x0=0,0;xopt,fopt=fminsearch(fun,x0)优化结果xopt=1.00002.0000fopt=4.0000,讨论:目标文件的表达方式:f(x)=(x14+3x12+x22-2x1-2x2-2x12x2+6),(1)字符串表示fun=x(1)4+3*x(1)2+x(2)2-2*x(2)-2*x(1)2*x(2)+6调用:xopt,fopt=fminsearch(fun,x0);(2)内联函数表示fun=inline(x(1)4+3*x(1)2+x(2)2-2*x(2)-2*x(1)2*x(2)+6,x)调用:xopt,fopt=fminsearch(fun,x0);(3)函数句柄表示fun=(x)x(1)4+3*x(1)2+x(2)2-2*x(2)-2*x(1)2*x(2)+6调用:xopt,fopt=fminsearch(fun,x0);(4)M文件表示(目标函数比较复杂时需要用M文件进行表示)functionf=fun(x)f=x(1)4+3*x(1)2+x(2)2-2*x(2)-2*x(1)2*x(2)+6调用:xopt,fopt=fminsearch(fun,x0);或xopt,fopt=fminsearch(fun,x0);,1.使用格式:x,fval,exitflag,output,grad,hessian=fminunc(fun,x0,options,P1,P2),9.4.3函数fminunc,设置优化选项参数,初始点,调用目标函数的函数文件名,目标函数在最优解的海色矩阵,返回目标函数在最优解的梯度,优化算法信息的一个数据结构,返回算法的终止标志,返回目标函数的最优值,返回目标函数的最优解,附加参数,matlab解多元函数无约束优化问题,fminsearch是用单纯形法寻优.fminunc的算法见以下几点说明:,使用fminunc和fminsearch可能会得到局部最优解.,3fminunc为中型优化算法的步长一维搜索提供了两种算法,由options中参数LineSearchType控制:LineSearchType=quadcubic(缺省值),混合的二次和三次多项式插值;LineSearchType=cubicpoly,三次多项式插值,说明:,1fminunc为无约束优化提供了大型优化和中型优化算法。由options中的参数LargeScale控制:LargeScale=on(默认值),使用大型算法LargeScale=off(默认值),使用中型算法,2fminunc为中型优化算法的搜索方向提供了3种算法,由options中的参数HessUpdate控制:HessUpdate=bfgs(默认值),拟牛顿法的BFGS公式;HessUpdate=dfp,拟牛顿法的DFP公式;HessUpdate=steepdesc,最速下降法,例1minf(x)=(4x12+2x22+4x1x2+2x2+1)*ex1,1、编写M-文件fun.m:functionf=fun(x)f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);2、输入M文件wliti.m如下:x0=-1,1;x=fminunc(fun,x0);y=fun(x),3、运行结果:x=0.5000-1.0000y=1.3029e-10,用fminsearch函数求解,输入命令:f=100*(x(2)-x(1)2)2+(1-x(1)2;x,fval,exitflag,output=fminsearch(f,-1.22),运行结果:x=1.00001.0000fval=1.9151e-010exitflag=1output=iterations:108funcCount:202algorithm:Nelder-Meadsimplexdirectsearch,4.用fminunc函数,(1)建立M-文件fun2.mfunctionf=fun2(x)f=100*(x(2)-x(1)2)2+(1-x(1)2,(2)简单计算,x,fval,exitflag,output=fminunc(fun2,-1.22),(3)比较各种算法主程序compare.m,基本假设,1价格与销量成线性关系,2成本与产量成负指数关系,模型建立,若根据大量的统计数据,求出系数b1=100,a11=1,a12=0.1,b2=280,a21=0.2,a22=2,r1=30,1=0.015,c1=20,r2=100,2=0.02,c2=30,则问题转化为无约束优化问题:求甲,乙两个牌号的产量x1,x2,使总利润z最大.,为简化模型,先忽略成本,并令a12=0,a21=0,问题转化为求:z1=(b1-a11x1)x1+(b2-a22x2)x2的极值.显然其解为x1=b1/2a11=50,x2=b2/2a22=70,我们把它作为原问题的初始值.,总利润为:z(x1,x2)=(p1-q1)x1+(p2-q2)x2,模型求解,1.建立M-文件fun.m:functionf=fun(x)y1=(100-x(1)-0.1*x(2)-(30*exp(-0.015*x(1)+20)*x(1);y2=(280-0.2*x(1)-2*x(2)-(100*exp(-0.02*x(2)+30)*x(2);f=-y1-y2;,2.输入命令:x0=50,70;x=fminunc(fun,x0),z=fun(x),3.计算结果:x=23.9025,62.4977,z=6.4135e+003即甲的产量为23.9025,乙的产量为62.4977,最大利润为6413.5.,9.5约束非线性规划问题,1.数学模型形式:minf(X)s.t.AXb(线性不等式约束)AeqX=beq(线性等式约束)C(X)0(非线性不等式约束条件)Ceq(X)=0(非线性等式约束)LbXUb(边界约束条件),约束条件,2.使用格式:x,fval,exitflag,output,grad,hessian=fmincon(fun,x0,A,b,Aeq,beq,Lb,Ub,Nlc,options,P1,P2),设置优化选项参数,初始点,调用目标函数的函数文件名,目标函数在最优解的海色矩阵,返回目标函数在最优解的梯度,优化算法信息的一个数据结构,返回算法的终止标志,返回目标函数的最优值,返回目标函数的最优解,附加参数,非线性约束条件的函数名,设计变量的下界和上界,线性等式约束的常数向量,线性等式约束的系数矩阵,线性不等式约束的常数向量,线性不等式约束的系数矩阵,无定义时以空矩阵符号“”代替,说明:fmincon求多变量有约束非线性函数的最小值。该函数常用于有约束非线性优化问题。x=fmincon(fun,x0,A,b)给定初值x0,求解fun函数的最小值点x。fun函数的约束条件为A*x=b,x0可以是标量、向量或矩阵。x=fmincon(fun,x0,A,b,Aeq,beq)最小化fun函数,约束条件为A*x=b和Aeq*x=beq。若没有不等式存在,则设置A=,b=。x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)定义设计变量x的下界lb和上界ub,使得lb=x=ub。若无等式存在,则令Aeq=,beq=。x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)在上面的基础上,在nonlcon参数中提供非线性不等式c(x)或等式ceq(x)。fmincon函数要求c(x)x0=10;10;10;A=-1-2-2;122;b=0;72;x,fval=fmincon(-x(1)*x(2)*x(3),x0,A,b)x=24.000012.000012.0000fval=-3456线性不等式约束条件的值A*x-bans=-720,x=5.00005.00005.0000fval=-125.0000exitflag=1output=iterations:7funcCount:38stepsize:1algorithm:medium-scale:SQP,Quasi-Newton,line-searchfirstorderopt:cgiterations:问题的解为x(1)=x(2)=x(3)=5.0000m,最大体积为125.0000m3。exitflag=1,表示过程成功收敛于解x处。output输出变量显示了收敛过程中的迭代次数、目标函数计算次数、步长、算法等信息。,x=0.65890.8682fval=-6.6131问题的解为x(1)=0.6589,x(2)=0.8682,最小值为-6.6131。,解:约束条件是线性约束。在Matlab中实现:x0=0;A=-1;b=-2;x,fval=fmincon(1/3*(x-1)3,x0,A,b)x=2fval=0.3333,9.6多目标优化问题,9.6.1函数fgoalattain,minvs.t.fi(X)-wivgoalii=1,2,tAXb(线性不等式约束)AeqX=beq(线性等式约束)C(X)0(非线性不等式约束条件)Ceq(X)=0(非线性等式约束)LbXUb(边界约束条件),一、多目标优化问题数学模型,标量变量,各分目标函数,分目标函数的权重,各分目标函数的目标值,二、优化函数使用格式x,fval,exitflag,output,grad,hessian=fgoalattain(fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,Nlc,options,P1,P2),设置优化选项参数,各分目标权重,各分目标期望值,目标函数在最优解的海色矩阵,返回目标函数在最优解的梯度,优化算法信息的一个数据结构,返回算法的终止标志,返回目标函数的最优值,返回目标函数的最优解,附加参数,非线性约束条件的函数名,设计变量的下界和上界,线性等式约束的常数向量,线性等式约束的系数矩阵,线性不等式约束的常数向量,线性不等式约束的系数矩阵,无定义时以空矩阵符号“”代替,9.6.1函数fgoalattain,初始点,目标函数文件名,格式:x=fgoalattain(fun,x0,goal,weight)x=fgoalattain(fun,x0,goal,weight,A,b)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2,.),x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon),说明:fgoalattain求解多目标达到问题。x=fgoalattain(fun,x0,goal,weight)试图通过变化x来使目标函数fun达到goal指定的目标。初值为x0,weight参数指定权重。x=fgoalattain(fun,x0,goal,weight,A,b)求

温馨提示

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

评论

0/150

提交评论