Matlab在最优化问题中的应用_第1页
Matlab在最优化问题中的应用_第2页
Matlab在最优化问题中的应用_第3页
Matlab在最优化问题中的应用_第4页
Matlab在最优化问题中的应用_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、 Matlab在最优化问题中的应用优化理论是一门实践性很强的学科,广泛应用于生产管理、军事指挥和科学试验等各种领域,Matlab优化工具箱提供了对各种优化问题的一个完整的解决方案。在数学上,所谓优化问题,就是求解如下形式的最优解: Miin ffun (x) Suub. to C.E. B.C.其中fuun (x)称称为目标标函数,“Subb. tto”为“subbjecct tto”的缩写写,由其其引导的的部分称称为约束束条件。C.E.表示CCondditiion Equuatiionss,即条条件方程程,可为为等式方方程,也也可为不不等式方方程。B.CC.表表示Boounddaryy Co

2、ondiitioons,即边界界条件,用来约约束自变变量的求求解域,以lbbxub的的形式给给出。当当C.E.为空时时,此优优化问题题称为自自由优化化或无约约束优化化问题;当CC.E.不空空时,称称为有约束优优化或强强约束优优化问题题。在优化问问题中,根据变变量、目目标函数数和约束束函数的的不同,可以将将问题大大致分为为:线性优优化 目标标函数和和约束函函数均为为线性函函数。二次优优化 目标标函数为为二次函函数,而而约束条条件为线线性方程程。线性性优化和和二次优优化统称称为简单单优化。非线性性优化 目标函函数为非非二次的的非线性性函数,或约束束条件为为非线性性方程。多目标标优化 目标函函数并非

3、非一个时时,称为为多目标标优化问问题。本章将对对以上几几类优化化问题在在Mattlabb中的实实现作比比较详细细的讲解解。另外外还将介介绍两个个利用优优化方法法解非线线性方程程的函数数。通过本章章的介绍绍,用户户可以不不必掌握握艰涩的的各种优优化算法法而轻易易地解决决一些常常用的最最优化问问题了。10.11 线性性规划问问题线性规划划问题即即目标函函数和约约束条件件均为线线性函数数的问题题。其标准形形式为:min Cxsub. To AAx = b x0其中C, b, 0Rn,ARmn,均为为数值矩矩阵,xxRn。若目标函函数为:maxx CCx,则则转换成成:miin Cx。标准形式式的线性

4、性规划问问题简称称为LPP(Liineaar PProggrammminng)问问题。其其它形式式的线性性规划问问题经过过适当的的变换均均可以化化为此种种标准形形。线性性规划问问题虽然然简单,但在工工农业及及其他生生产部门门中应用用十分广广泛。在Mattlabb中,线线性规划划问题由由linnproog函数数求解。函数:llinpprogg %求求解如下下形式的的线性规规划问题题: ssuchh thhat 其其中f, x, b, beeq, lb, ubb为向量量,A, Aeeq为矩矩阵。格式:xx = linnproog(ff,A,b)x = linnproog(ff,A,b,AAeq,b

5、eqq)x = linnproog(ff,A,b,AAeq,beqq,lbb,ubb)x = linnproog(ff,A,b,AAeq,beqq,lbb,ubb,x00)x = linnproog(ff,A,b,AAeq,beqq,lbb,ubb,x00,opptioons)x,ffvall = liinprrog(.)x,ffvall,exxitfflagg = liinprrog(.)x,ffvall,exxitfflagg,ouutpuut = llinpprogg(.)x,ffvall,exxitfflagg,ouutpuut,llambbda = linnproog(.)说明:x

6、= linnproog(ff,A,b)求解问问题 mmin f*x,约束条条件为AA*x0 表示示目标函函数收敛敛于解xx处;=0 表示示已经达达到函数数评价或或迭代的的最大次次数; ff=-5;-4;-6; AA=11 -11 1;3 22 4;3 22 0; bb=220;442;330; llb=zzeroos(33,1); x,ffvall,exxitfflagg,ouutpuut,llambbda=liinprrog(f,AA,b,lb)Optiimizzatiion terrminnateed ssucccesssfullly.x = 0.000000 115.000000 3.0

7、00000fvall = -778.000000exittflaag = 1outpput = iiterratiionss: 66 cgiiterratiionss: 00 alggoriithmm: lippsolllambbda = ineeqliin: 3xx1 ddoubble eeqliin: 0 xx1 ddoubble uuppeer: 3xx1 ddoubble lloweer: 3xx1 ddoubble llambbda.ineeqliinans = 0.000000 1.550000 0.550000 llambbda.lowwerans = 1.000000 0.00

