Matlab最优化计算方法ppt课件.pptx

上传人:牧羊曲112 文档编号:2002419 上传时间:2022-12-30 格式:PPTX 页数:138 大小:2.31MB
返回 下载 相关 举报
Matlab最优化计算方法ppt课件.pptx_第1页
第1页 / 共138页
Matlab最优化计算方法ppt课件.pptx_第2页
第2页 / 共138页
Matlab最优化计算方法ppt课件.pptx_第3页
第3页 / 共138页
Matlab最优化计算方法ppt课件.pptx_第4页
第4页 / 共138页
Matlab最优化计算方法ppt课件.pptx_第5页
第5页 / 共138页
点击查看更多>>
资源描述

《Matlab最优化计算方法ppt课件.pptx》由会员分享,可在线阅读,更多相关《Matlab最优化计算方法ppt课件.pptx(138页珍藏版)》请在三一办公上搜索。

1、线性规划,最优化方法专题,无约束规划,非线性规划,课程目的,课程内容,2、掌握用数学软件包求解线性规划问题。,1、了解线性规划的基本内容。,3、实验作业。,2、用数学软件包求解线性规划问题。,1、两个引例。,问题一 :任务分配问题:某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?,两个引例,解 设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3,在乙车床上加工工

2、件1、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:,解答,问题二: 某厂生产甲、乙两种产品,已知制成一吨产品甲需用资源A 3吨资源B 4m3;制成一吨产品乙需用资源A 2吨,资源B 6m3,资源C 7个单位。若一吨产品甲和乙的经济价值分别为7万元和5万元,三种资源的限制量分别为90吨、200m3和210个单位。试应生产这两种产品各多少吨才能使创造的总经济价值最高?,解:这是个最优化问题,其目标为经济价值最高,约束条件为三种资源的数量有限,决策为生产甲、乙产品的数量。令生产产品甲的数量为x1,生产产品乙的数量为x2。由题意可以建立如下的线性规划模型。,故目标函数为:,约束条件为:

3、,问题2线性规划模型:,解答,返 回,设置决策变量,它们体现解决问题的方案。,小结1:建模的基本步骤,确定目标函数,它是决策变量的函数。,确定决策变量的取值范围,给出优化方向。,确定约束条件,它们是含有决策变量的不等式或等式。,小结2:数学模型的共同结构,1. 存在一组决策变量,称为决策变量,对它们可有非负要求; 2. 存在一个以决策变量为自变量的目标函数,且它为线性函数; 3. 存在一组约束条件,且每个条件都是由决策变量构成的线性不等式或等式;,4. 结构要求出这样的变量组,或者说决策向量X,在满足约束条件和非负约束的同时,使相应的目标函数值达到最大或者最小。简言之,在一定条件下使目标函数优

4、化。,具有上述结构的数学模型为线性规划模型,线性规划数学模型三要素: 决策变量、目标函数、约束条件,例, 通过图解法求下列线性规划问题的最优解。,max z=x1+3x2s.t. x1+ x26-x1+2x28x1 0, x20,可行域,目标函数等值线,最优解,6,4,-8,6,0,x1,x2,例 通过图解法求下列线性规划问题的最优解。,-x1+2x2=2,x1-x2=2 x1+x2=4,0 1 2 3 4 x1,x2,G4321,F,E,H,A,B,C,D,I,多重最优解,例 通过图解法求下列线性规划问题的最优解。,x1+2x2=4,x1+2x2=6,0 1 2 3 4 x1,x1=3,X2

5、321,-x1+2x2=0,无界解,例 通过图解法求下列线性规划问题的最优解。,0 1 2 3 4 x1,x1=3,X2321,-x1+2x2=0,无界解,例 通过图解法求下列线性规划问题的最优。,x1+x2=1,0 1 2 3 4 x1,X2321,-x1+2x2=4,无可行解,例 通过图解法求下列线性规划问题的最优。,总结:线性规划问题解的状况,唯一最优解,无穷多最优解,无界解,无可行解,我们通常把无界解或无可行解统称为无最优解,c1 x1 0 c2 x2 0Ct= . 0= cn xn 0 并且 r(A)=mn.,线性规划标准型的矩阵形式:Max Z = CX s.t. AX=b X ,

