版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章非线性规划§1非线性规划1.1非线性规划的实例与定义如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不象线性规划有单纯形法这一通用方法, 非线性规划目前还没有适于各种问题的一般算法, 各个方法都有自己特定的适用范围。下面通过实例归纳出非线性规划数学模型的一般形式, 介绍有关非线性规划的基本概念。例1(投资决策问题)某企业有n个项目可供选择投资,并且至少要对其中一个
项目投资。已知该企业拥有总资金 A元,投资于第i(i1,,n)个项目需花资金ai元,并预计可收益b元。试选择最佳投资方案。解设投资决策变量为1,决定投资第1,决定投资第i个项目0,决定不投资第i个项目,n,n则投资总额为 an则投资总额为 aixi,投资总收益为i1bXii1。因为该公司至少要对一个项目投资,并且总的投资金额不能超过总资金 A,故有限制条件n0aixi Ai1另外,由于xi(i1, ,n)只取值0或1,所以还有xi(1xi) 0,i1, ,n.最佳投资方案应是投资额最小而总收益最大的方案, 所以这个最佳投资决策问题归结为总资金以及决策变量(取 0或1)的限制条件下,极大化总收益和总投资之比。因此,其数学模型为:ni1maxQn aiXii1ns.t.0 aixi Ai1Xi(1Xi) 0,i1, ,n.上面例题是在一组等式或不等式的约束下,求一个函数的最大值(或最小值)问
题,其中目标函数或约束条件中至少有一个非线性函数, 这类问题称之为非线性规划问题,简记为(NP。可概括为一般形式minf(x)s.t.hj(x) 0,j1,,q (NP)gi(x) 0,i1, ,p其中x[Xi Xn]T称为模型(NF3)的决策变量,f称为目标函数,gi(i1,,p)和hj(j1,,q)称为约束函数。另外, gi(x)0(i1,,p)称为等式约束,hj(x) 0(j1, ,q)称为不等式约束。对于一个实际问题,在把它归结成非线性规划问题时,一般要注意如下几点:(i)确定供选方案:首先要收集同问题有关的资料和数据,在全面熟悉问题的基础上,确认什么是问题的可供选择的方案,并用一组变量来表示它们。(ii)提出追求目标:经过资料分析,根据实际需要和可能,提出要追求极小化或极大化的目标。并且,运用各种科学和技术原理,把它表示成数学关系式。(iii)给出价值标准:在提出要追求的目标之后,要确立所考虑目标的“好”或“坏”的价值标准,并用某种数量形式来描述它。(iv)寻求限制条件:由于所追求的目标一般都要在一定的条件下取得极小化或极大化效果,因此还需要寻找出问题的所有限制条件,这些条件通常用变量之间的一些不等式或等式来表示。1.2线性规划与非线性规划的区别如果线性规划的最优解存在,其最优解只能在其可行域的边界上达到(特别是可行域的顶点上达到);而非线性规划的最优解(如果最优解存在)则可能在其可行域的任意一点达到。1.3非线性规划的Matlab解法Matlab中非线性规划的数学模型写成以下形式minf(x)AxBAeqxBeqC(x)0 ,Ceq(x)0其中f(X)是标量函数,代B,Aeq,Beq是相应维数的矩阵和向量, C(x),Ceq(x)是非线性向量函数。Matlab中的命令是X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)它的返回值是向量x,其中FUN是用M文件定义的函数f(x);X0是x的初始值;A,B,Aeq,Beq定义了线性约束A*XB,Aeq*XBeq,如果没有等式约束,则A=[],B=[],Aeq=[],Beq=[] ;LB和UB是变量x的下界和上界,如果上界和下界没有约束,则LB=[],UB=[],如果x无下界,则LB=-inf,如果x无上界,则UB=inf;NONLCON是用M文件定义的非线性向量函数C(x),Ceq(x);OPTIONS定义了优化参数,可以使用Matlab缺省的参数设置。例2求下列非线性规划问题22TOC\o"1-5"\h\z\o"CurrentDocument"minf(x)x1 x2 82\o"CurrentDocument"x1x2 02\o"CurrentDocument"x1x2 2 0\o"CurrentDocument"x1,x2 0.(i)编写M文件fun1.mfunction f=fun1(x);f=x(1F2+x(2)A2+8;和M文件fun2.mfunction [g,h]=fun2(x);g=-x(1)A2+x(2);h=-x(1)-x(2)A2+2;% 等式约束(ii)在Matlab的命令窗口依次输入options=optimset;[x,y]=fmincon( 'fun1' ,rand(2,1),[],[],[],[],zeros(2,1),[], ...'fun2' ,options)就可以求得当x, 1,x2 1时,最小值y10。1.4求解非线性规划的基本迭代格式记(NP)的可行域为K。若x* K,并且f(x)f(x),xK则称x*是(NP)的整体最优解,f(X*)是(NP)的整体最优值。如果有f(x)f(x),xK,xx则称x*是(NP)的严格整体最优解, f(x*)是(NP)的严格整体最优值。若x* K,并且存在x*的邻域N(x*),使f(x*) f(x),xN(x*)K,则称x*是(NP)的局部最优解,f(X*)是(NP)的局部最优值。如果有f(x*) f(x),xN(x*) K则称x*是(NP)的严格局部最优解, f(x*)是(NP)的严格局部最优值。由于线性规划的目标函数为线性函数,可行域为凸集,因而求出的最优解就是整个可行域上的全局最优解。 非线性规划却不然,有时求出的某个解虽是一部分可行域上的极值点,但并不一定是整个可行域上的全局最优解。对于非线性规划模型(NP),可以采用迭代方法求它的最优解。迭代方法的基本思想是:从一个选定的初始点 x Rn出发,按照某一特定的迭代规则产生一个点列{xk},使得当{xk}是有穷点列时,其最后一个点是 (NP)的最优解;当{xk}是无穷点列时,它有极限点,并且其极限点是 (NP)的最优解。设xk Rn是某迭代方法的第k轮迭代点,xk1 Rn是第k1轮迭代点,记xxtkP (1)这里tkR1,pkRn,|pk||1,显然Pk是由点xk与点xk1确定的方向。式(1)就是求解非线性规划模型(NP)的基本迭代格式。通常,我们把基本迭代格式(1)中的pk称为第k轮搜索方向,tk为沿pk方向的步长,使用迭代方法求解(NP)的关键在于,如何构造每一轮的搜索方向和确定适当的步长。设xRn,p0,若存在0,使f(xtp)f(x),t(0,),称向量p是f在点x处的下降方向。设xRn,p0,若存在t0,使xtpK,称向量p是点x处关于K的可行方向。一个向量p,若既是函数f在点x处的下降方向,又是该点关于区域K的可行方向,则称之为函数f在点x处关于K的可行下降方向。现在,我们给出用基本迭代格式(1)求解(NP)的一般步骤如下:0°选取初始点x0,令k:0。k1°构造搜索方向,依照一定规则,构造 f在点x处关于K的可行下降方向作为搜索方向pk。k k2°寻求搜索步长。以x为起点沿搜索方向p寻求适当的步长tk,使目标函数值有某种意义的下降。3°求出下一个迭代点。按迭代格式( 1)求出xk1k kxtkP。若xk1已满足某种终止条件,停止迭代。k1 k4°以xk1代替xk,回到1。步。1.5凸函数、凸规划设f(x)为定义在n维欧氏空间E(n)中某个凸集R上的函数,若对任何实数(0 1)以及R中的任意两点x⑴和x(2),恒有f(x⑴(1)x(2)) f(x⑴)(1)f(x(2))则称f(x)为定义在R上的凸函数。若对每一个 (0 1)和x(1)x(2)R恒有f(x(1)(1)x(2)) f(x⑴)(1 )f(x(2))则称f(x)为定义在R上的严格凸函数。考虑非线性规划minf(x)xRR{x|gj(x) 0,j 1,2, ,1}假定其中f(x)为凸函数,gj(x)(j1,2, ,l)为凸函数,这样的非线性规划称为凸规划。可以证明,凸规划的可行域为凸集,其局部最优解即为全局最优解,而且其最优解的集合形成一个凸集。当凸规划的目标函数 f(x)为严格凸函数时,其最优解必定唯一(假定最优解存在)。由此可见,凸规划是一类比较简单而又具有重要理论意义的非线性规划。§无约束问题一维搜索方法当用迭代法求函数的极小点时, 常常用到一维搜索,即沿某一已知方向求目标函数的极小点。一维搜索的方法很多,常用的有:(1)试探法(“成功一失败”,斐波那契法,0.618法等);插值法(抛物线插值法,三次插值法等) ;(3)微积分中的求根法(切线法,二分法等)。11°选取初始数据,确定单峰区间 [a0,b。],给出搜索精度 0,由(4)确定搜考虑一维极小化问题minf(t) (2)atb若f(t)是[a,b]区间上的下单峰函数,我们介绍通过不断地缩短 [a,b]的长度,来搜索得(2)的近似最优解的两个方法。为了缩短区间[a,b],逐步搜索得(2)的最优解t*的近似值,我们可以采用以下途径:在[a,b]中任取两个关于[a,b]是对称的点t1和t2(不妨设t2t1,并把它们叫做搜索点),计算f(tj和f(t2)并比较它们的大小。对于单峰函数,若 f(t2) f(ti),则必有t*[a,ti],因而[a,ti]是缩短了的单峰区间;若f(tj f(t2),则有t*[t2,b],故[t2,b]是缩短了的单峰区间;若 f(t2) f(ti),则[a,ti]和[t2,b]都是缩短了的单峰。因此通过两个搜索点处目标函数值大小的比较, 总可以获得缩短了的单峰区间。对于新的单峰区间重复上述做法,显然又可获得更短的单峰区间。如此进行,在单峰区间缩短到充分小时,我们可以取最后的搜索点作为( 2)最优解的近似值。应该按照怎样的规则来选取探索点,使给定的单峰区间的长度能尽快地缩短?Fibonacci法若数列{Fn}满足关系:FoFi1FnFn2 Fn1,n2,3,,则称{Fn}为Fibonacci数列,Fn称为第n个Fibonacci数,称相邻两个Fibonacci数之为Fibonacci分数。当用斐波那契法以n个探索点来缩短某一区间时,区间长度的第一次缩短率为弘,其后各次分别为弘,也,,£1。由此,若t1和t2(t2t1)是单峰区间[a,b]Fn FnFn2 F2中第1个和第2个探索点的话,那么应有比例关系t1t1aFn1t2aFn2baFn'baFn从而t1aFn1(ba),t2aFn2(ba)FnFn它们关于[a,b]确是对称的点。(3)如果要求经过一系列探索点搜索之后,使最后的探索点和最优解之间的距离不超过精度 0,这就要求最后区间的长度不超过 ,即据此,我们应按照预先给定的精度 ,确定使(4)成立的最小整数n作为搜索次数,直到进行到第n个探索点时停止。用上述不断缩短函数 f(t)的单峰区间[a,b]的办法,来求得问题(2)的近似解,是Kiefer(1953年)提出的,叫做Finbonacci法,具体步骤如下:
索次数n。2°k1,aa°,bb0,计算最初两个搜索点,按(3)计算t1和t2。3°whilekn1f1f(t1),f2f(t2)iff1f2F(n1 k)心a t2;t2匕恙a(ba)F(nk)else」F(n1k)/b忧t1t2;t2b(ab)F(nk)endkk1end4°当进行至kn1时,1t1 t2 -(ab)2这就无法借比较函数值 f(tj和f(t2)的大小确定最终区间,为此,取1t2 (ab)21tia(- )(ba)2其中为任意小的数。在t-和t2这两点中,以函数值较小者为近似极小点, 相应的函数值为近似极小值。并得最终区间 [a,t1]或[t2,b]。由上述分析可知,斐波那契法使用对称搜索的方法, 逐步缩短所考察的区间,它能以尽量少的函数求值次数,达到预定的某一缩短率。例3试用斐波那契法求函数 f(t)t2t2的近似极小点,要求缩短后的区间不大于区间[1,3]的0.08倍。程序留作习题。0.618法若0,满足比例关系11451称之为黄金分割数,其值为 0.61803398872黄金分割数.。Fn11FnFn1Fn和Fibonacci分数之间有着重要的关系,它们是,n为偶数,Fn1n,n为奇数。Fn1
Fn1limnFn现用不变的区间缩短率 0.618,代替斐波那契法每次不同的缩短率, 就得到了黄金分割法(0.618法)。这个方法可以看成是斐波那契法的近似,实现起来比较容易,效果也相当好,因而易于为人们所接受。用0.618法求解,从第2个探索点开始每增加一个探索点作一轮迭代以后,原单
峰区间要缩短0.618倍。计算n个探索点的函数值可以把原区间 [a0,b0]连续缩短n1次,因为每次的缩短率均为 ,故最后的区间长度为时,可用下式计算探索点个数 n:(boao)"'时,可用下式计算探索点个数 n:这就是说,当已知缩短的相对精度为n1当然,也可以不预先计算探索点的数目 n,而在计算过程中逐次加以判断,看是否已满足了提出的精度要求。0.618法是一种等速对称进行试探的方法,每次的探索点均取在区间长度的 0.618倍和0.382倍处。2.2二次插值法对极小化问题(2),当f(t)在[a,b]上连续时,可以考虑用多项式插值来进行一维搜索。它的基本思想是:在搜索区间中,不断用低次(通常不超过三次)多项式来近似目标函数,并逐步用插值多项式的极小点来逼近( 2)的最优解。2.3无约束极值问题的解法无约束极值问题可表述为minf(x),xE(n) (5)求解问题(5)的迭代法大体上分为两种:一是用到函数的一阶导数或二阶导数,称为解析法。另一是仅用到函数值,称为直接法。解析法梯度法(最速下降法)对基本迭代格式TOC\o"1-5"\h\zk1 k 丄 k\o"CurrentDocument"XX tkP (6)k k我们总是考虑从点X出发沿哪一个方向p,使目标函数f下降得最快。微积分的知识告诉我们,点Xk的负梯度方向k k、Pf(x),是从点Xk出发使f下降最快的方向。为此,称负梯度方向 f(xk)为f在点Xk处的最速下降方向。按基本迭代格式(6),每一轮从点Xk出发沿最速下降方向 f(xk)作一维搜索,来建立求解无约束极值问题的方法,称之为最速下降法。这个方法的特点是,每轮的搜索方向都是目标函数在当前点下降最快的方向。同时,用f(xk)0或f(xk)|| 作为停止条件。其具体步骤如下:1°选取初始数据。选取初始点 X0,给定终止误差,令k:0。2°求梯度向量。计算 f(xk),若||f(xk)| ,停止迭代,输出xk。否则,进行3°。
构造负梯度方向。取pk f(xk).进行一维搜索。求tk,使得f(xktkpk)minf(xktpk)t0令xk1例4xktkpk,k:k1,转2°。令xk1例4用最速下降法求解无约束非线性规划问题minf(x) x; 25x;106。其中x (X1,X2)T,要求选取初始点 X0 (2,2)106。解:(i)f(x) (2x1,50x2)T编写M文件detaf.m如下function[f,df]=detaf(x);f=x(1)A2+25*x(2)A2;df(1)=2*x(1);df(2)=50*x(2);(ii)编写M文件zuisu.mclcx=[2;2];[f0,g]=detaf(x);whilenorm(g)>0.000001p=-g'/norm(g);t=1.0;f=detaf(x+t*p);whilef>f0t=t/2;f=detaf(x+t*p);endx=x+t*p[f0,g]=detaf(x)endNewton法处的二次逼近式考虑目标函数f在点x处的二次逼近式f(x)Q(x)f(xk)f(xk)T(xxk)扣xk)T2f(xk)(xxk)f(x)Q(x)f(xk)假定Hesse阵2k\f(x)2kf(2k\f(x)2kf(X)2X12kf(x)X1Xn2f(x)2k、f(x)XnXi2Xn正定。XnXi2Xn正定。由于2f(xQ(xk1)即可解得k)正定,函数Q的稳定点2kkif(x)f(x)(xkdx是Q(x)的最小点。为求此最小点,令xk) 0,1 k 2xx[f(x)]k1 kf(x).对照基本迭代格式(1),可知从点k']1f(Xk)出发沿搜索方向。kP并取步长tkNewton方向。对照基本迭代格式(1),可知从点k']1f(Xk)出发沿搜索方向。kP并取步长tkNewton方向。[2f(xk)]1即可得Q(x)的最小点从一初始点开始,每一轮从当前迭代点出发,沿1。通常,把方向pk叫做从点Xk出发的Newton方向并取步长为1的求解方法,称之为Newton法。其具体步骤如下:选取初始数据。选取初始点 X0,给定终止误差求梯度向量。计算 f(xk),若f(xk)||2进行3°30,令k:0。k,停止迭代,输出X。否则,[2f(xk)]1f(xkkX构造Newton方向。计算k 2k1P[f(x)]求下一迭代点。令Xk15用Newton法求解,4 4\o"CurrentDocument"minf(x)x1 25x2T 6(2,2),10。3 2 3\o"CurrentDocument"f(x) [4x12x1x2 100x24x1x2300x24x1).kp,k:22XiX2,取k1,转2°。选取x°解:(i)2xi2X2]T12x22x|4x-)x2编写M文件nwfun.m如下:function [f,df,d2f]=nwfun(x);f=x(1)A4+25*x(2)A4+x(1)A2*x(2)A2;df(1)=4*x(1)A3+2*x(1)*x(2)A2;df(2)=100*x(2)A3+2*x(1)A2*x(2);d2f(1,1)=12*x(1)A2+2*x(2)A2;d2f(1,2)=4*x(1)*x(2);d2f(2,1)=d2f(1,2);d2f(2,2)=300*x(2)A2+4*x(1)*x(2);(ii)编写M文件:clcx=[2;2];[f0,g1,g2]=nwfun(x)whilenorm(g1)>0.00001 %deadloop,fori=1:3p=-inv(g2)*g1',p=p/norm(p)t=1.0,f=detaf(x+t*p)whilef>f0t=t/2,f=detaf(x+t*p),endx=x+t*p[f0,g1,g2]=nwfun(x)end如果目标函数是非二次函数,一般地说,用 Newton法通过有限轮迭代并不能保证可求得其最优解。Newton法的优点是收敛速度快;缺点是有时不好用而需采取改进措施,此外,当维数较高时,计算[2f(xk)]1的工作量很大。(12)(12)2.3.1.3变尺度法变尺度法(VariableMetricAlgorithm)是近20多年来发展起来的,它不仅是求解
无约束极值问题非常有效的算法, 而且也已被推广用来求解约束极值问题。 由于它既避免了计算二阶导数矩阵及其求逆过程, 又比梯度法的收敛速度快,特别是对高维问题具有显著的优越性,因而使变尺度法获得了很高的声誉。 下面我们就来简要地介绍一种变尺度法一DFP法的基本原理及其计算过程。这一方法首先由 Davidon在1959年提出,后经Fletcher和Powell加以改进。我们已经知道,牛顿法的搜索方向是 [2f(xk)]导数矩阵[2f(xk)]及其逆阵,我们设法构造另一个矩阵,的逆阵[2f(xk)]1,这一类方法也称拟牛顿法(下面研究如何构造这样的近似矩阵,并将它记为 H(k)。我们要求:每一步都能以现有的信息来确定下一个搜索方向; 每做一次选代,目标函数值均有所下降; 这些近似矩阵最后应收敛于解点处的当f(x)是二次函数时,f(x)1f(xk),为了不计算二阶用它来逼近二阶导数矩阵Quasi-NewtonMethod)。Hesse阵的逆阵。k k1其Hesse阵为常数阵A,任两点x和x处的梯度之差为k k1f(x)A(xk1kxxA对于非二次函数,仿照二次函数的情形,矩阵H(k1)满足关系式k1kxx这就是常说的拟若令G(k)kx则式(7)变为kx1[f(xk1)f(xk)]要求其H(k1)[f(xk1) f(xk)]Newton条件。xkf(xk1)f(xk)1xkHesse阵的逆阵的第k1次近似(7)(8)H(k1)G(k)_ (9)1已知,用下式求H化1)(设H⑹和H"1)均为对称正定阵);_H(k)其中H(k)称为第现假定H(k)H(k1)IH(k)k次校正矩阵。显然,xk (H(k)_(10)H(k1}应满足拟Newton条件(9),即要求H(k))G(k)由此可以设想,H(k)G(k)H(k)的一种比较简单的形式是xk(Q(k))T H(k)G(k)(W(k))TxkH(k)G(k)(11)H(k)其中Q(k)和W(k)为两个待定列向量。将式(12)中的 H(k)代入(11),得xk(Q(k))TG(k)H(k)G(k)(W(k))TG(k)这说明,应使xkH(k)G(k)考虑到 H(k)应为对称阵,最简单的办法就是取(13)(14)(15)1(xk)考虑到 H(k)应为对称阵,最简单的办法就是取(13)(14)(15)1(xk)TG(k)1(G(k))Txkk于是,得校正矩阵1(G(k))TH(k)G(k)(16)H(k)从而得到xk(xk)TH(k)G(k)(G(k))TH(k)(G(k))Txk(G(k))TH(k)G(k)(17)H(k1)H(k)xk(Xk)T(G(k))TXkH(k)G(k)(G(k))TH(k)
(G(k))TH(k)G(k)(18)(Q(k))TG(k)(W(k))TG(k) 1Q(k)W(k)kH(k)G(k)由式(13)得k(xk)TG(k)k(G(k))TH(k)G(k) 1若(xk)TG(k)和(G(k))TH(k)G(k)不等于零,则有上述矩阵称为尺度矩阵。通常,我们取第一个尺度矩阵 H(0)为单位阵,以后的尺度矩阵按式(18)逐步形成。可以证明:(i)当xk不是极小点且H(k)正定时,式(17)右端两项的分母不为零,从而可按式(18)产生下一个尺度矩阵H(k1);(ii)若H(k)为对称正定阵,则由式(18)产生的H(k1)也是对称正定阵;iii)由此推出DFP法的搜索方向为下降方向。现将DFP变尺度法的计算步骤总结如下。1°给定初始点X0及梯度允许误差0。2。若 f(x0) ,则X0即为近似极小点,停止迭代,否则,转向下一步。3。令H(0) I(单位矩阵),0(0)0\pHf(x)在p0方向进行一维搜索,确定最佳步长000 0\minf(xp)f(x0P)如此可得下一个近似点100xx°p4°一般地,设已得到近似点 xk,算出f(Xk),若If(xk)| _则Xk即为所求的近似解,停止迭代;否则,计算H(k):
H(k)H(k1)xk1(Xk1)T(G(k1))TXk1H(k1)G(k1)(G(k1))Th(k1)H(k)H(k1)xk1(Xk1)T(G(k1))TXk1并令pk H(k)f(xk),在pk方向上进行一维搜索,得 k,从而可得下一个近似点k1 k kXXkP5°若Xk1满足精度要求,则Xk1即为所求的近似解,否则,转回 4。,直到求出某点满足精度要求为止。232直接法在无约束非线性规划方法中, 遇到问题的目标函数不可导或导函数的解析式难以表示时,人们一般需要使用直接搜索方法。 同时,由于这些方法一般都比较直观和易于理解,因而在实际应用中常为人们所采用。下面我们介绍 Powell方法。这个方法主要由所谓基本搜索、加速搜索和调整搜索方向三部分组成,具体步骤如下:1°选取初始数据。选取初始点 X0,n个线性无关初始方向,组成初搜索方向组{p0,p1,,pn1}。给定终止误差 0,令k:0。2°进行基本搜索。令y0:xk,依次沿{p0,p1,,pn1}中的方向进行一维搜索。对应地得到辅助迭代点 y1,y2,,yn,即yjyj1tj1pj1f(yj1tj1pj1)rminf(yj1tpj1)j1,,n3°构造加速方向。令pnyny0,若|pn ,停止迭代,输出xk1yn。否则进行4°。4°确定调整方向。按下式f(ym1)f(ym)maX[f(yj1)f(yj)|1jn}找出m。若f(y0)2f(yn)f(2yny0) 2[f(ym1)f(ym)]成立,进行5°。否则,进行6°o5°调整搜索方向组。令xk1n ny tnp::f(yntnPn)nninf(yntpn).同时,令{p0,p1,,pn1}k1:{p0,m1 m1 n,p,p, ,p1,pn},k:k1,转2°。6。不调整搜索方向组。令 xk1:yn,k:k1,转2°o2.4Matlab求函数的极小值和函数的零点2.4.1求单变量有界非线性函数在区间上的极小值m]nf(x),x[a,b]Matlab的命令为[X,FVAL]=FMINBND(FUN,x1,x2,0PTI0NS),它的返回值是极小点x和函数的极小值。这里fun是用M文件定义的函数或Matlab中的单变量数学函数。例6求函数f(x)(x3)2 1,x[0,5]的最小值。解编写M文件fun1.mfunctionf=fun1(x);f=(x-3)A2-1;在Matlab的命令窗口输入[x,y]=fminbnd('fun1',0,5)即可求得极小点和极小值。求多变量函数的极小值minf(x),x其中x是一个向量,f(x)是一个标量函数。Matlab中的基本命令是[X,FVAL]=FMINUNC(FUN,X0,OPTIONS,P1,P2,…)它的返回值是向量x的值和函数的极小值。 FUN是一个M文件,当FUN只有一个返回值时,它的返回值是函数f(x);当FUN有两个返回值时,它的第二个返回值是 f(x)的一阶导数行向量;当FUN有三个返回值时,它的第三个返回值是f(x)的二阶导数阵(Hessian阵)。X0是向量x的初始值,OPTIONS是优化参数,使用确省参数时,OPTIONS为空矩阵。P1,P2是可以传递给FUN的一些参数。例7求函数f(x)100(x2x12)2 (1x1)2的最小值。解:编写M文件fun2.m如下:function [f,g]=fun2(x);f=100*(x(2)-x(1)A2)A2+(1-x(1)F2;g=[-400*x(1)*(x(2)-x(1)A2)-2(1-x(1))200*(x(2)-x(1)A2)];在Matlab命令窗口输入fminunc('fun2',rand(1,2))即可求得函数的极小值。求多元函数的极值也可以使用 Matlab的命令[X,FVAL]=FMINSEARCH(FUN,X0,OPTIONS,P1,P2,..J。§3约束极值问题带有约束条件的极值问题称为约束极值问题,也叫约束规划问题。求解约束极值问题要比求解无约束极值问题困难得多。 为了简化其优化工作,可采用以下方法:将约束问题化为无约束问题;将非线性规划问题化为线性规划问题, 以及能将复杂问题变换为较简单问题的其它方法。3.1最优性条件库恩一塔克条件是非线性规划领域中最重要的理论成果之一, 是确定某点为最优点的必要条件,但一般说它并不是充分条件(对于凸规划,它既是最优点存在的必要条件,同时也是充分条件)。二次规划若某非线性规划的目标函数为自变量 x的二次函数,约束条件又全是线性的, 就称这种规划为二次规划。Matlab中二次规划的数学模型可表述如下:1min—xTHx fTx, s.t.Axb2这里H是实对称矩阵,f,b是列向量,A是相应维数的矩阵。
Matlab中求解二次规划的命令是[X,FVAL]=QUADPROG(H,f,A,b,Aeq,beq,LB,UB,X0,OPTIONS)X的返回值是向量x,FVAL的返回值是目标函数在X处的值。(具体细节可以参看在Matlab指令中运行helpquadprog后的帮助)。例8求解二次规划22minf(x)2x1-4x1x24x2-6x1-3x2x1x234x1x29x1,x20解编写如下程序:h=[4,-4;-4,8];f=[-6;-3];a=[1,1;4,1];b=[3;9];[x,value]=quadprog(h,f,a,b,[],[],zeros(2,1))求得1.9500x,Minf(x)11.0250。1.05003.3罚函数法利用罚函数法,可将非线性规划问题的求解,转化为求解一系列无约束极值问题,因而也称这种方法为序列无约束最小化技术,简记为SUMT(SequentialUnconstrainedMinimizationTechnique)。罚函数法求解非线性规划问题的思想是,利用问题中的约束函数作出适当的罚函数,由此构造出带参数的增广目标函数,把问题转化为无约束非线性规划问题。主要有两种形式,一种叫外罚函数法,另一种叫内罚函数法,下面介绍外罚函数法。考虑如下问题:minf(x)gi(x)s.t.hi(x)ki(x)取一个充分大的数0,i0,i0,i0,r,P(x,M)gi(x)s.t.hi(x)ki(x)取一个充分大的数0,i0,i0,i0,r,P(x,M)f(x)1,1,1,,构造函数rmax(gi(x),0)i1,s,
,t.或P(x,M)f(x)M1max(G(x),0)stMmin(hi(x),0)M|ki(x)|i1i1M2min(H(x),0)M3||K(x)||g1(x)h1(x)k1(x)这里G(x),H(x)gr(x)行向量,Matlab中可以直接利用目标函数的无约束极值问题hs(x)max和,M1,M2,M3为适当的kt(x)min函数。)则以增广目标函数P(x,M)为,K(x)minP(x,M)的最优解x也是原问题的最优解。例9求下列非线性规划TOC\o"1-5"\h\z\o"CurrentDocument"22minf(x) x1 x2 82x1 x2 02-x1 x2 20x1,x20.解(i)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省益阳市资阳区第六中学2027届化学九上期末教学质量检测试题含解析
- 2027届辽宁省营口市老边区柳树镇中学化学九上期中质量检测模拟试题含解析
- 河南卢氏县2027届化学九年级第一学期期末学业质量监测模拟试题含解析
- -学年四川省甘孜州部编版六年级下册期末质量监测道德与法治试卷解析版
- 2027届山东省泰安市泰山外国语学校化学九上期末统考试题含解析
- 2027届山东省日照市五莲二中学九上化学期中统考模拟试题含解析
- 江苏省淮安市淮阴区开明中学2027届九上物理期末调研模拟试题含解析
- 2027届江苏省无锡市锡东片九上化学期末监测试题含解析
- 2026年重庆公务员考试(计算机)仿真试题及答案
- 2027届湖南省永州市双牌县化学九上期末经典试题含解析
- 2025年医疗器械经营质量管理规范自查报告
- (已压缩)广东省工程勘察设计服务成本取费导则(2024版)
- 秋天行车安全教育课件
- GB/T 17473-2025电子浆料性能试验方法导体浆料测试
- EDSS神经功能状况评估
- 数学小讲师课件
- 福建省初级注安考试试题及答案(2025年)
- 水力发电运行值班员作业指导书
- GJB827B--2020军事设施建设费用定额
- 种植义齿制作技术
- 2025至2030年中国家用美容电器具行业发展监测及投资前景预测报告
评论
0/150
提交评论