第4讲无约束优化与非线性规划_第1页
第4讲无约束优化与非线性规划_第2页
第4讲无约束优化与非线性规划_第3页
第4讲无约束优化与非线性规划_第4页
第4讲无约束优化与非线性规划_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

数学建模与数学实验山东工商学院数学学院无约束优化与非线性规划 1标准形式:1.无约束最优化问题及其求解思想求解的思想 ( 以二元函数为例 )53 1连续可微22.用 Matlab解无约束优化问题 其中( 3)、( 4)、( 5)的等式右边可选用( 1)或(2)的等式右边。函数 fminbnd的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解。常用格式如下:( 1) x= fminbnd (fun,x1,x2)( 2) x= fminbnd (fun,x1,x2 , options)( 3) x, fval= fminbnd( .)( 4) x, fval, exitflag= fminbnd( .)( 5) x, fval, exitflag, output= fminbnd( .)min f( x) 3主程序为 wliti1.m:f=2*exp(-x).*sin(x);fplot(f,0,8); %作图语句xmin,ymin=fminbnd (f, 0,8)f1=-2*exp(-x).*sin(x);xmax,ymax=fminbnd (f1, 0,8)4例 2 对边长为 3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?解先编写 M文件 fun0.m如下 :function f=fun0(x)f=-(3-2*x).2*x;主程序为 wliti2.m:x,fval=fminbnd(fun0,0,1.5);xmax=xfmax=-fval运算结果为 : xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为 0.5米时水槽的容积最大 ,最大容积为 2立方米 .5命令格式为 :( 1) x= fminunc( fun,X0 );或 x=fminsearch( fun,X0 )( 2) x= fminunc( fun,X0 , options);或 x=fminsearch( fun,X0 , options)( 3) x, fval= fminunc( .);或 x, fval= fminsearch( .)( 4) x, fval, exitflag= fminunc( .);或 x, fval, exitflag= fminsearch ( .);( 5) x, fval, exitflag, output= fminunc( .);或 x, fval, exitflag, output= fminsearch( .)2.2、多元函数无约束优化问题标准型为 : min F(X) 其中 X为 n维向量说明:fun 是待优化的函数 , X0 是初始值。6说明 :fminsearch是用单纯形法寻优 . fminunc的算法见以下几点说明:1 fminunc为无约束优化提供了大型优化和中型优化算法。由 options中的参数 LargeScale控制: LargeScale=on( 默认值 ),使用大型算法 LargeScale=off( 默认值 ),使用中型算法2 fminunc为中型优化算法的搜索方向提供了 4种算法,由 options中的参数 HessUpdate控制:HessUpdate= bfgs ( 默认值),拟牛顿法的 BFGS公式; HessUpdate= dfp , 拟牛顿法的 DFP公式; HessUpdate= steepdesc , 最速下降法3 fminunc为中型优化算法的步长一维搜索提供了两种算法,由 options中参数 LineSearchType控制 LineSearchType= quadcubic( 缺省值 ),混合的二次和 三次多项式插值;LineSearchType= cubicpoly , 三次多项式插 值 7使用 fminunc和 fminsearch可能会得到局部最优解 .5output: Iterations:迭代次数;Algorithm:所采用的算法;FuncCount:评价的次数。6options中常用的参数 Display:off 不显示; iter是迭代信息; final 显示最终结果。默认为 final。 Options可以通过 optimset来创建和修改。4exitflag: 0表示目标函数收敛于解; 0表示已达到函数评价或迭代的最大次数; 0表示目标函数不收敛。另外:8例 3 min f(x)=(4x12+2x22+4x1x2+2x2+1)*exp(x1)1)、编写 M-文件 fun1.m:function f = fun1 (x)f = exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);2)、输入 M文件 wliti3.m如下 :x0 = -1, 1;x=fminunc(fun1,x 0);y=fun1(x)3)、运行结果 :x= 0.5000 -1.0000y = 1.3029e-1091) .用 fminsearch函数求解输入命令 :f=100*(x(2)-x(1)2)2+(1-x(1)2;x,fval,exitflag,output=fminsearch(f, -1.2 2)运行结果 :x =1.0000 1.0000 fval =1.9151e-010102) . 用 fminunc 函数(1)建立 M-文件 fun2.m function f=fun2(x)f=100*(x(2)-x(1)2)2+(1-x(1)2(2)主程序 wliti44.mx,fval,exitflag,output=fminunc(fun2, -1.2 2)11Rosenbrock函数不同算法的计算结果可以看出,最速下降法的结果最差 .因为最速下降法特别不适合于从一狭长通道到达最优解的情况 .12定义 如果目标函数或约束条件中至少有一个是非线性函数时的最优化问题就叫做 非线性规划问题 3. 非线性规划的基本概念一般形式 : ( 1)其中 , 是定义在 En 上的实值函数,简记 :其它情况 : 求目标函数的最大值或约束条件为小于等于零的情况,都可通过取其相反数化为上述一般形式13定义 1 把满足问题( 1)中条件的解 称为 可行解 (或可行点 ), 所有可行点的集合称为 可行集 (或 可行域 ) 记为 D 即问题 (1)可简记为 定义 2 对于问题 (1),设 ,若存在 ,使得对一切 ,且 ,都有 ,则称 X*是 f(X)在 D上的局部极小值点 ( 局部最优解 ) 特别地当 时, ,则称 X*是 f(X)在 D上的 严格局部极小值点 ( 严格局部最优解 ) 定义 3 对于问题 (1),设 ,对任意的 ,都有 则称 X*是 f(X)在 D上的 全局极小值点 ( 全局最优解 ) 特别地当时,若 ,则称 X*是 f(X)在 D上的 严格全局极小值点( 严格全局最优解 ) 14用 MATLAB软件求解 ,其 输入格式 如下 :1. x=quadprog(H,C,A,b);2. x=quadprog(H,C,A,b,Aeq,beq);3. x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB);4. x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0);5. x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0,options);6. x,fval=quaprog(.);7. x,fval,exitflag=quaprog(.);8. x,fval,exitflag,output=quaprog(.);4、二次规划15例 5 min f(x1,x2)=-2x1-6x2+x12-2x1x2+2x22s.t. x1+x22-x1+2x22x10, x 20 1、 写成标准形式 :2、 输入命令 :H=2 -2; -2 4; c=-2 ;-6;A=1 1; -1 2;b=2;2;Aeq=;beq=; VLB=0;0;VUB=;x,z=quadprog(H,c,A,b,Aeq,beq,VLB,VUB)3、 运算结果 为:x =0.8000 1.2000 z = -7.2000s.t.161. 首先建立 M文件 fun.m,定义目标函数 F( X) :function f=fun(X);f=F(X);5、一般非线性规划其中 X为 n维变元向量, G(X)与 Ceq(X)均为非线性函数组成的向量,其它变量的含义与线性规划、二次规划中相同 .用Matlab求解上述问题,基本步骤分三步:173. 建立主程序 .非线性规划求解的函数是 fmincon,命令的基本格式如下:(1) x=fmincon(fun,X0,A,b)(2) x=fmincon(fun,X0,A,b,Aeq,beq)(3) x=fmincon(fun,X0,A,b, Aeq,beq,VLB,VUB)(4) x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB,nonlcon)(5)x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB,nonlcon,options) (6) x,fval= fmincon(.)(7) x,fval,exitflag= fmincon(.)(8)x,fval,exitflag,output= fmincon(.)输出极值点 M文件 迭代的初值 参数说明变量上下限18注意:1 fmincon函数提供了大型优化算法和中型优化算法。默认时,若在 fun函数中提供了梯度( options参数的 GradObj设置为 on), 并且只有上下界存在或只有等式约束, fmincon函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。2 fmincon函数的中型算法使用的是序列二次规划法。在每一步迭代中求解二次规划子问题,并用 BFGS法更新拉格朗日Hessian矩阵。3 fmincon函数可能会给出局部最优解,这与初值 X0的选取有关。191、 写成标准形式 : s.t. 2x1+3x2 6s.t x1+4x2 5x1,x2 0例 6202、 先建立 M-文件 fun3.m:function f=fun3(x);f=-x(1)-2*x(2)+(1/2)*x(1)2+(1/2)*x(2)23、再建立主程序 youh2.m:x0=1;1;A=2 3 ;1 4; b=6;5;Aeq=;beq=;VLB=0;0; VUB=;x,fval=fmincon(fun3,x0,A,b,Aeq,beq,VLB,VUB)4、 运算结果为:x = 0.7647 1.0588fval = -2.0294211 先建立 M文件 fun4.m,定义目标函数 :function f=fun4(x); f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);x1+x2=0s.t. 1.5+x1x2 - x1 - x2 0-x1x2 10 0例 72再建立 M文件 mycon.m定义非线性约束:function g,ceq=mycon(x)g=x(1)+x(2);1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10;223主程序 youh3.m为 :x0=-1;1;A=;b=;Aeq=1 1;beq=0;vlb=;vub=;x,fval=fmincon(fun4,x0,A,b,Aeq,beq,vlb,vub,mycon)3. 运算结果为 :x = -1.2250 1.2250fval = 1.895123例 8 1先建立 M-文件 fun.m定义目标函数 :function f=fun(x);f=-2*x(1)-x(2);2再建立 M文件 mycon2.m定义非线性约束:function g,ceq=mycon2(x)g=x(1)2+x(2)2-25;

温馨提示

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

评论

0/150

提交评论