




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第三章 非線性規劃§1 非線性規劃1.1 非線性規劃的實例與定義如果目標函數或約束條件中包含非線性函數,就稱這種規劃問題為非線性規劃問題。一般說來,解非線性規劃要比解線性規劃問題困難得多。而且,也不象線性規劃有單純形法這一通用方法,非線性規劃目前還沒有適于各種問題的一般算法,各個方法都有自己特定的適用范圍。下面通過實例歸納出非線性規劃數學模型的一般形式,介紹有關非線性規劃的基本概念。例1 (投資決策問題)某企業有個項目可供選擇投資,并且至少要對其中一個項目投資。已知該企業擁有總資金元,投資于第個項目需花資金元,并預計可收益元。試選擇最佳投資方案。解 設投資決策變量為 ,則投資總額為,
2、投資總收益為。因為該公司至少要對一個項目投資,并且總的投資金額不能超過總資金,故有限制條件 另外,由于只取值0或1,所以還有 最佳投資方案應是投資額最小而總收益最大的方案,所以這個最佳投資決策問題歸結為總資金以及決策變量(取0或1)的限制條件下,極大化總收益和總投資之比。因此,其數學模型為:s.t. 上面例題是在一組等式或不等式的約束下,求一個函數的最大值(或最小值)問題,其中至少有一個非線性函數,這類問題稱之為非線性規劃問題。可概括為一般形式 (NP) 其中稱為模型(NP)的決策變量,稱為目標函數,和稱為約束函數。另外, 稱為等式約束, 稱為不等式的約束。對于一個實際問題,在把它歸結成非線性
3、規劃問題時,一般要注意如下幾點:(i)確定供選方案:首先要收集同問題有關的資料和數據,在全面熟悉問題的基礎上,確認什么是問題的可供選擇的方案,并用一組變量來表示它們。(ii)提出追求目標:經過資料分析,根據實際需要和可能,提出要追求極小化或極大化的目標。并且,運用各種科學和技術原理,把它表示成數學關系式。(iii)給出價值標準:在提出要追求的目標之后,要確立所考慮目標的“好”或“壞”的價值標準,并用某種數量形式來描述它。(iv)尋求限制條件:由于所追求的目標一般都要在一定的條件下取得極小化或極大化效果,因此還需要尋找出問題的所有限制條件,這些條件通常用變量之間的一些不等式或等式來表示。1.2
4、線性規劃與非線性規劃的區別如果線性規劃的最優解存在,其最優解只能在其可行域的邊界上達到(特別是可行域的頂點上達到);而非線性規劃的最優解(如果最優解存在)則可能在其可行域的任意一點達到。1.3 非線性規劃的Matlab解法Matlab中非線性規劃的數學模型寫成以下形式 ,其中是標量函數,是相應維數的矩陣和向量,是非線性向量函數。Matlab中的命令是X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)它的返回值是向量,其中FUN是用M文件定義的函數;X0是的初始值;A,B,Aeq,Beq定義了線性約束,如果沒有線性約束,則A=,B=,Aeq=,
5、Beq=;LB和UB是變量的下界和上界,如果上界和下界沒有約束,則LB=,UB=,如果無下界,則LB=-inf,如果無上界,則UB=inf;NONLCON是用M文件定義的非線性向量函數;OPTIONS定義了優化參數,可以使用Matlab缺省的參數設置。 例2 求下列非線性規劃(i)編寫M文件fun1.mfunction f=fun1(x);f=x(1)2+x(2)2+8;和M文件fun2.mfunction g,h=fun2(x);g=-x(1)2+x(2);h=-x(1)-x(2)2+2; %等式約束(ii)在Matlab的命令窗口依次輸入options=optimset('larg
6、escale','off');x,y=fmincon('fun1',rand(2,1),zeros(2,1), .'fun2', options)就可以求得當時,最小值。1.4 求解非線性規劃的基本迭代格式記(NP)的可行域為。若,并且 則稱是(NP)的整體最優解,是(NP)的整體最優值。如果有則稱是(NP)的嚴格整體最優解,是(NP)的嚴格整體最優值。若,并且存在的鄰域,使 ,則稱是(NP)的局部最優解,是(NP)的局部最優值。如果有則稱是(NP)的嚴格局部最優解,是(NP)的嚴格局部最優值。由于線性規劃的目標函數為線性函數,可行域為凸
7、集,因而求出的最優解就是整個可行域上的全局最優解。非線性規劃卻不然,有時求出的某個解雖是一部分可行域上的極值點,但卻并不一定是整個可行域上的全局最優解。對于非線性規劃模型(NP),可以采用迭代方法求它的最優解。迭代方法的基本思想是:從一個選定的初始點出發,按照某一特定的迭代規則產生一個點列,使得當是有窮點列時,其最后一個點是(NP)的最優解;當是無窮點列時,它有極限點,并且其極限點是(NP)的最優解。設是某迭代方法的第輪迭代點,是第輪迭代點,記 (1)這里,并且的方向是從點向著點的方向。式(1)就是求解非線性規劃模型(NP)的基本迭代格式。通常,我們把基本迭代格式(1)中的稱為第輪搜索方向,為
8、沿方向的步長,使用迭代方法求解(NP)的關鍵在于,如何構造每一輪的搜索方向和確定適當的步長。設,若存在,使 ,稱向量是在點處的下降方向。設,若存在,使,稱向量是點處關于的可行方向。一個向量,若既是函數在點處的下降方向,又是該點關于區域的可行方向,稱之為函數在點處關于的可行下降方向。現在,我們給出用基本迭代格式(1)求解(NP)的一般步驟如下:0° 選取初始點,令。1° 構造搜索方向,依照一定規劃,構造在點處關于的可行下降方向作為搜索方向。2° 尋求搜索步長。以為起點沿搜索方向尋求適當的步長,使目標函數值有某種意義的下降。3° 求出下一個迭代點。按迭代格式
9、(1)求出 。若已滿足某種終止條件,停止迭代。 4° 以代替,回到1°步。 1.5 凸函數、凸規劃設為定義在維歐氏空間中某個凸集上的函數,若對任何實數以及中的任意兩點和,恒有 則稱為定義在上的凸函數。若對每一個和恒有 則稱為定義在上的嚴格凸函數。考慮非線性規劃 假定其中為凸函數,為凸函數,這樣的非線性規劃稱為凸規劃。可以證明,凸規劃的可行域為凸集,其局部最優解即為全局最優解,而且其最優解的集合形成一個凸集。當凸規劃的目標函數為嚴格凸函數時,其最優解必定唯一(假定最優解存在)。由此可見,凸規劃是一類比較簡單而又具有重要理論意義的非線性規劃。§2 無約束問題2.1 一
10、維搜索方法當用迭代法求函數的極小點時,常常用到一維搜索,即沿某一已知方向求目標函數的極小點。一維搜索的方法很多,常用的有:(1)試探法(“成功失敗”,斐波那契法,0.618法等);(2)插值法(拋物線插值法,三次插值法等);(3)微積分中的求根法(切線法,二分法等)。考慮一維極小化問題 (2)若是區間上的下單峰函數,我們介紹通過不斷地縮短的長度,來搜索得(2)的近似最優解的兩個方法。為了縮短區間,逐步搜索得(2)的最優解的近似值,我們可以采用以下途徑:在中任取兩個關于是對稱的點和(不妨設,并把它們叫做搜索點),計算和并比較它們的大小。對于單峰函數,若,則必有,因而是縮短了的單峰區間;若,則有,
11、故是縮短了的單峰區間;若,則和都是縮短了的單峰。因此通過兩個搜索點處目標函數值大小的比較,總可以獲得縮短了的單峰區間。對于新的單峰區間重復上述做法,顯然又可獲得更短的單峰區間。如此進行,在單峰區間縮短到充分小時,我們可以取最后的搜索點作為(2)最優解的近似值。應該按照怎樣的規則來選取探索點,使給定的單峰區間的長度能盡快地縮短?2.1.1 Fibonacci法如用表示計算個函數值能縮短為單位長區間的最大原區間長度,可推出滿足關系 數列稱為Fibonacci數列,稱為第個Fibonacci數,相鄰兩個Fibonacci數之比稱為Fibonacci分數。 當用斐波那契法以個探索點來縮短某一區間時,區
12、間長度的第一次縮短率為,其后各次分別為。由此,若和是單峰區間中第1個和第2個探索點的話,那么應有比例關系, 從而 , (3)它們關于確是對稱的點。如果要求經過一系列探索點搜索之后,使最后的探索點和最優解之間的距離不超過精度,這就要求最后區間的長度不超過,即 (4)據此,我們應按照預先給定的精度,確定使(4)成立的最小整數作為搜索次數,直到進行到第個探索點時停止。用上述不斷縮短函數的單峰區間的辦法,來求得問題(2)的近似解,是Kiefer(1953年)提出的,叫做Finbonacci法,具體步驟如下:1° 選取初始數據,確定單峰區間,給出搜索精度,由(4)確定搜索次數。2°
13、,計算最初兩個搜索點,按(3)計算和。3° while if else endend4° 當進行至時, 這就無法借比較函數值和的大小確定最終區間,為此,取 其中為任意小的數。在和這兩點中,以函數值較小者為近似極小點,相應的函數值為近似極小值。并得最終區間或。 由上述分析可知,斐波那契法使用對稱搜索的方法,逐步縮短所考察的區間,它能以盡量少的函數求值次數,達到預定的某一縮短率。例3 試用斐波那契法求函數的近似極小點,要求縮短后的區間不大于區間的0.08倍。程序留作習題。2.1.2 0.618法若,滿足比例關系 稱之為黃金分割數,其值為。黃金分割數和Fibonacci分數之間有
14、著重要的關系,它們是1° ,為偶數, ,為奇數。2° 。現用不變的區間縮短率0.618,代替斐波那契法每次不同的縮短率,就得到了黃金分割法(0.618法)。這個方法可以看成是斐波那契法的近似,實現起來比較容易,效果也相當好,因而易于為人們所接受。用0.618法求解,從第2個探索點開始每增加一個探索點作一輪迭代以后,原單峰區間要縮短0.618倍。計算個探索點的函數值可以把原區間連續縮短次,因為每次的縮短率均為,故最后的區間長度為 這就是說,當已知縮短的相對精度為時,可用下式計算探索點個數:當然,也可以不預先計算探索點的數目,而在計算過程中逐次加以判斷,看是否已滿足了提出的精度
15、要求。 0.618法是一種等速對稱進行試探的方法,每次的探索點均取在區間長度的0.618倍和0.382倍處。2.2 二次插值法對極小化問題(2),當在上連續時,可以考慮用多項式插值來進行一維搜索。它的基本思想是:在搜索區間中,不斷用低次(通常不超過三次)多項式來近似目標函數,并逐步用插值多項式的極小點來逼近(2)的最優解。 2.3 無約束極值問題的解法無約束極值問題可表述為 (5)求解問題(5)的迭代法大體上分為兩點:一是用到函數的一階導數或二階導數,稱為解析法。另一是僅用到函數值,稱為直接法。解析法梯度法(最速下降法)對基本迭代格式 (6)我們總是考慮從點出發沿哪一個方向,使目標函
16、數下降得最快。微積分的知識告訴我們,點的負梯度方向 ,是從點出發使下降最快的方向。為此,稱負梯度方向為在點處的最速下降方向。按基本迭代格式(6),每一輪從點出發沿最速下降方向作一維搜索,來建立求解無約束極值問題的方法,稱之為最速下降法。這個方法的特點是,每輪的搜索方向都是目標函數在當前點下降最快的方向。同時,用或作為停止條件。其具體步驟如下:1°選取初始數據。選取初始點,給定終止誤差,令。2°求梯度向量。計算, 若,停止迭代,輸出。否則,進行3°。3° 構造負梯度方向。取.4° 進行一維搜索。求,使得 令轉2°。例4 用最速下降法求解
17、無約束非線性規劃問題 其中,要求選取初始點。解:(i)編寫M文件detaf.m如下function f,df=detaf(x);f=x(1)2+25*x(2)2;df(1)=2*x(1);df(2)=50*x(2);(ii)編寫M文件zuisu.mclcx=2;2;f0,g=detaf(x);while norm(g)>0.000001 p=-g'/norm(g); t=1.0;f=detaf(x+t*p); while f>f0 t=t/2;f=detaf(x+t*p); endx=x+t*pf0,g=detaf(x)end2法考慮目標函數在點處的二次逼近式假定Hesse
18、陣正定。由于正定,函數的駐點是的極小點。為求此極小點,令,即可解得.對照基本迭代格式(1),可知從點出發沿搜索方向。 并取步長即可得的最小點。通常,把方向叫做從點出發的Newton方向。從一初始點開始,每一輪從當前迭代點出發,沿Newton方向并取步長為1的求解方法,稱之為Newton法。其具體步驟如下:1°選取初始數據。選取初始點,給定終止誤差,令。2°求梯度向量。計算,若,停止迭代,輸出。否則,進行3°。3°構造Newton方向。計算,取 .4° 求下一迭代點。令,轉2°。例5 用Newton法求解, 選取。解:(i)編寫M文件n
19、wfun.m如下:function f,df,d2f=nwfun(x);f=x(1)4+25*x(2)4+x(1)2*x(2)2;df=4*x(1)3+2*x(1)*x(2)2;100*x(2)3+2*x(1)2*x(2);d2f=2*x(1)2+2*x(2)2,4*x(1)*x(2) 4*x(1)*x(2),300*x(2)2+4*x(1)2;(ii)編寫M文件:clcx=2;2;f0,g1,g2=nwfun(x)while norm(g1)>0.00001 p=-inv(g2)*g1 x=x+p f0,g1,g2=nwfun(x)end如果目標函數是非二次函數,一般地說,用Newto
20、n法通過有限輪迭代并不能保證可求得其最優解。為了提高計算精度,我們在迭代時可以采用變步長計算上述問題,程序如下:clcx=2;2;f0,g1,g2=nwfun(x)while norm(g1)>0.00001 p=-inv(g2)*g1,p=p/norm(p) t=1.0,f=nwfun(x+t*p) while f>f0 t=t/2,f=nwfun(x+t*p), endx=x+t*pf0,g1,g2=nwfun(x)endNewton法的優點是收斂速度快;缺點是有時不好用而需采取改進措施,此外,當維數較高時,計算的工作量很大。變尺度法變尺度法(Variable Metric A
21、lgorithm)是近20多年來發展起來的,它不僅是求解無約束極值問題非常有效的算法,而且也已被推廣用來求解約束極值問題。由于它既避免了計算二階導數矩陣及其求逆過程,又比梯度法的收斂速度快,特別是對高維問題具有顯著的優越性,因而使變尺度法獲得了很高的聲譽。下面我們就來簡要地介紹一種變尺度法DFP法的基本原理及其計算過程。這一方法首先由Davidon在1959年提出,后經Fletcher和Powell加以改進。 我們已經知道,牛頓法的搜索方向是,為了不計算二階導數矩陣及其逆陣,我們設法構造另一個矩陣,用它來逼近二階導數矩陣的逆陣,這一類方法也稱擬牛頓法(Quasi-Newton Method)。
22、 下面研究如何構造這樣的近似矩陣,并將它記為。我們要求:每一步都能以現有的信息來確定下一個搜索方向;每做一次選代,目標函數值均有所下降;這些近似矩陣最后應收斂于解點處的Hesse陣的逆陣。當是二次函數時,其Hesse陣為常數陣,任兩點和處的梯度之差為 或對于非二次函數,仿照二次函數的情形,要求其Hesse陣的逆陣的第次近似矩陣滿足關系式 (7)這就是常說的擬Newton條件。若令 (8)則式(7)變為 , (9)現假定已知,用下式求(設和均為對稱正定陣); (10)其中稱為第次校正矩陣。顯然,應滿足擬Newton條件(9),即要求或 (11)由此可以設想, 的一種比較簡單的形式是 (12)其中
23、和為兩個待定列向量。將式(12)中的代入(11),得這說明,應使 (13)考慮到應為對稱陣,最簡單的辦法就是取 (14)由式(13)得 (15)若和不等于零,則有 (16)于是,得校正矩陣 (17)從而得到 (18)上述矩陣稱為尺度矩陣。通常,我們取第一個尺度矩陣為單位陣,以后的尺度矩陣按式(18)逐步形成。可以證明:(i)當不是極小點且正定時,式(17)右端兩項的分母不為零,從而可按式(18)產生下一個尺度矩陣;(ii)若為對稱正定陣,則由式(18)產生的也是對稱正定陣;(iii)由此推出DFP法的搜索方向為下降方向。現將DFP變尺度法的計算步驟總結如下。1°給定初始點及梯度允許誤
24、差。2°若,則即為近似極小點,停止迭代,否則,轉向下一步。3°令(單位矩陣),在方向進行一維搜索,確定最佳步長: 如此可得下一個近似點 4°一般地,設已得到近似點,算出,若 則即為所求的近似解,停止迭代;否則,計算:并令,在方向上進行一維搜索,得,從而可得下一個近似點 5°若滿足精度要求,則即為所求的近似解,否則,轉回4°,直到求出某點滿足精度要求為止。2.3.2 直接法在無約束非線性規劃方法中,遇到問題的目標函數不可導或導函數的解析式難以表示時,人們一般需要使用直接搜索方法。同時,由于這些方法一般都比較直觀和易于理解,因而在實際應用中常為人們
25、所采用。下面我們介紹Powell方法。這個方法主要由所謂基本搜索、加速搜索和調整搜索方向三部分組成,具體步驟如下:1° 選取初始數據。選取初始點,個線性無關初始方向,組成初搜索方向組。給定終止誤差,令。2°進行基本搜索。令,依次沿中的方向進行一維搜索。對應地得到輔助迭代點,即3°構造加速方向。令,若,停止迭代,輸出。否則進行4°。4°確定調整方向。按下式找出。若成立,進行5°。否則,進行6°。5°調整搜索方向組。令.同時,令 ,轉2°。 6°不調整搜索方向組。令,轉2°。2.4 Mat
26、lab求無約束極值問題在Matlab工具箱中,用于求解無約束極值問題的函數有fminunc和fminsearch,用法介紹如下。求函數的極小值 其中可以為標量或向量。Matlab中fminunc的基本命令是X,FVAL,EXITFLAG,OUTPUT,GRAD,HESSIAN=FMINUNC(FUN,X0,OPTIONS,P1,P2, .)其中的返回值X是所求得的極小點,FVAL是函數的極小值,其它返回值的含義參見相關的幫助。FUN 是一個M文件,當FUN只有一個返回值時,它的返回值是函數;當FUN有兩個返回值時,它的第二個返回值是的梯度向量;當FUN有三個返回值時,它的第三個返回值是的二階導
27、數陣(Hessian陣)。X0是向量的初始值,OPTIONS是優化參數,可以使用確省參數。P1,P2是可以傳遞給FUN的一些參數。例6 求函數的最小值。解:編寫M文件fun2.m如下:function f,g=fun2(x);f=100*(x(2)-x(1)2)2+(1-x(1)2;g=-400*x(1)*(x(2)-x(1)2)-2*(1-x(1);200*(x(2)-x(1)2);在Matlab命令窗口輸入options = optimset('GradObj','on');fminunc('fun2',rand(1,2),options)即
28、可求得函數的極小值。在求極值時,也可以利用上二階導數,編寫M文件fun3.m如下:function f,df,d2f=fun3(x);f=100*(x(2)-x(1)2)2+(1-x(1)2;df=-400*x(1)*(x(2)-x(1)2)-2*(1-x(1);200*(x(2)-x(1)2);d2f=-400*x(2)+1200*x(1)2+2,-400*x(1) -400*x(1),200;在Matlab命令窗口輸入options = optimset('GradObj','on','Hessian','on');fminu
29、nc('fun3',rand(1,2),options)即可求得函數的極小值。求多元函數的極值也可以使用Matlab的fminsearch命令,其使用格式為:X,FVAL,EXITFLAG,OUTPUTFMINSEARCH(FUN,X0,OPTIONS,P1,P2,.)例7 求函數取最小值時的值。解 編寫的M文件fun4.m如下:function f=fun4(x);f=sin(x)+3;在命令窗口輸入x0=2;x,y=fminsearch(fun4,x0)即求得在初值2附近的極小點及極小值。§3 約束極值問題帶有約束條件的極值問題稱為約束極值問題,也叫規劃問題。求解
30、約束極值問題要比求解無約束極值問題困難得多。為了簡化其優化工作,可采用以下方法:將約束問題化為無約束問題;將非線性規劃問題化為線性規劃問題,以及能將復雜問題變換為較簡單問題的其它方法。庫恩塔克條件是非線性規劃領域中最重要的理論成果之一,是確定某點為最優點的必要條件,但一般說它并不是充分條件(對于凸規劃,它既是最優點存在的必要條件,同時也是充分條件)。3.1 二次規劃若某非線性規劃的目標函數為自變量的二次函數,約束條件又全是線性的,就稱這種規劃為二次規劃。Matlab中二次規劃的數學模型可表述如下: 這里是實對稱矩陣,是列向量,是相應維數的矩陣。Matlab中求解二次規劃的命令是X,FVAL=
31、QUADPROG(H,f,A,b,Aeq,beq,LB,UB,X0,OPTIONS)X的返回值是向量,FVAL的返回值是目標函數在X處的值。(具體細節可以參看在Matlab指令中運行help quadprog后的幫助)。例8 求解二次規劃 解 編寫如下程序: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)求得 。3.2 罰函數法利用罰函數法,可將非線性規劃問題的求解,轉化為求解一系列無約束極值問題,因而也稱這種方法為序列無約束最小化技術,簡記為 SUMT (Sequential Uncons
32、trained Minization Technique)。罰函數法求解非線性規劃問題的思想是,利用問題中的約束函數作出適當的罰函數,由此構造出帶參數的增廣目標函數,把問題轉化為無約束非線性規劃問題。主要有兩種形式,一種叫外罰函數法,另一種叫內罰函數法,下面介紹外罰函數法。考慮(NL)問題:s.t. 取一個充分大的數 ,構造函數(或這里,Matlab中可以直接利用 、和sum函數。)則以增廣目標函數為目標函數的無約束極值問題的最優解也是原問題的最優解。例9 求下列非線性規劃解 (i)編寫 M 文件 test.m function g=test(x);M=50000;f=x(1)2+x(2)2+
33、8;g=f-M*min(x(1),0)-M*min(x(2),0)-M*min(x(1)2-x(2),0). +M*abs(-x(1)-x(2)2+2);或者是利用Matlab的求矩陣的極小值和極大值函數編寫test.m如下:function g=test(x);M=50000;f=x(1)2+x(2)2+8;g=f-M*sum(min(x'zeros(1,2)-M*min(x(1)2-x(2),0). +M*abs(-x(1)-x(2)2+2);我們也可以修改罰函數的定義,編寫test.m如下:function g=test(x);M=50000;f=x(1)2+x(2)2+8;g=
34、f-M*min(min(x),0)-M*min(x(1)2-x(2),0)+M*abs(-x(1)-x(2)2+2); (ii)在Matlab命令窗口輸入x,y=fminunc('test',rand(2,1)即可求得問題的解。3.3 Matlab求約束極值問題在Matlab優化工具箱中,用于求解約束最優化問題的函數有:fminbnd、fmincon、quadprog、fseminf、fminimax,上面我們已經介紹了函數fmincon和quadprog。3.3.1 fminbnd函數求單變量非線性函數在區間上的極小值 Matlab的命令為X,FVAL = FMINBND(F
35、UN,x1,x2,OPTIONS),它的返回值是極小點和函數的極小值。這里fun 是用M文件定義的函數或Matlab中的單變量數學函數。例10 求函數 的最小值。解 編寫M文件fun5.m function f=fun5(x); f=(x-3)2-1;在Matlab的命令窗口輸入 x,y=fminbnd('fun5',0,5)即可求得極小點和極小值。3.3.2 fseminf函數求 其中都是向量函數;是附加的向量變量,的每個分量都限定在某個區間內。上述問題的Matlab命令格式為X=FSEMINF(FUN,X0,NTHETA,SEMINFCON,A,B,Aeq,Beq)其中FU
36、N用于定義目標函數;X0為的初始值;NTHETA是半無窮約束的個數;函數SEMINFCON 用于定義非線性不等式約束,非線性等式約束和半無窮約束的每一個分量函數,函數SEMINFCON有兩個輸入參量X 和 S,S是推薦的取樣步長,也許不被使用。例11 求函數取最小值時的值,約束為:,解 (1)編寫M文件fun6.m定義目標函數如下:function f=fun6(x,s);f=sum(x-0.5).2);(2)編寫M文件fun7.m定義約束條件如下:function c,ceq,k1,k2,s=fun7(x,s);c=;ceq=;if isnan(s(1,1) s=0.2,0;0.2 0;en
37、d%取樣值w1=1:s(1,1):100;w2=1:s(2,1):100;%半無窮約束k1=sin(w1*x(1).*cos(w1*x(2)-1/1000*(w1-50).2-sin(w1*x(3)-x(3)-1;k2=sin(w2*x(2).*cos(w2*x(1)-1/1000*(w2-50).2-sin(w2*x(3)-x(3)-1;%畫出半無窮約束的圖形plot(w1,k1,'-',w2,k2,'+');(3)調用函數fseminf在Matlab的命令窗口輸入x,y=fseminf(fun6,rand(3,1),2,fun7)即可。函數求解其中。上述問題
38、的Matlab命令為 X=FMINIMAX(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON)例12 求函數族取極大極小值時的值。其中:解 (1)編寫M文件fun8.m定義向量函數如下:function f=fun8(x);f=2*x(1)2+x(2)2-48*x(1)-40*x(2)+304 -x(1)2-3*x(2)2 x(1)+3*x(2)-18 -x(1)-x(2) x(1)+x(2)-8;(2)調用函數fminimaxx,y=fminimax(fun8,rand(2,1) 利用梯度求解約束優化問題例13 已知函數,且滿足非線性約束: 求分析:當使用梯度求解上述問題時,效率更高并且結果更準確。題目中目標函數的梯度為:解 (1)編寫M文件fun9.m定義目標函數及梯度函數:function f,df=fun9(x);f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);df=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+8*x(1)+6*x(2)+1);exp(x(1)*(4*x(2)+4*x(1)+2);(2)編寫M文件fun10.m定義約束條件及約束條件的梯度函數:function c,ceq,dc,dceq=fun10(x);c=x(1)*x(2)-x(1)-x(2)+1.5;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年臨床護理環境試題及答案分析
- 探索中國文化的試題及答案解讀
- 考試準備心理建設執業醫師考試試題及答案
- 藥物生物等效性分析試題及答案2025
- 行政管理專業的語文備考策略與試題答案
- 成本控制風險評估
- 2025年護士實踐題目及答案總結
- 臨床決策支持系統的重要性試題及答案
- 精通行政事務的試題及答案
- 2025年衛生資格考試必考內容與試題答案
- DL∕T 1713-2017 煤中鉀、鈉測定方法
- (正式版)JB∕T 14737-2024 鋁合金深冷循環尺寸穩定化處理工藝規范
- 2023-2024學年廣東省惠州市惠城區八年級(下)期末數學試卷(含解析)
- 合作收款合同范本
- 2024年四川省成都市中考物理試卷附答案
- 2024年保安員證考試題庫完整
- DL-T5190.1-2022電力建設施工技術規范第1部分:土建結構工程
- 教務管理系統調研報告
- 2024年上海市中考英語口語復習-交際應答
- 畢業論文-絞肉機的設計
- TD/T 1044-2014 生產項目土地復墾驗收規程(正式版)
評論
0/150
提交評論