6、b 0,a11 a12 . a1n b1 A= a21 a22 . a2n b = b2 am1 am2 . amn bm,X=,关于标准型解的若干基本概念,假若标准型有 n 个变量, m 个约束行且m=n“基”的概念在标准型中,系数矩阵有 n 列,即 A = ( P1, P2 , , Pn )A中线性独立的 m 列,构成该标准型的一个基,即基矩阵 B = ( P1 , P2 , , Pm), | B | 0 P1 , P2 , , Pm 称为基向量与基向量对应的变量称为基变量,记为 XB = ( x1 , x2 , , xm )T,其余的变量称非基变量,记为 XN = ( xm+1 , xm

7、+2 , , xn ) T , 故有 X = (XB ,XN )T,基解、基可行解,线性规划的基矩阵、基变量、非基变量,=,目标函数,约束条件,行列式0基矩阵,右边常数,例:,X1,x2,x3为基变量,x4为非基变量,可行解满足约束条件和非负条件的解 X 称为可行解.,基解(基本解)令非基变量 XN = 0,求得基变量 XB的值称为基本解 即 XB = B1 b AX=b 令A=(B,N), X=(XB ,XN) T BXB + NXN=b 令 XN = 0 得 XB = B1b 因此基解为X=( B1 b ,0)T,基本可行解符合非负性要求的基解,称为基本可行解,否则为基本非可行解基本可行解

8、的非零分量个数 m 时(基本可行解中存在取零值的基变量),称为退化基本可行解,例:写出下列线性规划问题的基解,并判断是否为基可行解。,基变量x1、x2、x3,非基变量x4、x5、x6,基解为(x1,x2,x3,x4,x5,x6)=(5,3,1,0,0,0),是基础可行解,表示可行域的一个顶点。目标函数值为:z=20,基变量x1、x2、x5,非基变量x3、x4、x6,但不是基可行解,不是一个顶点。,基解为(x1,x2,x3,x4,x5,x6)=(6,3,0,0,-3,0),基变量x1、x2、x6,非基变量x3、x4、x5,基础解为(x1,x2,x3,x4,x5,x6)=(3,4,0,0,0,4)

9、是基础可行解,表示可行域的一个顶点。目标函数值为:z=18,基变量x2、x3、x4,非基变量x1、x5、x6,基础解为(x1,x2,x3,x4,x5,x6)=(0,21/2,27/2,-30,0,0)是基础解,但不是可行解。,约束方程的解空间,基解,可行解,非可行解,基可行解,退化解,1.3.2 线性规划标准型问题解的关系,1、线性规划的标准型有特点( )。 A、右端项非零; B、目标求最大; C、有等式或不等式约束; D、变量均非负。,2 下面命题不正确的是( )。 A、线性规划的最优解是基本可行解; B、基本可行解一定是基本解; C、线性规划一定有可行解; D、线性规划的最优值至多有一个。

10、,3 若某线性规划问题中,变量个数为n,基变量个数为m(m n),则该问题基本可行解的最大数目为( ) ,4 若线性规划问题的最优解同时在可行域的两个顶点上达到,则最优解有( ) 无穷多个 过这两点的整条直线 不可能发生 两个,5当线性规划问题的可行集非空时一定()A 包含原点X=(0,0,0) B 有界C 无界 D 是凸集,2.1 单纯形算法 基本思想:从可行域的一个基本可行解(顶点)出发,判别它是否已是最优解,如果不是,寻找下一个基本可行解,并使目标函数得到改进,如此迭代下去,直到找到最优解或判定问题无界为止。,2.1 单纯形思想举例,max Z=1500 x1+2500 x2 s.t.

11、3x1+2x2 65 2x1+ x2 40 3x2 75 x1,x2 0,化成标准形:max Z=1500 x1+2500 x2 s.t. 3x1+2x2 +x3 =65 2x1+ x2 + x4 =40 3x2 + x5 = 75 x1,x2 0,2 1 0 0 1 0 1 00 3 0 0 1,A=,(P1,P2,P3,P4 ,P5 ),例,P3,P4, P5线性无关,x3, x4 , x5是基变量,x1, x2是非基变量。,1 0 0 0 1 0 0 0 1,B=,(P3,P4 ,P5 ),用非基变量表示的方程: Z= 1500 x1 +2500 x2 x3 = 65 - 3x1 - 2