8、0000 0.000000lambbda向向量中的的非零元元素表示示哪些约约束是主主动约束束。本例例中,第第2个和和第3个个不等式式约束,第1个个下界约约束是主主动约束束(如这这些解位位于约束束边界上上)。eexittflaag = 1表表示过程程正常收收敛于解解x处。例10-2 生生产决策策问题。某厂生产产甲乙两两种产品品,已知知制成一一吨产品品甲需资资源A 3吨,资源BB 4mm3;制成成一吨产产品乙需需资源AA 2吨吨,资源源B 66m3;资源源C 77个单位位。若一一吨产品品甲和乙乙的经济济价值分分别为77万元和和5万元元,三种种资源的的限制量量分别为为90吨吨、2000m3和2110

9、个单单位,试试决定应应生产这这两种产产品各多多少吨才才能使创创造的总总经济价价值最高高?解:令生生产产品品甲的数数量为xx1,生产产产品甲甲的数量量为x22。由题题意可以以建立下下面的数数学模型型: suub. to该模型中中要求目目标函数数最大化化,需要要按照MMatllab的的要求进进行转换换,即目目标函数数为在Mattlabb中实现现: ff=-7;-5; AA=33 2;4 66;0 7; bb=990;2200;2100; llb=0;00; x,ffvall,exxitfflagg,ouutpuut,llambbda=liinprrog(f,AA,b,lb)Optiimizzati

10、ion terrminnateed ssucccesssfullly.x = 114.000000 224.000000fvall = -2118.000000exittflaag = 1outpput = iiterratiionss: 55 cgiiterratiionss: 00 alggoriithmm: lippsolllambbda = ineeqliin: 3xx1 ddoubble eeqliin: 0 xx1 ddoubble uuppeer: 2xx1 ddoubble lloweer: 2xx1 ddoubble由上可知知,生产产甲种产产品144吨、乙乙种产品品24吨吨可

11、使创创造的总总经济价价值最高高为2118万元元。exxitfflagg = 1表示示过程正正常收敛敛于解xx处。例10-3 厂厂址选择择问题。考虑A、B、CC三地,每地都都出产一一定数量量的原料料也消耗耗一定数数量的产产品(见见下表)。已知知制成每每吨产品品需3吨吨原料,各地之之间的距距离为:AB:1150kkm,AAC:1100kkm,BBC:2200kkm。假假定每万万吨原料料运输11km的的运价是是50000元,每万吨吨产品运运输1kkm的运运价是660000元。由由于地区区条件的的差异,在不同同地点设设厂的生生产费用用也不同同。问究究竟在哪哪些地方方设厂,规模多多大,才才能使总总费用最

