最优化问题matlab求解_第1页
最优化问题matlab求解_第2页
最优化问题matlab求解_第3页
最优化问题matlab求解_第4页
最优化问题matlab求解_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、 mixgtsxxxxfzMaxMiniTn, 2 , 1, 0)(. .),(),()(1或x决策变量决策变量f(x)目标函数目标函数gi(x) 0约束条件约束条件TnxxxxfzMin),(),(10|,.,0|, 0|00021xxnxxxxxfxfxf5 . 02cos4)24sin(5 . 03teteztt:的最小值。求二元函数xyyxexxz22)2(2基本用法:基本用法:x=fminunc(fun,x0)x=fminunc(fun,x0,options,P1,P2,.)fun.m f(x)的的m文件名文件名x0 0 初始点初始点; ; x 最优解最优解P1,P2, P1,P2,

2、 传给传给funfun的参数的参数中间输入项缺省用中间输入项缺省用占据位占据位置置function y=fun071(x,a,b)y=x(1)2/a+x(2)2/b;x0=1,1;a=2;b=2;x=fminunc(fun071,x0,a,b)X=(0,0)22 min2xyabab例:其中:的初值得出其最小值。试观察不同已知函数, 0,2sin10cos)(632ttetetytt目标函数: nnxcxcxcz2211min约束条件:0,),(),(),(2122112222212111212111nmnmnmmnnnnxxxbxaxaxabxaxaxabxaxaxa约束最优化约束最优化1、

3、线性规划CXz min目标函数: 约束条件:0),(XbAX其中:),(21ncccCmnmmnaaaaaaA2111211nxxxX21mbbbb21C价值向量 b资源向量 X决策变量向量 CXz min目标函数: 约束条件:MmeqeqxxxBXAbAX命令形式2: X,f,flag,c=linprog(C,A,b,Aeq,Beq,xm,xM,x0,opt)功能:各个参数的解释如前,若各个约束条件不存在,则用空矩阵来代替。57. 2,678. 0,32. 3, 0,6254354242. .342min5432154321543254321xxxxxxxxxxxxxxtsxxxxx求解例:

4、 c=-2,-1,-4,-3,-1; c=-2,-1,-4,-3,-1; A=0 2 1 4 2;3 4 5 -1 -1; A=0 2 1 4 2;3 4 5 -1 -1; b=54;62; b=54;62; Ae=;Be=; Ae=;Be=; xm=0,0,3.32,0.678,2.57; xm=0,0,3.32,0.678,2.57; ff=optimset; ff=optimset; ff.LargeScale=off;% ff.LargeScale=off;%是否采用大规模算法是否采用大规模算法 ff.TolX=1e-15;% ff.TolX=1e-15;%解的控制精度解的控制精度 f

5、f.Display=iter;% ff.Display=iter;%显示信息的级别显示信息的级别 X,f,flag,c=linprog(c,A,b,Ae,Be,xm,ff) X,f,flag,c=linprog(c,A,b,Ae,Be,xm,ff)CXHXX21min目标函数: 约束条件:MmeqeqxxxBXAbAX2、二次规划命令形式: X,f,flag,c=quadprog(H,C,A,b,Aeq,Beq,xm,xM,x0,opt)功能:各个参数的解释如前,若各个约束条件不存在,则用空矩阵来代替。例:求解0, 94 3 36442)( min 21212121222121xxxxxx x

6、-x-xxx-xxfH=4,-4;-4H=4,-4;-4,8; C=-68; C=-6,-3;-3; A=1 A=1,1;41;4,1;1; b=3 b=3;9;9; Ae=;Be=; Ae=;Be=; ff=optimset; ff=optimset; ff.LargeScale=off; ff.LargeScale=off; ff.TolX=1e-15; ff.TolX=1e-15; ff.Display=iter; ff.Display=iter; X,f,flag,c=quadprog(H,C,A,b,Ae,Be,zeros(2,1),ff) X,f,flag,c=quadprog(H

7、,C,A,b,Ae,Be,zeros(2,1),ff) 定义定义 如果目标函数或约束条件中至少有一个是非线性函数时的最优化问题就叫做非线性规划问题非线性规划问题 一般形式一般形式: (1) 其中 , 是定义在 En 上的实值函数,简记: Xfmin 0 1,2,.,m; . .0 1, 2,., .ijgXis thXjlnTnExxxX,21jihgf,1nj1ni1nE :h ,E :g ,E :EEEf 其它情况其它情况: 求目标函数的最大值或约束条件为大于等于零的情况,都可通过取其相反数化为上述一般形式非线性规划非线性规划 其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成

8、的向量,其它变量的含义与线性规划、二次规划中相同.(1)间接法)间接法(2)直接法)直接法 q直接搜索法直接搜索法q以梯度法为基础的以梯度法为基础的间接法间接法非线性规划的求解算法非线性规划的求解算法间接法间接法在非线性最优化问题当中,如果目标函在非线性最优化问题当中,如果目标函数能以解析函数表示,可行域由不等式约束数能以解析函数表示,可行域由不等式约束确定,则可以利用目标函数和可行域的已知确定,则可以利用目标函数和可行域的已知性质,在理论上推导出目标函数为最优值的性质,在理论上推导出目标函数为最优值的必要条件,这种方法就称为必要条件,这种方法就称为间接法间接法(也称为(也称为解析法解析法)

9、。一般要用到目标函数的导数。一般要用到目标函数的导数。直接法直接法直接法直接法是一种数值方法。这种方法的基是一种数值方法。这种方法的基本思想是本思想是迭代迭代,通过迭代产生一个点序列,通过迭代产生一个点序列 X(k) ,使之逐步接近最优点。,使之逐步接近最优点。 只用到只用到目标函数目标函数。如黄金分割法、如黄金分割法、FibonacciFibonacci、随机搜索法。、随机搜索法。迭代法一般步骤迭代法一般步骤注意:注意:数值求解最优化问题的计算效率取决数值求解最优化问题的计算效率取决于确定搜索方向于确定搜索方向P (k)和步长和步长 的效率。的效率。 )(k最速下降法(最速下降法(steep

10、est descent method)由法国数学家由法国数学家Cauchy于于1847年首先提出。在每次迭代中,年首先提出。在每次迭代中,沿最速下降方向(沿最速下降方向(负梯度方向负梯度方向)进行搜索,每步沿负梯度方)进行搜索,每步沿负梯度方向取最优步长,因此这种方法称为向取最优步长,因此这种方法称为最优梯度法最优梯度法。 特点:特点:方法简单,只以一阶梯度的信息确定下一步的搜索方向,收方法简单,只以一阶梯度的信息确定下一步的搜索方向,收敛速度慢;敛速度慢;越是接近极值点,收敛越慢;越是接近极值点,收敛越慢;它是其它许多无约束、有约束最优化方法的基础。它是其它许多无约束、有约束最优化方法的基础

11、。该法一般用于最优化开始的几步搜索。该法一般用于最优化开始的几步搜索。 最速下降法算法:最速下降法算法: 1. 给定初始点给定初始点Exn)1(,给定误差,给定误差0,令,令 k=1; 2. 计算搜索方向计算搜索方向xdkkf)()(; 3. 如果如果dk)(,则迭代终止,否则通过下列一维搜索,则迭代终止,否则通过下列一维搜索 求求)(k:dxkkf)()(0min 4. 令令dxxkkkk)()()()1(,置,置 k=k+1,转(,转(2)步执行。)步执行。 1. 首先建立M文件fun.m,定义目标函数F(X):function f=fun(X);f=F(X);用Matlab求解上述问题,

12、基本步骤分三步:Matlab求解步骤3. 建立主程序.非线性规划求解的函数是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,

13、exitflag= fmincon(.) (8)x,fval,exitflag,output= fmincon(.)输出极值点M文件迭代的初值参数说明变量上下限输入参数的几点说明输入参数的几点说明q模型中如果没有模型中如果没有A,b,Aeq,beq,VLB,VUB的限制,则以空矩阵的限制,则以空矩阵 作为参数传入;作为参数传入;qnonlcon:如果包含非线性等式或不等式约束,则将这些函:如果包含非线性等式或不等式约束,则将这些函数编写一个数编写一个Matlab函数函数 nonlcon就是定义这些函数的程序文件名;就是定义这些函数的程序文件名;不等式约束不等式约束 G(x)=0G(x)=0等式

14、约束等式约束 Ceq(x)=0Ceq(x)=0.如果如果nonlcon=nonlcon=myconmycon ; ; 则则myfunmyfun.m.m定义如下定义如下function G,Ceq = mycon(x)function G,Ceq = mycon(x) G= .G= . % % 计算非线性不等式约束在点计算非线性不等式约束在点x x处的函数值处的函数值Ceq= .Ceq= . %计算非线性等式约束在点计算非线性等式约束在点x x处的函数值处的函数值 对参数对参数nonlconnonlcon的进一步示例的进一步示例2个不等式约束,个不等式约束,2个等式约束个等式约束3个决策变量个决

15、策变量x1,x2,x3如果如果nonlcon以以mycon1作为参数值,则程序作为参数值,则程序mycon1.m如下如下808060101003223132212321232221xxxxxxxxxxx对照约束条件编写对照约束条件编写myfun1.mfunction G,Ceq=mycon1(x)G(1)=x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-100G(2)=60-x(1)*x(1)+10*x(3)*x(3)Ceq(1)=x(1)+x(2)*x(2)+x(3)- 80Ceq(2)=x(1)3+x(2)*x(2)+x(3)- 808080601010032231322123

16、21232221xxxxxxxxxxx注意:注意:1 fmincon函数提供了大型优化算法和中型优化算法。默认时,若在fun函数中提供了梯度(options参数的GradObj设置为on),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。2 fmincon函数可能会给出局部最优解,这与初值X0的选取有关。1、写成标准形式写成标准形式: s.t. 00546322121xxxx2100 xx22212121212minxxxxf22212121212minxxxxf 2x1+3x2 6 s.t x1+4x2 5 x1,x2 0例例2

17、、先建立先建立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.0588 fval = -2.02941先建立先建立M文件文件 fun4.m,定义目标函数定义目标函数: function f=fun4(x); f=exp(

18、x(1) *(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);) 12424()(22122211xxxxxexfx x1+x2=0 s.t. 1.5+x1x2 - x1 - x2 0 -x1x2 10 0例例2再建立再建立M文件文件mycon.m定义非线性约束:定义非线性约束: function g,ceq=mycon(x) g=1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10; ceq=;3主程序为主程序为:x0=-1;1;A=;b=;Aeq=1 1;beq=0;vlb=;vub=;x,fval=fmincon(fun4,x0,A,b,

19、Aeq,beq,vlb,vub,mycon)3. 运算结果为运算结果为: x = -1.2250 1.2250 fval = 1.8951非负条件下线性最小二乘非负条件下线性最小二乘 lsqnonneg 适合如下模型:适合如下模型: 0. .22minXtsdCXX注意:约束只有非负约束注意:约束只有非负约束语法:语法:x =lsqnonneg(c,d)x =lsqnonneg(c,d,x0)x =lsqnonneg(c,d,x0,options) 语法:语法:x = lsqlin(C,d,A,b)x = lsqlin(C,d,A,b,Aeq,beq)x = lsqlin(C,d,A,b,Ae

20、q,beq,lb,ub)x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)x,resnorm = lsqlin(.)x,resnorm,residual = lsqlin(.)x,resnorm,residual,exitflag = lsqlin(.)x,resnorm,residual,exitflag,output = lsqlin(.)x,resnorm,residual,exitflag,output,lambda = lsqlin(.)非线性最小二乘非线性最小二乘lsqnonlin 适合模型:适合模型:uXltsXFXFiiX. .)(21)(22221min语法:语法:x = lsqnonlin(fun,x0)x = lsqnonlin(fun,x0,lb,ub)x = lsqnonlin(fun,x0,lb,ub,options)x = lsqnonlin(fun,x0,options,P1,P2, . )x,resnorm = lsqnonlin(.)x,resnorm,residual = lsqnonlin(.)x,resnorm,residual,exitflag = lsqnonlin(.)x,resnorm,re

温馨提示

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

评论

0/150

提交评论