12、x2 x4 = 40 - 2x1 - x2 (I) x5 = 75 - 3x2 令非基变量 ( x1 , x2)t=(0,0) t 得初始基可行解: x(1)=(0,0,65,40,75) t Z=0 经济含义:不生产产品甲和乙,利润为零。,(x3,x4 ,x5 ),分析: Z= 1500 x1 +2500 x2分别增加单位产品甲、乙,目标函数分别增加1500、2500,即利润分别增加1500元、2500元。,同时由目标函数可以看出增加单位产品乙(x2)比甲( x1 )对目标函数的贡献大(最大检验数原则),把非基变量x2换成基变量,称x2为进基变量。同时为保证基变量的个数必须确定一个出基变量。

13、(在选择出基变量时,只考虑aij是正的方程)(最小比值原则),用非基变量表示的方程: x3 = 65 - 2x2 0 x4 = 40 - x2 0 (II) x2 min x5 = 75 - 3x2 0当x2 25时, x5 0,即x5由原来的基变量变为现在的非基变量。,65/2, 40/1 75/3,确定了进基变量x2 ,出基变量x5 以后,用非基变量表示基变量得到新的方程组: Z= 62500+1500 x1-(2500/3)x5 x3 = 15 - 3x1 + (2/3)x5 x4 = 15 - 2x1 +(1/3)x5 (II) x2 = 25 -(-1/3)x5 令新的非基变量( x

14、1,x5 )=(0,0)t得到新的基本可行解:x(2)=(0,25,15,15, 0) t Z=62500经济含义:生产乙产品25个,获得利润62500元。,这个方案比前方案好,但是否是最优?,分析:Z= 62500+1500 x1-(2500/3)x5非基变量x1系数仍为正数,确定x1为进基变量。在保证所有的变量非负的情况下,确定x3为出基变量。得到新的基本可行解: x(3)=(5,25,0,5, 0) t Z= 70000-500 x3-500 x5由Z的表达式可以看出,该解已是最优解。经济含义:生产甲产品生产5个乙产品25个,获得利润70000元。,c1 x1 0 c2 x2 0Ct=

15、. 0= cn xn 0 并且 r(A)=mn.,2.2 单纯形法的基本原理Max Z = CX s.t. AX=b X 0,a11 a12 . a1n b1 A= a21 a22 . a2n b = b2 am1 am2 . amn bm,X=,max z = C XAX = bX 0,max z = CB,CNs.t. B , N = bXB, XN 0,检验数与最优检验:目标函数中 xN 的系为 ,由于 xN = 0,它对目标函数值没有直接影响,但却影响目标值的潜在变化。检验向量为:检验分量为: j 被称为检验数 根据检验数取值情况可做如下讨论:,单纯形方法计算步骤,第一步:转换线性规划

16、问题为标准型,构造初始单纯形表第二步:根据换入规则决定进基变量,第三步:根据换出规则决定出基变量,第四步:构造新的单纯形表第五步:返回第二步,例:用单纯形法求解线性规划问题,x6离基,,x2进基,,写出单纯形表,1,1/2,1/2,1,1/2,18,x2,4,0,1/2,1/2,0,-1/2,7,0,1,-3,-2,-2,72,x5离基,,x1进基,,25/1=2536/2=18,7/(1/2)=1418/(1/2)=36,1,1,2,-1,14,x1,3,0,-1/2,-1,0,11,0,-4,-2,-1,86,得到最优解,最优解为: X=(14,11,0,0,0,0)T, max z=86

17、,1.线性规划的标准形式:,用单纯法求解时,常将标准形式化为:,2. 线性规划的基本算法单纯形法,线性规划的基本算法单纯形法,引入松弛变量x3, x4, x5, 将不等式化为等式, 即单纯形标准形:,用MATLAB优化工具箱解线性规划,命令:x=linprog(c,A,b),2、模型:min z=cX,命令:x=linprog(c,A,b,Aeq,beq),注意:若没有不等式: 存在,则令A= ,b= .,命令:1 x=linprog(c,A,b,Aeq,beq, VLB,VUB) 2 x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0),注意:1 若没有等式约束: ,