12、最小?另另外,由由于其它它条件限限制,在在B处建建厂的规规模(生生产的产产品数量量)不能能超过55万吨。A、B、C三地地出产原原料、消消耗产品品情况表表地点年产原料料(万吨吨)年销产品品(万吨吨)生产费用用(万元元/万吨吨)A207150B1613120C240100解:令为为由i地运到到j地的原原料数量量(万吨吨),为为由i地运到到j地的产产品数量量(万吨吨),ii,j = 1,22,3(分别对对应A、B、CC三地)。根据据题意,可以建建立问题题的数学学模型(其中目目标函数数包括原原料运输输费、产产品运输输费和生生产费用用(万元元):min sub.to 在Maatlaab中实实现: ff=

13、775;775;550;550;1100;1000;1550;2240;2100;1220;1160;2200; AA=11 -11 1 -1 0 00 3 3 00 0 0 00 -1 11 0 0 11 -11 0 0 33 3 0 00 00 0 -1 1 -1 11 0 0 00 0 3 33 00 0 0 00 0 0 00 0 1 11 0 0; bb=220;116;224;55; AAeq=0 0 00 0 0 00 1 0 11 0 1 00 0 0 00 0 0 00 0 1 00 1 0 11; bbeq=7;13; llb=zzeroos(112,11); x,fvaa

14、l,eexittflaag,ooutpput,lammbdaa=llinpprogg(f,A,bb,Aeeq,bbeq,lb)Optiimizzatiion terrminnateed ssucccesssfullly.x = 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 7.000000 0.000000 0.000000 5.000000 0.000000 8.000000fvall = 3.48550e+0033exittflaag = 1outpput = iiterratiionss: 88 cgiiterratiions

15、s: 00 alggoriithmm: lippsolllambbda = ineeqliin: 4xx1 ddoubble eeqliin: 2xx1 ddoubble uuppeer: 122x1 douublee lloweer: 122x1 douublee因此,要要使总费费用最小小,需要要B地向向A地运运送1万万吨原料料,A、B、CC三地的的建厂规规模分别别为7万万吨、55万吨、8万吨吨。最小小总费用用为34485万万元。10.22 非线线性规划划问题10.22.1非非线性无无约束规规划问题题无约束规规划由33个功能能函数ffminnbndd、fmminssearrch、fmiinu

16、nnc实现现。10.22.1.1 ffminnbndd函数函数:ffminnbndd功能:求求取固定定区间内内单变量量函数的的最小值值,也就就是一元元函数最最小值问问题。数学模型型:式中,和和为标量量,为函函数,返返回标量量。格式:xx = fmiinbnnd(ffun,x1,x2)x = fmiinbnnd(ffun,x1,x2,opttionns)x = fmiinbnnd(ffun,x1,x2,opttionns,PP1,PP2,.)x,ffvall = fmminbbnd(.)x,ffvall,exxitfflagg = fmminbbnd(.)x,ffvall,exxitfflagg

17、,ouutpuut = ffminnbndd(.)说明:fminnbndd求取固固定区间间内单变变量函数数的最小小值x = fmiinbnnd(ffun,x1,x2)返回x1, x22区间间上fuun参数数描述的的标量函函数的最最小值点点x。x = fmiinbnnd(ffun,x1,x2,opttionns)用用opttionns参数数指定的的优化参参数进行行最小化化。x = fmiinbnnd(ffun,x1,x2,opttionns,PP1,PP2,.)提供另另外的参参数P11,P22等,传传输给目目标函数数funn。如果果没有设设置opptioons选选项,则则令opptioons =

18、 。x,ffvall = fmminbbnd(.)返回回解x处处目标函函数的值值。x,ffvall,exxitfflagg = fmminbbnd(.)返回回exiitfllag值值描述ffminnbndd函数的的退出条条件。x,ffvall,exxitfflagg,ouutpuut = ffminnbndd(.)返返回包含含优化信信息的结结构输出出。funn:需要要最小化化的目标标函数。funn函数需需要输入入标量参参数x,返回xx处的目目标函数数标量值值f。可可以将ffun函函数指定定为命令令行,如如 xx = fmiinbnnd (inllinee (sinn (xx*x), x0)同样

19、,ffun参参数可以以是一个个包含函函数名的的字符串串。对应应的函数数可以是是M文件件、内部部函数或或MEXX文件。若fuun = myffun,则x = fmiinbnnd(myffun,x0)其中M文文件函数数myffun.m必须须为下面面的形式式 fuuncttionn f = mmyfuun (x) f = %计算xx处的函函数值。opttionns:优优化参数数选项。你可以以用opptimmsett函数设设置或改改变这些些参数的的值。OOptiionss参数有有以下几几个选项项:Dissplaay 显示的的水平。选择offf,不显显示输出出;选择择iteer,显示示每一步步迭代过过程

20、的输输出;选选择finnal,显示示最终结结果;MaxxFunnEvaals 函函数评价价的最大大允许次次数;MaxxIteer 最大允允许迭代代次数;TollX xx处的终终止容限限。exiitfllag:描述退退出条件件:0 表示示目标函函数收敛敛于解xx处;0 表示示已经达达到函数数评价或或迭代的的最大次次数; x,yy_miin=fmiinbnnd(sinn(x),00,2*pi)x = 4.771244y_miin = -1.000000或 x,y_mmin=fmminbbnd(siin,00,2*pi)x = 4.771244y_miin = -1.000000例10-5 对对边长

21、为为3m的的正方形形铁板,在四个个角处剪剪去相等等的小正正方形以以制成方方形无盖盖盒子,问如何何剪法使使盒子容容积最大大?解:设剪剪去的正正方形的的边长为为x,则则盒子容容积为 ff (xx) = (33-2x)2 x现在要求求在区间间(0, 1.5)上上确定xx,使ff (xx)最大大化。因因为优化化工具箱箱中要求求目标函函数最小小化,所所以需要要对目标标函数进进行转换换,即要要求-f (x)最最小化。在Mattlabb中实现现: x,ff_miin=fmiinbnnd(-(33-2*x)2*xx,00,1.5)x = 0.550000f_miin = -2.000000或编写MM文件EEx

22、10005.m x,ff_miin=fmiinbnnd(Ex10005,0,11.5)x = 0.550000f_miin = -2.000000即剪去边边长为00.5 m的正正方形,最大容容积为22 m33。10.22.1.2 ffminnseaarchh函数函数:ffminnseaarchh功能:求求解多变变量无约约束函数数的最小小值。数学模型型:其中,为为向量,为一函数,返回标标量。格式:xx = fmiinseearcch(ffun,x0)x = fmiinseearcch(ffun,x0,opttionns)x = fmiinseearcch(ffun,x0,opttionns,PP

23、1,PP2,.)x,ffvall = fmminssearrch(.)x,ffvall,exxitfflagg = fmminssearrch(.)x,ffvall,exxitfflagg,ouutpuut = ffminnseaarchh(.)说明:fminnseaarchh求解多多变量无无约束函函数的最最小值。该函数数常用于于无约束束非线性性最优化化问题。x = fmiinseearcch(ffun,x0)初值为为x0,求fuun函数数的局部部极小点点x。xx0可以以是标量量、向量量或矩阵阵。x = fmiinseearcch(ffun,x0,opttionns)用用opttionns参数

24、数指定的的优化参参数进行行最小化化。x = fmiinseearcch(ffun,x0,opttionns,PP1,PP2,.)将问题题参数PP1、PP2等直直接输给给目标函函数fuun,将将opttionns参数数设置为为空矩阵阵,作为为opttionns参数数的默认认值。x,ffvall = fmminssearrch(.)将xx处的目目标函数数值返回回到fvval参参数中。x,ffvall,exxitfflagg = fmminssearrch(.)返回回exiitfllag值值,描述述函数的的退出条条件。x,ffvall,exxitfflagg,ouutpuut = ffminnsea

25、archh(.)返返回包含含优化信信息参数数outtputt的结构构输出。各变量的的意义同同前及下面fmminuunc函函数。注意:(1)应应用fmminssearrch函函数可能能会得到到局部最最优解;(2)ffminnseaarchh函数只只对实数数进行最最小化,即x必必须由实实数组成成,f (x)函数必必须返回回实数。如果xx为复数数,则必必须将它它分为实实数部和和虚数部部两部分分;(3)对对于求解解二次以以上的问问题,ffminnuncc函数比比fmiinseearcch函数数有效,但对于于高度非非线性不不连续问问题时,fmiinseearcch函数数更具稳稳键性。(4)ffminns

26、eaarchh函数不不适合求求解平方方和问题题,用llsqnnonllin函函数更好好一些。例10-6 求求2x113+4xx1x23-100 x1x2+x22的最小小值。解:在MMatllab中中实现如如下: ff=22*x(1)3+44*x(1)*x(22)33-100*x(1)*x(22)+xx(2)2; xx0=0,00; x,ff_miin=fmiinseearcch(ff,x00)x = 1.000166 0.83335f_miin = -3.332411或在Maatlaab编辑辑器中编编辑M文文件Exx10006.mm:funcctioon ff=Exx10006(xx)f=2*

27、x(11)33+4*x(11)*xx(2)3-10*x(11)*xx(2)+x(2)2;x0=0,00;命令窗口口运行: x,ff_miin=fmiinseearcch(Ex10006,x0)x = 1.000166 0.83335f_miin = -3.332411运行后结结果一致致。10.22.1.3 ffminnuncc函数函数:ffminnuncc功能:求求多变量量无约束束函数的的最小值值。数学模型型:其中,为为向量,为一函函数,返返回标量量。 格式:x = fmminuunc(funn,x00)x = fmiinunnc(ffun,x0,opttionns)x = fmiinunnc

28、(ffun,x0,opttionns,PP1,PP2,.)x,ffvall = fmminuunc(.)x,ffvall,exxitfflagg = fmminuunc(.)x,ffvall,exxitfflagg,ouutpuut = ffminnuncc(.)x,ffvall,exxitfflagg,ouutpuut,ggradd = fmminuunc(.)x,ffvall,exxitfflagg,ouutpuut,ggradd,heessiian = fmiinunnc(.)说明:fminnuncc给定初初值,求求多变量量标量函函数的最最小值。常用于于无约束束非线性性最优化化问题。x

29、= fmiinunnc(ffun,x0)给定初初值x00,求ffun函函数的局局部极小小点x。x0可可以是标标量、向向量或矩矩阵。x = fmiinunnc(ffun,x0,opttionns)用用opttionns参数数指定的的优化参参数进行行最小化化。x = fmiinunnc(ffun,x0,opttionns,PP1,PP2,.)将问题题参数PP1、PP2等直直接输给给目标函函数fuun,将将opttionns参数数设置为为空矩阵阵,作为为opttionns参数数的默认认值。x,ffvall = fmminuunc(.)将xx处的目目标函数数值返回回到fvval参参数中。x,ffval

30、l,exxitfflagg = fmminuunc(.)返回回exiitfllag值值,描述述函数的的退出条条件。x,ffvall,exxitfflagg,ouutpuut = ffminnuncc(.)返返回包含含优化信信息参数数outtputt的结构构输出。x,ffvall,exxitfflagg,ouutpuut,ggradd = fmminuunc(.)将解解x处ffun函函数的梯梯度值返返回到ggradd参数中中。x,ffvall,exxitfflagg,ouutpuut,ggradd,heessiian = fmiinunnc(.)将解xx处目标标函数的的Hesssiaan矩阵阵信

31、息返返回到hhesssiann参数中中。funn变量:为目标标函数。需要最最小化的的目标函函数。ffun函函数需要要输入向向量参数数x,返返回x处处的目标标函数标标量值ff。可以以将fuun函数数指定为为命令行行,如x = fmiinunnc(iinliine(noorm(x)2),x00)同样,ffun函函数可以以是一个个包含函函数名的的字符串串。对应应的函数数可以是是M文件件、内部部函数或或MEXX文件。若fuun = myffun,则x = fmiinunnc(myffun,x0)其中M文文件函数数myffun.m必须须有下面面的形式式:funcctioon ff = myffun (x

32、)f = %计算算x处的的函数值值。若funn函数的的梯度可可以算得得,且ooptiionss.GrradOObj设设为on(用下下式设定定) opptioons = ooptiimseet (GraadObbj, on)则funn函数必必须返回回解x处处的梯度度向量gg到第二二个输出出变量中中去。注注意,当当被调用用的fuun函数数只需要要一个输输出变量量时(如如算法只只需要目目标函数数的值而而不需要要其梯度度值时),可以以通过核核对naargoout的的值来避避免计算算梯度值值funcctioonff, gg = myyfunn (xx)f = %计算算x处的的函数值值if nnarggo

33、utt 1 %调用ffun函函数并要要求有两两个输出出变量 g = %计算xx处的梯梯度值end若Hesssiaan矩阵阵可以求求得,并并且opptioons.Hesssiaan设为为on,即 opttionns = opptimmsett (Hesssiaan, on)则funn函数必必须返回回解x处处的Heessiian对对称矩阵阵H到第第三个输输出变量量中去。注意,当被调调用的ffun函函数只需需要一个个或两个个输出变变量时(如算法法只需要要目标函函数的值值f和梯梯度值gg而不需需要Heessiian矩矩阵H时时),可可以通过过核对nnarggoutt的值来来避免计计算Heessiian

34、矩矩阵funcctioonff, gg = myyfunn (xx)f = %计计算x处处的函数数值if nnarggoutt 1 %调用ffun函函数并要要求有两两个输出出变量 g = %计算xx处的梯梯度值 iff naargoout 22 H = %计算xx处的HHesssiann矩阵endopttionns变量量:优化化参数选选项。可可以通过过opttimsset函函数设置置或改变变这些参参数。其其中有的的参数适适用于所所有的优优化算法法,有的的则只适适用于大大型优化化问题,另外一一些则只只适用于于中型问问题。首先描述述适用于于大型问问题的选选项。这这仅仅是是一个参参考,因因为使用用大

35、型问问题算法法有一些些条件。对于ffminnuncc函数来来说,必必须提供供梯度信信息LarrgeSScalle 当设为为on时,使使用大型型算法,若设为为offf则使用用中型问问题的算算法适用于大大型和中中型算法法的参数数:Diaagnoostiics 打印最最小化函函数的诊诊断信息息Dissplaay 显显示水平平。选择择offf,不显显示输出出;选择择iteer,显示示每一步步迭代过过程的输输出;选选择finnal,显示示最终结结果GraadObbj 用用户定义义的目标标函数的的梯度。对于大大型问题题此参数数是必选选的,对对于中型型问题则则是可选选项MaxxFunnEvaals 函数评评

36、价的最最大次数数MaxxIteer 最最大允许许迭代次次数TollFunn 函数数值的终终止容限限TollX xx处的终终止容限限只适用于于大型算算法的参参数:Hesssiaan 用用户定义义的目标标函数的的Hesssiaan矩阵阵HesssPaatteern 用于有有限差分分的Heessiian矩矩阵的稀稀疏形式式。若不不方便求求funn函数的的稀疏HHesssiann矩阵HH,可以以通过用用梯度的的有限差差分获得得的H的的稀疏结结构(如如非零值值的位置置等)来来得到近近似的HHesssiann矩阵HH。若连连矩阵的的稀疏结结构都不不知道,则可以以将HeessPPattternn设为密密集矩

37、阵阵,在每每一次迭迭代过程程中,都都将进行行密集矩矩阵的有有限差分分近似(这是默默认设置置)。这这将非常常麻烦,所以花花一些力力气得到到Hesssiaan矩阵阵的稀疏疏结构还还是值得得的MaxxPCGGIteer PPCG迭迭代的最最大次数数PreeconndBaandWWidtth PPCG前前处理的的上带宽宽,默认认时为零零。对于于有些问问题,增增加带宽宽可以减减少迭代代次数TollPCGG PCCG迭代代的终止止容限TyppicaalX 典型xx值只适用于于中型算算法的参参数:DerrivaativveChheckk 对用用户提供供的导数数和有限限差分求求出的导导数进行行对比DifffM

38、aaxChhangge 变变量有限限差分梯梯度的最最大变化化DifffMiixChhangge 变变量有限限差分梯梯度的最最小变化化LinneSeearcchTyype 一维搜搜索算法法的选择择exiitfllag变变量:描描述退出出条件:0 表示目目标函数数收敛于于解x处处0 表示已已经达到到函数评评价或迭迭代的最最大次数数 xx0=1,11; x,ffvall=ffminnuncc(EEx1000711,x00)Warnningg: GGraddiennt mmustt bee prroviidedd foor ttrusst-rregiion metthodd; uusinng llin

39、ee-seearcch mmethhod inssteaad. Inn E:maatlaab6pp1ttoollboxxopptimmfmminuunc.m aat llinee 2111 Opttimiizattionn teermiinatted succcesssfuullyy: Seaarchh diirecctioon llesss thhan 2*ooptiionss.ToolXx = 1.0e-0088 * -0.775911 0.26665fvall = 1.39553e-0166下面用提提供的梯梯度g最最小化函函数,修修改M文文件为EEx1000722.m:funcctioo

40、n f,gg=EEx1000722(x)f=3*x(11)22+2*x(11)*xx(2)+x(2)2;if nnarggoutt1 g(11)=66*x(1)+2*xx(2); g(22)=22*x(1)+2*xx(2);end下面通过过将优化化选项结结构opptioons.GraadObbj设置置为on来得到到梯度值值。 ooptiionss=opptimmsett(GGraddObjj,on); xx0=1,11; x,ffvall=ffminnuncc(EEx1000722,x00,opptioons)Optiimizzatiion terrminnateed ssucccesssfu

41、llly: Firrst-ordder opttimaalitty llesss thhan OPTTIONNS.TTolFFun, annd nno nnegaativve/zzeroo cuurvaaturre ddeteecteedx = 1.0e-0155 * 0.111100 -0.88882fvall = 6.28662e-0311例10-8 求求函数ff (xx) = e x1(44x12+2xx22+4xx1x2+2xx2+1)的最小小值。解:在MMatllab中中实现:xx,fvval,exiitfllag,outtputt=ffminnuncc(eexp(x(11)*(4*

42、x(11)22+2*x(22)22+4*x(11)*xx(2)+2*x(22)+11),-11,1)Warnningg: GGraddiennt mmustt bee prroviidedd foor ttrusst-rregiion metthodd; uusinng llinee-seearcch mmethhod inssteaad. Inn E:maatlaab6pp1ttoollboxxopptimmfmminuunc.m aat llinee 2111 Opttimiizattionn teermiinatted succcesssfuullyy: Currrennt ssearr

43、ch dirrecttionn iss a desscennt ddireectiion, annd mmagnnituude of dirrecttionnal derrivaativve iin ssearrch dirrecttionn leess thaan 22*opptioons.TollFunnx = 0.550000 -1.00000fvall = 1.30228e-0100exittflaag = 1outpput = iteerattionns: 7 fuuncCCounnt: 40 ssteppsizze: 1 firrstoordeeroppt: 8.119988e-0

44、004 allgorrithhm: meediuum-sscalle: Quaasi-Newwtonn liine seaarchh例10-9 求求无约束束非线性性问题 f (x) = 1000 (xx2-x12)2+(11-x1)2 xx0 = -1.22, 11解:在MMatllab中中实现: xx0=-1.2,11; x,ffvall=ffminnuncc(1100*(x(2)-x(11)22)22+(11-x(1)2,x00)Warnningg: GGraddiennt mmustt bee prroviidedd foor ttrusst-rregiion metthodd; uus

45、inng llinee-seearcch mmethhod inssteaad. Inn E:maatlaab6pp1ttoollboxxopptimmfmminuunc.m aat llinee 2111Optiimizzatiion terrminnateed ssucccesssfullly: Currrennt ssearrch dirrecttionn iss a desscennt ddireectiion, annd mmagnnituude of dirrecttionnal derrivaativve iin ssearrch dirrecttionn leess thaan

46、 22*opptioons.TollFunnx = 1.000000 1.00000fvall = 1.91116e-011110.22.2 二次规规划数学模型型:如果果某非线线性规划划的目标标函数为为自变量量的二次次函数,约束条条件全是是线性函函数,就就称这种种规划为为二次规规划。其其数学模模型为其中,和为矩阵阵,和为向量量。函数:qquaddproog功能:求求解二次次规划问问题。格式:xx = quaadprrog(H,ff,A,b)x = quaadprrog(H,ff,A,b,AAeq,beqq)x = quaadprrog(H,ff,A,b,AAeq,beqq,lbb,ubb)x

47、= quaadprrog(H,ff,A,b,AAeq,beqq,lbb,ubb,x00)x = quaadprrog(H,ff,A,b,AAeq,beqq,lbb,ubb,x00,opptioons)x = quaadprrog(H,ff,A,b,AAeq,beqq,lbb,ubb,x00,opptioons,p1,p2,.)x,ffvall = quuadpprogg(.)x,ffvall,exxitfflagg = quuadpprogg(.)x,ffvall,exxitfflagg,ouutpuut = qquaddproog(.)x,ffvall,exxitfflagg,ouutpuu

48、t,llambbda = quaadprrog(.)说明:x = quaadprrog(H,ff,A,b)返返回向量量x,最最小化函函数1/2*xx*H*x+ff*x,其约束束条件为为A*xx=bb。x = quaadprrog(H,ff,A,b,AAeq,beqq)仍求求上面的的解,但但添加了了等式约约束条件件Aeqq*x = bbeq。x = quaadprrog(H,ff,A,b,AAeq,beqq,lbb,ubb)定义义设计变变量的下下界lbb和上界界ub,使得llb=x HH=11 -11;-11 2; ff=-2;-6; AA=11 1;-1 2;22 1; bb=22;2;3;

49、llb=zzeroos(22,1); x,ffvall,exxitfflagg,ouutpuut,llambbda=quuadpprogg(H,f,AA,b,lb)Warnningg: LLargge-sscalle mmethhod doees nnot currrenntlyy soolvee thhis proobleem fformmulaatioon,swittchiing to meddiumm-sccalee meethood. Inn E:maatlaab6pp1ttoollboxxopptimmquuadpprogg.m at linne 2213Optiimizzatiio

50、n terrminnateed ssucccesssfullly.x = 0.666677 1.333333fvall = -8.222222exittflaag = 1outpput = iteerattionns: 3 allgorrithhm: meediuum-sscalle: acttivee-seet firrstoordeeroppt: cggiteerattionns: lambbda = lloweer: 2xx1 ddoubble uuppeer: 2xx1 ddoubble eeqliin: 0 xx1 ddoubbleineqqlinn: 3x11 dooublle l

51、lambbda.lowwerans = 0 0 llambbda.ineeqliinans = 3.111111 0.444444 0010.22.3 有约束束规划函数:ffminnconn功能:求求多变量量有约束束非线性性函数的的最小值值。数学模型型:其中,和为向量量,和为矩阵阵,和为函数数,返回回标量。,和可以是是非线性性函数。 格式:x = fmminccon(funn,x00,A,b)x = fmiincoon(ffun,x0,A,bb,Aeeq,bbeq)x = fmiincoon(ffun,x0,A,bb,Aeeq,bbeq,lb,ub)x = fmiincoon(ffun,x0,

52、A,bb,Aeeq,bbeq,lb,ub,nonnlcoon)x = fmiincoon(ffun,x0,A,bb,Aeeq,bbeq,lb,ub,nonnlcoon,ooptiionss)x = fmiincoon(ffun,x0,A,bb,Aeeq,bbeq,lb,ub,nonnlcoon,ooptiionss,P11,P22, .)x,ffvall = fmminccon(.)x,ffvall,exxitfflagg = fmminccon(.)x,ffvall,exxitfflagg,ouutpuut = ffminnconn(.)x,ffvall,exxitfflagg,ouutpu

53、ut,llambbda = fmiincoon(.)x,ffvall,exxitfflagg,ouutpuut,llambbda,graad = ffminnconn(.)x,ffvall,exxitfflagg,ouutpuut,llambbda,graad,hhesssiann = fmminccon(.)说明:fminnconn求多变变量有约约束非线线性函数数的最小小值。该该函数常常用于有有约束非非线性优优化问题题。x = fmiincoon(ffun,x0,A,bb)给定定初值xx0,求求解fuun函数数的最小小值点xx。fuun函数数的约束束条件为为A*xx=bb,x00可以是是标量

54、、向量或或矩阵。x = fmiincoon(ffun,x0,A,bb,Aeeq,bbeq)最小化化funn函数,约束条条件为AA*x=b和和Aeqq*x = bbeq。若没有有不等式式存在,则设置置A = ,bb = 。x = fmiincoon(ffun,x0,A,bb,Aeeq,bbeq,lb,ub)定义设设计变量量x的下下界lbb和上界界ub,使得llb=x=ub。若无等等式存在在,则令令Aeqq = ,beeq = 。x = fmiincoon(ffun,x0,A,bb,Aeeq,bbeq,lb,ub,nonnlcoon)在在上面的的基础上上,在nnonllconn参数中中提供非非线性

55、不不等式cc (xx)或等等式ceeq (x)。fmiincoon函数数要求cc (xx)=0且cceq (x) = 0。当当无边界界存在时时,令llb = 和(或)uub = 。x = fmiincoon(ffun,x0,A,bb,Aeeq,bbeq,lb,ub,nonnlcoon,ooptiionss)用opttionns参数数指定的的参数进进行最小小化。x = fmiincoon(ffun,x0,A,bb,Aeeq,bbeq,lb,ub,nonnlcoon,ooptiionss,P11,P22, .)将问题题参数PP1,PP2等直直接传递递给函数数funn和noonlccon。若不需需要

56、参数数A,b,Aeqq,beqq,lb,ub,nonnlcoon和opttionns,将它们们设置为为空矩阵阵。x,ffvall = fmminccon(.)返回回解x处处的目标标函数值值。x,ffvall,exxitfflagg = fmminccon(.)返回回exiitfllag参参数,描描述计算算的退出出条件。x,ffvall,exxitfflagg,ouutpuut = ffminnconn(.)返返回包含含优化信信息的结结构输出出outtputt。x,ffvall,exxitfflagg,ouutpuut,llambbda = fmiincoon(.)返回解解x处包包含Laagra

57、angee乘子的的lammbdaa参数。x,ffvall,exxitfflagg,ouutpuut,llambbda,graad = ffminnconn(.)返返回解xx处fuun函数数的梯度度。x,ffvall,exxitfflagg,ouutpuut,llambbda,graad,hhesssiann = fmminccon(.)返回回解x处处funn函数的的Hesssiaan矩阵阵。nonnlcoon参数数该参数计计算非线线性不等等式约束束c (x)2 %被被调用的的nonnlcoon函数数,要求求有4个个输出变变量 GC = %不不等式的的梯度 GCeeq = %等式的的梯度end若

58、nonnlcoon函数数返回mm元素的的向量cc和长度度为n的的x,则则c (x)的的梯度GGC是一一个nm的矩矩阵,其其中GCC(i, jj)是cc (jj)对xx (ii)的偏偏导数。同样,若ceeq是一一个p元元素的向向量,则则ceqq (xx)的梯梯度GCCeq是是一个nnp的矩矩阵,其其中GCCeq(i, jj)是cceq (j)对x (i)的偏导导数。其它参数数意义同同前。注意:(1)大大型优化化问题: (1.1)使使用大型型算法,必须在在funn函数中中提供梯梯度信息息(opptioons.GraadObbj设置置为on)。如如果没有有梯度信信息,则则将给出出警告信信息。Fmin

59、nconn函数允允许g (x)为一近近似梯度度,但使使用真正正的梯度度将使优优化过程程更具稳稳键性。 (1.2)当当对矩阵阵的二阶阶导数(即Heessiian矩矩阵)进进行计算算后,用用该函数数求解大大型问题题将更有有效。但但不需要要求得真真正的HHesssiann矩阵,如果能能提供HHesssiann矩阵稀稀疏结构构的信息息(用ooptiionss参数的的HesssPaatteern属属性),则fmminccon函函数可以以算得HHesssiann矩阵的的稀疏有有限差分分近似。 (1.3)若若x0不不是严格格可行的的,则ffminnconn函数选选择一个个新的严严格可行行初始点点。 (1.4

60、)若若x的某某些元素素没有上上界或下下界,则则fmiincoon函数数更希望望对应的的元素设设置为IInf(对于上上界)或或-Inf(对于下下界),而不希希望强制制性地给给上界赋赋一个很很大的值值,给下下界一个个很小的的负值。 (1.5)线线性约束束最小化化课题中中也有几几个问题题需要注注意:Aeqq矩阵中中若存在在密集列列或近密密集列(A ddensse oor ffairrly dennse collumnn),会会导致满满秩并使使计算费费时;fmiincoon函数数剔除AAeq中中线性相相关的行行。此过过程需要要进行反反复的因因子分解解,因此此,如果果相关行行很多的的话,计计算将是是一件

温馨提示

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

评论

0/150

提交评论