18、则令Aeq= , beq= . 2其中X0表示初始点,4、命令:x,fval=linprog()返回最优解及处的目标函数值fval.,解 编写M文件如下:c=-0.4 -0.28 -0.32 -0.72 -0.64 -0.6; A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.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文件

19、如下: c=-7 -5; A=3 2; 4 6; 0 7; b=90;200;210; Aeq=; beq=; vlb=0,0; vub=inf,inf; x,fval=linprog(c,A,b,Aeq,beq,vlb,vub),问题2解答,例3 问题一的解答任务分配问题:某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?,解 设在甲车床上加工工件1、2、3的数量分别为

20、x1、x2、x3,在乙车床上加工工件1、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:,例3 问题一的解答,问题,编写M文件如下:f = 13 9 10 11 12 8;A = 0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3;b = 800; 900;Aeq=1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1;beq=400 600 500;vlb = zeros(6,1);vub=;x,fval = linprog(f,A,b,Aeq,beq,vlb,vub),结果:x = 0.0000 600.0000 0.0000 400.0000

21、0.0000 500.0000fval =1.3800e+004 即在甲机床上加工600个工件2,在乙机床上加工400个工件1、500个工件3,可在满足条件的情况下使总加工费最小为13800。,结果为:x = 14.0000 24.0000fval = -218.0000,注:有些实际问题可能会有一个约束条件:决策变量只能取整数,如x1、x2取整数。这类问题实际上是整数线性规划问题。如果把它当成一个线性规划来解,求得其最优解刚好是整数时,故它就是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门的方法求解(如割平面法、分支定

22、界法)。,实验作业,某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论: 1)若投资0.8万元可增加原料1千克,问应否作这项投资. 2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.,返 回,无约束非线性最优化,课程目的,课程内容,2、掌握用数学软件包求解无约束最优化问题。,1、了解无约束非线性最优化基本算法。,1、无约束非线性优化基本思想及基本算法。,4、实验

23、作业。,3、用MATLAB求解无约束非线性优化问题。,2、MATLAB优化工具箱简介,无约束非线性最优化问题,求解无约束非线性最优化问题的的基本思想,*无约束非线性最优化问题的基本算法,返回,标准形式:,求解无约束非线性最优化问题的基本思想,求解的基本思想 ( 以二元函数为例 ),5,3,1,连续可微,多局部极小,唯一极小(全局极小),搜索过程,最优点 (1 1)初始点 (-1 1),-1,1,4.00,-0.79,0.58,3.39,-0.53,0.23,2.60,-0.18,0.00,1.50,0.09,-0.03,0.98,0.37,0.11,0.47,0.59,0.33,0.20,0.

24、80,0.63,0.05,0.95,0.90,0.003,0.99,0.99,1E-4,0.999,0.998,1E-5,0.9997,0.9998,1E-8,返回,无约束优化问题,最优解类型,全局最优解(Global optimum),局部最优解(Local optimum),现有基于导数的求解方法通常只能得到局部最优解。,无约束优化问题,最优化条件(Optimality Condition),必要条件(Necessary condition),充分条件( Sufficient condition),无约束优化问题,步骤1: 寻找稳定点(Stationary points ):,步骤2: 检

25、查稳定点是否满足充分条件:,基本思路,基本流程,Example 1,Yanni Yang,2013 -2014 Spring Semester,Slide 7,基本思路,稳定点满足以下条件:,求解得到两个稳定点:,Hessian矩阵:,Yanni Yang,2013 -2014 Spring Semester,Slide 8,Example 2,基本思路,Yanni Yang,2013 -2014 Spring Semester,Slide 11,凸规划,无论初值取值,最优解唯一:,这样的函数被称为凸函数,求解凸函数最优解问题被称为凸规划,Yanni Yang,2013 -2014 Sprin

26、g Semester,Slide 12,The slope of the function is increasing!,多维函数判断准则:,The Hessian matrix is positive semi-definite!,凸规划,判别方法,Yanni Yang,2013 -2014 Spring Semester,Slide 13,凸规划,性质定理,求解算法,思路:基于局部搜索的原理求解NLP问题的方法很多,其原因是没有哪一种方法比别的方法更好。而且要想找到一个通用的求解NLP的局部搜索算法来处理所有的非线性模型是不现实的。它势必转换成穷举法。常用的方法有二分法、线截法、不动点法和

27、梯度法等。,求解算法,1. 二分法,求解算法,1. 二分法选择a、b,使得f(a)f(b)0且x*a, b;产生中点m(m(a+b)/2);如果f(m)0,则有f(a)f(m)0或者f(m)f(b)0,如果前者为真,令b=m;否则令a=m;如果b-a则程序终止;否则执行步骤2。,求解算法,2. 弦截法,弦截法的算法过程如下:过两点(a,f(a),(b,f(b)作一直线,它与x轴有一个交点,记为x1.如果f(a)f(x1)0,过两点(a,f(a),(x1,f(x1)作一直线,它与x轴的交点记为 x2,否则过两点 (b,f(b),(x1,f(x1)作一直线,它与x轴的交点记为x2 ;如此下去,直到

28、|xn-xn-1|就可以认为xn为f(x)=0在区间a,b上的一个根。,弦截法的算法过程如下:Xk的递推公式为: 且 在MATLAB中编程实现的弦截法的函数为:Secant.功能:用弦截法求函数在某个区间的一个零点。调用格式:root=Secant(f,a,b,eps).,求解算法,3. 不动点法,求解算法,3. 不动点法给定f(x)=0的一个初始猜测点s1;作点f(s1)处的切线并找到切线与x轴的交点s2,然后将该点作为下一个猜测点;以此类推,直到两个猜测点之间的距离充分小。,求解算法,练习: 求解方程 f(x)=0 的解。,4最速下降法(共轭梯度法)算法步骤:,最速下降法是一种最基本的算法

29、,它在最优化方法中占有重要地位.最速下降法的优点是工作量小,存储变量较少,初始点要求不高;缺点是收敛慢,最速下降法适用于寻优过程的前期迭代或作为间插步骤,当接近极值点时,宜选用别种收敛快的算法.,5牛顿法算法步骤:,如果f是对称正定矩阵A的二次函数,则用牛顿法经过一次迭代就可达到最优点,如不是二次函数,则牛顿法不能一步达到极值点,但由于这种函数在极值点附近和二次函数很近似,因此牛顿法的收敛速度还是很快的.,牛顿法的收敛速度虽然较快,但要求Hessian矩阵要可逆,要计算二阶导数和逆矩阵,就加大了计算机计算量和存储量.,Yanni Yang,2013 -2014 Spring Semester,

30、Slide 9,牛顿法(一维),Yanni Yang,2013 -2014 Spring Semester,Slide 10,初值不同,所得到的解可能不同,无法保证所得解为全局最优解。,牛顿法(多维),3拟牛顿法,返回,分别用最速下降法、牛顿法求解二次函数,的极小值。初始点,。,用Matlab解无约束优化问题,其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。 函数fminbnd的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解。,常用格式如下:(1)x= fminbnd (fun,x1,x2)(2)x= fminbnd (fun,x1,x

31、2 ,options)(3)x,fval= fminbnd(.)(4)x,fval,exitflag= fminbnd(.)(5)x,fval,exitflag,output= fminbnd(.),主程序为: 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),例2 对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?,解,先编写M文件fminbndtest.m如

32、下: function f=myfun(x) f=-(3-2*x).2*x;,主程序调用fminbnd: x,fval=fminbnd(fminbndtest,0,1.5); xmax=x fmax=-fval,运算结果为: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米.,命令格式为:(1)x= fminunc(fun,X0 );或x=fminsearch(fun,X0 )(2)x= fminunc(fun,X0 ,options); 或x=fminsearch(fun,X0 ,options)(3)x,fval= f

33、minunc(.); 或x,fval= fminsearch(.)(4)x,fval,exitflag= fminunc(.); 或x,fval,exitflag= fminsearch(5)x,fval,exitflag,output= fminunc(.); 或x,fval,exitflag,output= fminsearch(.),2、多元函数无约束优化问题,标准型为:min F(X),3 fminunc为中型优化算法的步长一维搜索提供了两种算法, 由options中参数LineSearchType控制:LineSearchType=quadcubic(缺省值),混合的二次和三 次多项

34、式插值;LineSearchType=cubicpoly,三次多项式插,使用fminunc和 fminsearch可能会得到局部最优解.,说明:,fminsearch是用单纯形法寻优. fminunc的算法见以下几点说明:,1 fminunc为无约束优化提供了大型优化和中型优化算法。由options中的参数LargeScale控制:LargeScale=on(默认值),使用大型算法LargeScale=off(默认值),使用中型算法,2 fminunc为中型优化算法的搜索方向提供了4种算法,由 options中的参数HessUpdate控制:HessUpdate=bfgs(默认值),拟牛顿法的

35、BFGS公式;HessUpdate=dfp,拟牛顿法的DFP公式;HessUpdate=steepdesc,最速下降法,例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文件myprg3.m如下: x0 = -1, 1; x=fminunc(fun1,x0); y=fun1(x),3、运行结果: x= 0.5000 -1.0000 y = 1.3029e-10,2.

36、 画出Rosenbrock 函数的等高线图,输入命令: contour(x,y,z,20) hold on plot(-1.2,2, o ); text(-1.2,2,start point) plot(1,1,o) text(1,1,solution),3.用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.0000fval =1.9151e-010exitflag = 1output = iterations: 1

37、08 funcCount: 202 algorithm: Nelder-Mead simplex direct search,4. 用fminunc 函数,(1)建立M-文件fun1.m function f=fun1(x) f=100*(x(2)-x(1)2)2+(1-x(1)2,(2)求解主程序,oldoptions=optimset(fminunc) options=optimset(oldoptions,LargeScale,off) options11=optimset(options,HessUpdate,dfp)x11,fval11,exitflag11,output11=fmi

38、nunc(fun1, -1.2 2,options11),Rosenbrock函数不同算法的计算结果,可以看出,最速下降法的结果最差.因为最速下降法特别不适合于从一狭长通道到达最优解的情况.,实验作业,有约束非线性规划,课程目的,课程内容,2、掌握用数学软件求解优化问题。,1、直观了解非线性规划的基本内容。,1、非线性规划的基本理论。,3、实验作业。,2、用数学软件求解非线性规划。,有约束非线性规划,定义 如果目标函数或约束条件中至少有一个是非线性函数时的最优化问题就叫做非线性规划问题,非线性规划的基本概念,一般形式: (1) 其中 , 是定义在 En 上的实值函数,简记:,其它情况: 求目标

39、函数的最大值或约束条件为小于等于零的情况,都可通过取其相反数化为上述一般形式,定义1 把满足问题(1)中条件的解 称为可行解(或可行点),所有可行点的集合称为可行集(或可行域)记为D即 问题(1)可简记为 ,定义2 对于问题(1),设 ,若存在 ,使得对一切 ,且 ,都有 ,则称X*是f(X)在D上的局部极小值点(局部最优解)特别地当 时,若 ,则称X*是f(X)在D上的严格局部极小值点(严格局部最优解),定义3 对于问题(1),设 ,对任意的 ,都有 则称X*是f(X)在D上的全局极小值点(全局最优解)特别地当 时,若 ,则称X*是f(X)在D上的严格全局极小值点(严格全局最优解),罚函数法

40、,罚函数法基本思想是通过构造罚函数把约束问题转化为一系列无约束最优化问题,进而用无约束最优化方法去求解这类方法称为序列无约束最小化方法简称为SUMT法 其一为SUMT外点法,其二为SUMT内点法,其中T(X,M)称为罚函数,M称为罚因子,带M的项称为罚项,这里的罚函数只对不满足约束条件的点实行惩罚:当 时,满足各 ,故罚项=0,不受惩罚当 时,必有 的约束条件,故罚项0,要受惩罚,SUTM外点法,罚函数法的缺点是:每个近似最优解Xk往往不是容许解,而只能近似满足约束,在实际问题中这种结果可能不能使用;在解一系列无约束问题中,计算量太大,特别是随着Mk的增大,可能导致错误,1、任意给定初始点X0

41、,取M11,给定允许误差 ,令k=1;2、求无约束极值问题 的最优解,设为Xk=X(Mk),即 ;3、若存在 ,使 ,则取MkM( )令k=k+1返回(2),否则,停止迭代得最优解 .计算时也可将收敛性判别准则 改为 .,SUTM外点法(罚函数法)的迭代步骤,SUTM内点法(障碍函数法),内点法的迭代步骤,用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 ,V

42、LB,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(.);,1、二次规划,例1 min f(x1,x2)=-2x1-6x2+x12-2x1x2+2x22 s.t. x1+x22 -x1+2x22 x10, x20,1、写成标准形式:,2、 输入命令: H=1 -1; -1 2; c=-2 ;-6;A=1 1; -1 2;b=2;2; Aeq=;beq=;

43、 VLB=0;0;VUB=; x,z=quadprog(H,c,A,b,Aeq,beq,VLB,VUB),3、运算结果为: x =0.6667 1.3333 z = -8.2222,s.t.,1. 首先建立M文件fun.m,定义目标函数F(X):function f=fun(X);f=F(X);,2、一般非线性规划,其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成的向量,其它变量的含义与线性规划、二次规划中相同.用Matlab求解上述问题,基本步骤分三步:,3. 建立主程序.非线性规划求解的函数是fmincon,命令的基本格式如下: (1) x=fmincon(fun,X0,A,

44、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文件,迭代的初值,参数说明,

45、变量上下限,注意:1 fmincon函数提供了大型优化算法和中型优化算法。默认时,若在fun函数中提供了梯度(options参数的GradObj设置为on),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。2 fmincon函数的中型算法使用的是序列二次规划法。在每一步迭代中求解二次规划子问题,并用BFGS法更新拉格朗日Hessian矩阵。3 fmincon函数可能会给出局部最优解,这与初值X0的选取有关。,1、写成标准形式: s.t.,2x1+3x2 6 s.t x1+4x2 5 x1,x2 0,例2,2、先建立M-文件 fun

46、3.m: function f=fun3(x); f=-x(1)-2*x(2)+(1/2)*x(1)2+(1/2)*x(2)2,3、再建立主程序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.0294,1先建立M文件 fun4.m,定义目标函数: function f=fun4(x); f=exp(x(1) *(4*x(1)2+2*x(2)2+4*x(1)*x

47、(2)+2*x(2)+1);,x1+x2=0 s.t. 1.5+x1x2 - x1 - x2 0 -x1x2 10 0,例3,2再建立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;,3主程序为: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.2250 fval = 1.8951,例4

48、,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;x(1)2-x(2)2-7;,3. 主程序fxx.m为: x0=3;2.5; VLB=0 0;VUB=5 10; x,fval,exitflag,output =fmincon(fun,x0,VLB,VUB,mycon2),4. 运算结果为: x = 4.0000 3.0000fval =-11.0000exitflag = 1output = ite

49、rations: 4 funcCount: 17 stepsize: 1 algorithm: 1x44 char firstorderopt: cgiterations: ,Matlab优化工具箱简介,1.MATLAB求解优化问题的主要函数,2. 优化函数的输入变量,使用优化函数或优化工具箱中其它优化函数时, 输入变量见下表:,3. 优化函数的输出变量下表:,4控制参数options的设置,(3) MaxIter: 允许进行迭代的最大次数,取值为正整数.,Options中常用的几个参数的名称、含义、取值如下:,(1)Display: 显示水平.取值为off时,不显示输出; 取值为iter时,

50、显示每次迭代的信息;取值为final时,显示最终结果.默认值为final.,(2)MaxFunEvals: 允许进行函数评价的最大次数,取值为正整数.,例:opts=optimset(Display,iter,TolFun,1e-8) 该语句创建一个称为opts的优化选项结构,其中显示参数设为iter, TolFun参数设为1e-8.,控制参数options可以通过函数optimset创建或修改。命令的格式如下:,(1) options=optimset(optimfun) 创建一个含有所有参数名,并与优化函数optimfun相关的默认值的选项结构options.,(2)options=opt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号