Matlab在最優(yōu)化問題中的應(yīng)用_第1頁
Matlab在最優(yōu)化問題中的應(yīng)用_第2頁
Matlab在最優(yōu)化問題中的應(yīng)用_第3頁
Matlab在最優(yōu)化問題中的應(yīng)用_第4頁
Matlab在最優(yōu)化問題中的應(yīng)用_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、 Matlab在最優(yōu)化問題中的應(yīng)用 優(yōu)化理論是一門實踐性很強的學(xué)科,廣泛應(yīng)用于生產(chǎn)管理、軍事指揮和科學(xué)試驗等各種領(lǐng)域,Matlab優(yōu)化工具箱提供了對各種優(yōu)化問題的一個完整的解決方案。在數(shù)學(xué)上,所所謂優(yōu)化化問題,就就是求解解如下形形式的最最優(yōu)解: Minn fuun (x) Subb. tto C.E. B.CC.其中funn (xx)稱為為目標(biāo)函函數(shù),“Subb. tto”為“subbjecct tto”的縮寫寫,由其其引導(dǎo)的的部分稱稱為約束束條件。C.EE.表表示Coondiitioon EEquaatioons,即即條件方方程,可可為等式式方程,也也可為不不等式方方程。B.CC.表表示Bo

2、ounddaryy Coondiitioons,即即邊界條條件,用用來約束束自變量量的求解解域,以以lbxub的的形式給給出。當(dāng)當(dāng)C.E.為空時時,此優(yōu)優(yōu)化問題題稱為自自由優(yōu)化化或無約約束優(yōu)化化問題;當(dāng)CC.E.不空空時,稱稱為有約束優(yōu)優(yōu)化或強強約束優(yōu)優(yōu)化問題題。在優(yōu)化問題題中,根根據(jù)變量量、目標(biāo)標(biāo)函數(shù)和和約束函函數(shù)的不不同,可可以將問問題大致致分為:線性優(yōu)化化 目標(biāo)函函數(shù)和約約束函數(shù)數(shù)均為線線性函數(shù)數(shù)。二次優(yōu)化化 目標(biāo)函函數(shù)為二二次函數(shù)數(shù),而約約束條件件為線性性方程。線線性優(yōu)化化和二次次優(yōu)化統(tǒng)統(tǒng)稱為簡簡單優(yōu)化化。非線性優(yōu)優(yōu)化 目目標(biāo)函數(shù)數(shù)為非二二次的非非線性函函數(shù),或或約束條條件為非非線性方

3、方程。多目標(biāo)優(yōu)優(yōu)化 目目標(biāo)函數(shù)數(shù)并非一一個時,稱稱為多目目標(biāo)優(yōu)化化問題。本章將對以以上幾類類優(yōu)化問問題在MMatllab中中的實現(xiàn)現(xiàn)作比較較詳細(xì)的的講解。另另外還將將介紹兩兩個利用用優(yōu)化方方法解非非線性方方程的函函數(shù)。通過本章的的介紹,用用戶可以以不必掌掌握艱澀澀的各種種優(yōu)化算算法而輕輕易地解解決一些些常用的的最優(yōu)化化問題了了。10.1 線性規(guī)規(guī)劃問題題線性規(guī)劃問問題即目目標(biāo)函數(shù)數(shù)和約束束條件均均為線性性函數(shù)的的問題。其標(biāo)準(zhǔn)形式式為:min CCxsub. To AAx = b xx0其中C, b, 0Rn,ARmn,均為為數(shù)值矩矩陣,xxRn。若目標(biāo)函數(shù)數(shù)為:mmax Cx,則則轉(zhuǎn)換成成:m

4、iin Cx。標(biāo)準(zhǔn)形式的的線性規(guī)規(guī)劃問題題簡稱為為LP(LLineear Proograammiing)問問題。其其它形式式的線性性規(guī)劃問問題經(jīng)過過適當(dāng)?shù)牡淖儞Q均均可以化化為此種種標(biāo)準(zhǔn)形形。線性性規(guī)劃問問題雖然然簡單,但但在工農(nóng)農(nóng)業(yè)及其其他生產(chǎn)產(chǎn)部門中中應(yīng)用十十分廣泛泛。在Matllab中中,線性性規(guī)劃問問題由llinpprogg函數(shù)求求解。函數(shù):liinprrog %求解解如下形形式的線線性規(guī)劃劃問題: suuch thaat 其中中f, x, b, beqq, llb, ub為為向量,A, Aeq為矩陣。格式:x = llinpprogg(f,A,bb)x = llinpprogg(f,A

5、,bb,Aeeq,bbeq)x = llinpprogg(f,A,bb,Aeeq,bbeq,lb,ub)x = llinpprogg(f,A,bb,Aeeq,bbeq,lb,ub,x0)x = llinpprogg(f,A,bb,Aeeq,bbeq,lb,ub,x0,opttionns)x,fvval = linnproog(.)x,fvval,exiitfllag = linnproog(.)x,fvval,exiitfllag,outtputt = liinprrog(.)x,fvval,exiitfllag,outtputt,laambdda = llinpprogg(.)說明:x =

6、llinpprogg(f,A,bb) 求解問問題 mmin f*x,約約束條件件為A*x0 表示目目標(biāo)函數(shù)數(shù)收斂于于解x處處;=0 表示已已經(jīng)達到到函數(shù)評評價或迭迭代的最最大次數(shù)數(shù); f=-55;-44;-66; A=1 -1 1;33 2 4;33 2 0; b=200;422;300; lbb=zeeross(3,1); xx,fvval,exiitfllag,outtputt,laambdda=linnproog(ff,A,b,llb)Optimmizaatioon ttermminaatedd suucceessffullly.x = 00.00000 155.00000 33.000

7、00fval = -788.00000exitfflagg = 1outpuut = itteraatioons: 6 ccgitteraatioons: 0 aalgooritthm: llipssollambdda = iineqqlinn: 3x11 dooublle eqqlinn: 0 x11 dooublle uppperr: 3x11 dooublle loowerr: 3x11 dooublle laambdda.iineqqlinnans = 00.00000 11.50000 00.50000 laambdda.lloweerans = 11.00000 00.00000

8、00.00000lambdda向量量中的非非零元素素表示哪哪些約束束是主動動約束。本本例中,第第2個和和第3個個不等式式約束,第第1個下下界約束束是主動動約束(如如這些解解位于約約束邊界界上)。exitflag = 1表示過程正常收斂于解x處。例10-22 生產(chǎn)產(chǎn)決策問問題。某廠生產(chǎn)甲甲乙兩種種產(chǎn)品,已知制成一噸產(chǎn)品甲需資源A 3噸,資源B 4m3;制成一噸產(chǎn)品乙需資源A 2噸,資源B 6 m3;資源C 7個單位。若一噸產(chǎn)品甲和乙的經(jīng)濟價值分別為7萬元和5萬元,三種資源的限制量分別為90噸、200 m3和210個單位,試決定應(yīng)生產(chǎn)這兩種產(chǎn)品各多少噸才能使創(chuàng)造的總經(jīng)濟價值最高?解:令生產(chǎn)產(chǎn)產(chǎn)品甲

9、甲的數(shù)量量為x11,生產(chǎn)產(chǎn)產(chǎn)品甲甲的數(shù)量量為x22。由題題意可以以建立下下面的數(shù)數(shù)學(xué)模型型: subb. tto 該模型中要要求目標(biāo)標(biāo)函數(shù)最最大化,需需要按照照Mattlabb的要求求進行轉(zhuǎn)轉(zhuǎn)換,即即目標(biāo)函函數(shù)為 在Matllab中中實現(xiàn): f=-77;-55; A=3 2;44 6;0 77; b=900;2000;2210; lbb=00;0; xx,fvval,exiitfllag,outtputt,laambdda=linnproog(ff,A,b,llb)Optimmizaatioon ttermminaatedd suucceessffullly.x = 144.00000 244

10、.00000fval = -2188.00000exitfflagg = 1outpuut = itteraatioons: 5 ccgitteraatioons: 0 aalgooritthm: llipssollambdda = iineqqlinn: 3x11 dooublle eqqlinn: 0 x11 dooublle uppperr: 2x11 dooublle loowerr: 2x11 dooublle由上可知,生生產(chǎn)甲種種產(chǎn)品114噸、乙乙種產(chǎn)品品24噸噸可使創(chuàng)創(chuàng)造的總總經(jīng)濟價價值最高高為2118萬元元。exxitfflagg = 1表示示過程正正常收斂斂于解xx處。例10

11、-33 廠址址選擇問問題??紤]A、BB、C三三地,每每地都出出產(chǎn)一定定數(shù)量的的原料也也消耗一一定數(shù)量量的產(chǎn)品品(見下下表)。已已知制成成每噸產(chǎn)產(chǎn)品需33噸原料料,各地地之間的的距離為為:AB:1150kkm,AAC:1100kkm,BBC:2200kkm。假假定每萬萬噸原料料運輸11km的的運價是是50000元,每每萬噸產(chǎn)產(chǎn)品運輸輸1kmm的運價價是60000元元。由于于地區(qū)條條件的差差異,在在不同地地點設(shè)廠廠的生產(chǎn)產(chǎn)費用也也不同。問究竟在哪些地方設(shè)廠,規(guī)模多大,才能使總費用最???另外,由于其它條件限制,在B處建廠的規(guī)模(生產(chǎn)的產(chǎn)品數(shù)量)不能超過5萬噸。A、B、CC三地出出產(chǎn)原料料、消耗耗產(chǎn)品

12、情情況表地點年產(chǎn)原料(萬萬噸)年銷產(chǎn)品(萬萬噸)生產(chǎn)費用(萬萬元/萬萬噸)A207150B1613120C240100解:令為由由i地運到到j(luò)地的原原料數(shù)量量(萬噸噸),為為由i地運到到j(luò)地的產(chǎn)產(chǎn)品數(shù)量量(萬噸噸),ii,j = 1,22,3(分分別對應(yīng)應(yīng)A、BB、C三三地)。根根據(jù)題意意,可以以建立問問題的數(shù)數(shù)學(xué)模型型(其中中目標(biāo)函函數(shù)包括括原料運運輸費、產(chǎn)產(chǎn)品運輸輸費和生生產(chǎn)費用用(萬元元):min sub.tto 在Mattlabb中實現(xiàn)現(xiàn): f=755;755;500;500;1000;1100;1500;2440;2210;1200;1660;2220; A=1 -1 1 -1 00

13、 0 3 33 0 0 00 0 -11 1 0 00 1 -1 0 00 3 3 00 0 0 0 -1 11 -11 1 0 00 0 0 33 3 0 0 00 0 0 00 0 0 11 1 0 00; b=200;166;244;5; Aeeq=0 00 0 0 00 0 1 00 1 0 11 0 0 00 0 0 00 0 0 11 0 1 00 1; beeq=7;113; lbb=zeeross(122,1); x,ffvall,exxitfflagg,ouutpuut,llambbda=liinprrog(f,AA,b,Aeqq,beeq,llb)Optimmizaatio

14、on ttermminaatedd suucceessffullly.x = 00.00000 11.00000 00.00000 00.00000 00.00000 00.00000 77.00000 00.00000 00.00000 55.00000 00.00000 88.00000fval = 3.448500e+0003exitfflagg = 1outpuut = itteraatioons: 8 ccgitteraatioons: 0 aalgooritthm: llipssollambdda = iineqqlinn: 4x11 dooublle eqqlinn: 2x11

15、dooublle uppperr: 12xx1 ddoubble loowerr: 12xx1 ddoubble因此,要使使總費用用最小,需需要B地地向A地地運送11萬噸原原料,AA、B、CC三地的的建廠規(guī)規(guī)模分別別為7萬萬噸、55萬噸、88萬噸。最最小總費費用為334855萬元。10.2 非線性性規(guī)劃問問題10.2.1非線線性無約約束規(guī)劃劃問題無約束規(guī)劃劃由3個個功能函函數(shù)fmminbbnd、fminsearch、fminunc實現(xiàn)。10.2.1.11 fmminbbnd函函數(shù)函數(shù):fmminbbnd功能:求取取固定區(qū)區(qū)間內(nèi)單單變量函函數(shù)的最最小值,也也就是一一元函數(shù)數(shù)最小值值問題。數(shù)學(xué)模型

16、: 式中,和為為標(biāo)量,為函數(shù),返回標(biāo)量。格式:x = ffminnbndd(fuun,xx1,xx2)x = ffminnbndd(fuun,xx1,xx2,ooptiionss)x = ffminnbndd(fuun,xx1,xx2,ooptiionss,P11,P22,.)x,fvval = fmiinbnnd(.)x,fvval,exiitfllag = fmiinbnnd(.)x,fvval,exiitfllag,outtputt = fmminbbnd(.)說明:fminbbnd 求取固固定區(qū)間間內(nèi)單變變量函數(shù)數(shù)的最小小值x = ffminnbndd(fuun,xx1,xx2) 返回

17、x1, x22區(qū)間間上fuun參數(shù)數(shù)描述的的標(biāo)量函函數(shù)的最最小值點點x。x = ffminnbndd(fuun,xx1,xx2,ooptiionss) 用opttionns參數(shù)數(shù)指定的的優(yōu)化參參數(shù)進行行最小化化。x = ffminnbndd(fuun,xx1,xx2,ooptiionss,P11,P22,.) 提供另另外的參參數(shù)P11,P22等,傳傳輸給目目標(biāo)函數(shù)數(shù)funn。如果果沒有設(shè)設(shè)置opptioons選選項,則則令opptioons = 。x,fvval = fmiinbnnd(.) 返回解解x處目目標(biāo)函數(shù)數(shù)的值。x,fvval,exiitfllag = fmiinbnnd(.) 返回

18、exxitfflagg值描述述fmiinbnnd函數(shù)數(shù)的退出出條件。x,fvval,exiitfllag,outtputt = fmminbbnd(.) 返回包包含優(yōu)化化信息的的結(jié)構(gòu)輸輸出。fun:需要最最小化的的目標(biāo)函函數(shù)。ffun函函數(shù)需要要輸入標(biāo)標(biāo)量參數(shù)數(shù)x,返返回x處處的目標(biāo)標(biāo)函數(shù)標(biāo)標(biāo)量值ff??梢砸詫uun函數(shù)數(shù)指定為為命令行行,如 x = ffminnbndd (iinliine (sinn (xx*x), x0)同樣,fuun參數(shù)數(shù)可以是是一個包包含函數(shù)數(shù)名的字字符串。對對應(yīng)的函函數(shù)可以以是M文文件、內(nèi)內(nèi)部函數(shù)數(shù)或MEEX文件件。若ffun = myffun, 則x = ffm

19、innbndd(mmyfuun,xx0)其中M文件件函數(shù)mmyfuun.mm必須為為下面的的形式 funnctiion f = myyfunn (xx) f = %計算xx處的函函數(shù)值。optiionss:優(yōu)化化參數(shù)選選項。你你可以用用opttimsset函函數(shù)設(shè)置置或改變變這些參參數(shù)的值值。Optiionss參數(shù)有有以下幾幾個選項項: DDispplayy 顯顯示的水水平。選選擇offf,不顯顯示輸出出;選擇擇iteer,顯示示每一步步迭代過過程的輸輸出;選選擇finnal,顯示示最終結(jié)結(jié)果; MMaxFFunEEvalls 函數(shù)數(shù)評價的的最大允允許次數(shù)數(shù); MMaxIIterr 最最大允許

20、許迭代次次數(shù); TTolXX x處處的終止止容限。exittflaag:描描述退出出條件: 0 表示示目標(biāo)函函數(shù)收斂斂于解xx處; 0 表示示已經(jīng)達達到函數(shù)數(shù)評價或或迭代的的最大次次數(shù); xx,y_minn=ffminnbndd(ssin(x),0,2*ppi)x = 44.71124y_minn = -11.00000或 x,yy_miin=fmiinbnnd(sinn,0,2*ppi)x = 44.71124y_minn = -11.00000例10-55 對邊邊長為33m的正正方形鐵鐵板,在在四個角角處剪去去相等的的小正方方形以制制成方形形無蓋盒盒子,問問如何剪剪法使盒盒子容積積最大?解

21、:設(shè)剪去去的正方方形的邊邊長為xx,則盒盒子容積積為 f (x) = (3-2x)2 x現(xiàn)在要求在在區(qū)間(0, 1.55)上確確定x,使使f (x)最最大化。因因為優(yōu)化化工具箱箱中要求求目標(biāo)函函數(shù)最小小化,所所以需要要對目標(biāo)標(biāo)函數(shù)進進行轉(zhuǎn)換換,即要要求-f (x)最最小化。在Matllab中中實現(xiàn): xx,f_minn=ffminnbndd(-(3-2*xx)22*x,0,1.55)x = 00.50000f_minn = -22.00000或編寫M文文件Exx10005.mm xx,f_minn=ffminnbndd(EEx10005,0,11.5)x = 00.50000f_minn =

22、-22.00000即剪去邊長長為0.5 mm的正方方形,最最大容積積為2 m3。10.2.1.22 fmminssearrch函函數(shù)函數(shù):fmminssearrch功能:求解解多變量量無約束束函數(shù)的的最小值值。數(shù)學(xué)模型: 其中,為向向量,為為一函數(shù),返返回標(biāo)量量。 格格式:xx = fmiinseearcch(ffun,x0)x = ffminnseaarchh(fuun,xx0,ooptiionss)x = ffminnseaarchh(fuun,xx0,ooptiionss,P11,P22,.)x,fvval = fmiinseearcch(.)x,fvval,exiitfllag = f

23、miinseearcch(.)x,fvval,exiitfllag,outtputt = fmminssearrch(.)說明:fminssearrch 求解多多變量無無約束函函數(shù)的最最小值。該該函數(shù)常常用于無無約束非非線性最最優(yōu)化問問題。x = ffminnseaarchh(fuun,xx0) 初值為為x0,求求funn函數(shù)的的局部極極小點xx。x00可以是是標(biāo)量、向向量或矩矩陣。x = ffminnseaarchh(fuun,xx0,ooptiionss) 用opttionns參數(shù)數(shù)指定的的優(yōu)化參參數(shù)進行行最小化化。x = ffminnseaarchh(fuun,xx0,ooptiions

24、s,P11,P22,.) 將問題題參數(shù)PP1、PP2等直直接輸給給目標(biāo)函函數(shù)fuun,將將opttionns參數(shù)數(shù)設(shè)置為為空矩陣陣,作為為opttionns參數(shù)數(shù)的默認(rèn)認(rèn)值。x,fvval = fmiinseearcch(.) 將x處處的目標(biāo)標(biāo)函數(shù)值值返回到到fvaal參數(shù)數(shù)中。x,fvval,exiitfllag = fmiinseearcch(.) 返回exxitfflagg值,描描述函數(shù)數(shù)的退出出條件。x,fvval,exiitfllag,outtputt = fmminssearrch(.) 返回包包含優(yōu)化化信息參參數(shù)ouutpuut的結(jié)結(jié)構(gòu)輸出出。各變量的意意義同前前及下面fmmin

25、uunc函函數(shù)。注意:(1)應(yīng)用用fmiinseearcch函數(shù)數(shù)可能會會得到局局部最優(yōu)優(yōu)解;(2)fmminssearrch函函數(shù)只對對實數(shù)進進行最小小化,即即x必須須由實數(shù)數(shù)組成,ff (xx)函數(shù)數(shù)必須返返回實數(shù)數(shù)。如果果x為復(fù)復(fù)數(shù),則則必須將將它分為為實數(shù)部部和虛數(shù)數(shù)部兩部部分;(3)對于于求解二二次以上上的問題題,fmminuunc函函數(shù)比ffminnseaarchh函數(shù)有有效,但但對于高高度非線線性不連連續(xù)問題題時,ffminnseaarchh函數(shù)更更具穩(wěn)鍵鍵性。(4)fmminssearrch函函數(shù)不適適合求解解平方和和問題,用用lsqqnonnlinn函數(shù)更更好一些些。例10-

26、66 求22x13+4xx1x23-100 x1x2+x22的最小小值。解:在Maatlaab中實實現(xiàn)如下下: f=2*x(11)33+4*x(11)*xx(2)3-10*x(11)*xx(2)+x(2)2; x00=00,0; xx,f_minn=ffminnseaarchh(f,x0)x = 11.00016 0.883355f_minn = -33.32241或在Mattlabb編輯器器中編輯輯M文件件Ex10006.m:functtionn f=Ex10006(x)f=2*xx(1)3+4*xx(1)*x(2)3-110*xx(1)*x(2)+x(22)22;x0=00,0;命令窗口運

27、運行: xx,f_minn=ffminnseaarchh(EEx10006,x0)x = 11.00016 0.883355f_minn = -33.32241運行后結(jié)果果一致。10.2.1.33 fmminuunc函函數(shù)函數(shù):fmminuunc功能:求多多變量無無約束函函數(shù)的最最小值。數(shù)學(xué)模型: 其中,為向向量,為為一函數(shù)數(shù),返回回標(biāo)量。 格格式:xx = fmiinunnc(ffun,x0)x = ffminnuncc(fuun,xx0,ooptiionss)x = ffminnuncc(fuun,xx0,ooptiionss,P11,P22,.)x,fvval = fmiinunnc(.

28、)x,fvval,exiitfllag = fmiinunnc(.)x,fvval,exiitfllag,outtputt = fmminuunc(.)x,fvval,exiitfllag,outtputt,grrad = fmiinunnc(.)x,fvval,exiitfllag,outtputt,grrad,hesssiaan = ffminnuncc(.)說明:fminuunc 給定初初值,求求多變量量標(biāo)量函函數(shù)的最最小值。常常用于無無約束非非線性最最優(yōu)化問問題。x = ffminnuncc(fuun,xx0) 給定初初值x00,求ffun函函數(shù)的局局部極小小點x。xx0可以以是標(biāo)量量

29、、向量量或矩陣陣。x = ffminnuncc(fuun,xx0,ooptiionss) 用opttionns參數(shù)數(shù)指定的的優(yōu)化參參數(shù)進行行最小化化。x = ffminnuncc(fuun,xx0,ooptiionss,P11,P22,.) 將問題題參數(shù)PP1、PP2等直直接輸給給目標(biāo)函函數(shù)fuun,將將opttionns參數(shù)數(shù)設(shè)置為為空矩陣陣,作為為opttionns參數(shù)數(shù)的默認(rèn)認(rèn)值。x,fvval = fmiinunnc(.) 將x處處的目標(biāo)標(biāo)函數(shù)值值返回到到fvaal參數(shù)數(shù)中。x,fvval,exiitfllag = fmiinunnc(.) 返回exxitfflagg值,描描述函數(shù)數(shù)的

30、退出出條件。x,fvval,exiitfllag,outtputt = fmminuunc(.) 返回包包含優(yōu)化化信息參參數(shù)ouutpuut的結(jié)結(jié)構(gòu)輸出出。x,fvval,exiitfllag,outtputt,grrad = fmiinunnc(.) 將解xx處fuun函數(shù)數(shù)的梯度度值返回回到grrad參參數(shù)中。x,fvval,exiitfllag,outtputt,grrad,hesssiaan = ffminnuncc(.) 將解xx處目標(biāo)標(biāo)函數(shù)的的Hesssiaan矩陣陣信息返返回到hhesssiann參數(shù)中中。fun變變量:為為目標(biāo)函函數(shù)。需需要最小小化的目目標(biāo)函數(shù)數(shù)。fuun函數(shù)數(shù)

31、需要輸輸入向量量參數(shù)xx,返回回x處的的目標(biāo)函函數(shù)標(biāo)量量值f??煽梢詫fun函函數(shù)指定定為命令令行,如如x = ffminnuncc(innlinne(norrm(xx)22),x0)同樣,fuun函數(shù)數(shù)可以是是一個包包含函數(shù)數(shù)名的字字符串。對對應(yīng)的函函數(shù)可以以是M文文件、內(nèi)內(nèi)部函數(shù)數(shù)或MEEX文件件。若ffun = myffun,則x = ffminnuncc(mmyfuun,xx0)其中M文件件函數(shù)mmyfuun.mm必須有有下面的的形式:functtionn f = mmyfuun (x)f = %計計算x處處的函數(shù)數(shù)值。若fun函函數(shù)的梯梯度可以以算得,且且opttionns.GGr

32、addObjj設(shè)為on(用下下式設(shè)定定) opttionns = opptimmsett (GraadObbj, on)則fun函函數(shù)必須須返回解解x處的的梯度向向量g到到第二個個輸出變變量中去去。注意意,當(dāng)被被調(diào)用的的funn函數(shù)只只需要一一個輸出出變量時時(如算算法只需需要目標(biāo)標(biāo)函數(shù)的的值而不不需要其其梯度值值時),可可以通過過核對nnarggoutt的值來來避免計計算梯度度值functtionnf, g = myffun (x)f = %計計算x處處的函數(shù)數(shù)值if naargoout 11 %調(diào)調(diào)用fuun函數(shù)數(shù)并要求求有兩個個輸出變變量 g = %計算xx處的梯梯度值end若Hesss

33、iann矩陣可可以求得得,并且且opttionns. Hesssiaan設(shè)為為on,即 ooptiionss = opttimsset (Hesssiaan, on)則fun函函數(shù)必須須返回解解x處的的Hesssiaan對稱稱矩陣HH到第三三個輸出出變量中中去。注注意,當(dāng)當(dāng)被調(diào)用用的fuun函數(shù)數(shù)只需要要一個或或兩個輸輸出變量量時(如如算法只只需要目目標(biāo)函數(shù)數(shù)的值ff和梯度度值g而而不需要要Hesssiaan矩陣陣H時),可可以通過過核對nnarggoutt的值來來避免計計算Heessiian矩矩陣functtionnf, g = myffun (x)f = %計計算x處處的函數(shù)數(shù)值if na

34、argoout 11 %調(diào)調(diào)用fuun函數(shù)數(shù)并要求求有兩個個輸出變變量 g = %計算xx處的梯梯度值 if narrgouut 2 H = %計算xx處的HHesssiann矩陣endoptiionss變量:優(yōu)化參參數(shù)選項項??梢砸酝ㄟ^ooptiimseet函數(shù)數(shù)設(shè)置或或改變這這些參數(shù)數(shù)。其中中有的參參數(shù)適用用于所有有的優(yōu)化化算法,有有的則只只適用于于大型優(yōu)優(yōu)化問題題,另外外一些則則只適用用于中型型問題。首先描述適適用于大大型問題題的選項項。這僅僅僅是一一個參考考,因為為使用大大型問題題算法有有一些條條件。對對于fmminuunc函函數(shù)來說說,必須須提供梯梯度信息息 LarrgeSScall

35、e 當(dāng)設(shè)為為on時,使使用大型型算法,若若設(shè)為offf則使用用中型問問題的算算法適用于大型型和中型型算法的的參數(shù): Diaagnoostiics 打印最最小化函函數(shù)的診診斷信息息 Dissplaay 顯顯示水平平。選擇擇offf,不顯顯示輸出出;選擇擇iteer,顯示示每一步步迭代過過程的輸輸出;選選擇finnal,顯示示最終結(jié)結(jié)果 GraadObbj 用用戶定義義的目標(biāo)標(biāo)函數(shù)的的梯度。對對于大型型問題此此參數(shù)是是必選的的,對于于中型問問題則是是可選項項 MaxxFunnEvaals 函數(shù)評評價的最最大次數(shù)數(shù) MaxxIteer 最最大允許許迭代次次數(shù) TollFunn 函數(shù)數(shù)值的終終止容限限

36、 TollX xx處的終終止容限限只適用于大大型算法法的參數(shù)數(shù): Hesssiaan 用用戶定義義的目標(biāo)標(biāo)函數(shù)的的Hesssiaan矩陣陣 HesssPaatteern 用于有有限差分分的Heessiian矩矩陣的稀稀疏形式式。若不不方便求求funn函數(shù)的的稀疏HHesssiann矩陣HH,可以以通過用用梯度的的有限差差分獲得得的H的的稀疏結(jié)結(jié)構(gòu)(如如非零值值的位置置等)來來得到近近似的HHesssiann矩陣HH。若連連矩陣的的稀疏結(jié)結(jié)構(gòu)都不不知道,則則可以將將HesssPaatteern設(shè)設(shè)為密集集矩陣,在在每一次次迭代過過程中,都都將進行行密集矩矩陣的有有限差分分近似(這這是默認(rèn)認(rèn)設(shè)置)

37、。這這將非常常麻煩,所所以花一一些力氣氣得到HHesssiann矩陣的的稀疏結(jié)結(jié)構(gòu)還是是值得的的 MaxxPCGGIteer PPCG迭迭代的最最大次數(shù)數(shù) PreeconndBaandWWidtth PPCG前前處理的的上帶寬寬,默認(rèn)認(rèn)時為零零。對于于有些問問題,增增加帶寬寬可以減減少迭代代次數(shù) TollPCGG PCCG迭代代的終止止容限 TyppicaalX 典型xx值只適用于中中型算法法的參數(shù)數(shù): DerrivaativveChheckk 對用用戶提供供的導(dǎo)數(shù)數(shù)和有限限差分求求出的導(dǎo)導(dǎo)數(shù)進行行對比 DifffMaaxChhangge 變變量有限限差分梯梯度的最最大變化化 DifffMii

38、xChhangge 變變量有限限差分梯梯度的最最小變化化 LinneSeearcchTyype 一維搜搜索算法法的選擇擇exittflaag變量量:描述述退出條條件: 0 表示目目標(biāo)函數(shù)數(shù)收斂于于解x處處 0 表示已已經(jīng)達到到函數(shù)評評價或迭迭代的最最大次數(shù)數(shù) x00=11,1; xx,fvval=fmminuunc(Exx100071,x0)Warniing: Grradiientt muust be proovidded forr trrustt-reegioon mmethhod; ussingg liine-seaarchh meethood iinstteadd. In E:mattl

39、abb6p11tooolbboxopttimfmiinunnc.mm att liine 2111 Optiimizzatiion terrminnateed ssucccesssfullly: Searrch dirrecttionn leess thaan 22*opptioons.TollXx = 1.00e-0008 * -00.75591 0.226655fval = 1.339533e-0016下面用提供供的梯度度g最小小化函數(shù)數(shù),修改改M文件件為Exx100072.m:functtionn ff,g=Exx100072(x)f=3*xx(1)2+2*xx(1)*x(2)+x(22

40、)22;if naargoout1 gg(1)=6*x(11)+22*x(2); gg(2)=2*x(11)+22*x(2);end下面通過將將優(yōu)化選選項結(jié)構(gòu)構(gòu)opttionns.GGraddObjj設(shè)置為為on來得到到梯度值值。 opptioons=opttimsset(GrradOObj,oon); x00=11,1; xx,fvval=fmminuunc(Exx100072,x0,opttionns)Optimmizaatioon ttermminaatedd suucceessffullly: Firsst-oordeer ooptiimallityy leess thaan OOPT

41、IIONSS.ToolFuun, andd noo neegattivee/zeero currvatturee deeteccteddx = 1.00e-0015 * 00.11110 -0.888822fval = 6.228622e-0031例10-88 求函函數(shù)f (x) = e xx1(44x12+2xx22+4xx1x2+2xx2+1)的最小小值。解:在Maatlaab中實實現(xiàn):x,fvaal,eexittflaag,ooutpput=fmminuunc(exxp(xx(1)*(4*xx(1)2+2*xx(2)2+4*xx(1)*x(2)+2*xx(2)+1),-1,1)Warni

42、ing: Grradiientt muust be proovidded forr trrustt-reegioon mmethhod; ussingg liine-seaarchh meethood iinstteadd. In E:mattlabb6p11tooolbboxopttimfmiinunnc.mm att liine 2111 Optiimizzatiion terrminnateed ssucccesssfullly: Currrentt seearcch ddireectiion is a ddesccentt diirecctioon, andd maagniitudde

43、 oof direectiionaal dderiivattivee inn seearcch ddireectiion lesss tthann 2*opttionns.TTolFFunx = 00.50000 -1.000000fval = 1.330288e-0010exitfflagg = 1outpuut = iiterratiionss: 77 funncCoountt: 440 sttepssizee: 11 ffirsstorrderroptt: 88.19998ee-0004 alggoriithmm: meddiumm-sccalee: QQuassi-NNewtton l

44、inne ssearrch例10-99 求無無約束非非線性問問題 f (x) = 1100 (x22-x12)2+(11-x1)2 xx0 = -1.22, 11解:在Maatlaab中實實現(xiàn): x00=-1.22,1; xx,fvval=fmminuunc(1000*(x(22)-xx(1)2)2+(1-x(11)2,x0)Warniing: Grradiientt muust be proovidded forr trrustt-reegioon mmethhod; ussingg liine-seaarchh meethood iinstteadd. In E:mattlabb6p11t

45、ooolbboxopttimfmiinunnc.mm att liine 2111Optimmizaatioon ttermminaatedd suucceessffullly: Currrentt seearcch ddireectiion is a ddesccentt diirecctioon, andd maagniitudde oof direectiionaal dderiivattivee inn seearcch ddireectiion lesss tthann 2*opttionns.TTolFFunx = 11.00000 1.000000fval = 1.991166e

46、-001110.2.2 二二次規(guī)劃劃數(shù)學(xué)模型:如果某某非線性性規(guī)劃的的目標(biāo)函函數(shù)為自自變量的的二次函函數(shù),約約束條件件全是線線性函數(shù)數(shù),就稱稱這種規(guī)規(guī)劃為二二次規(guī)劃劃。其數(shù)數(shù)學(xué)模型型為 其中,和和為矩陣陣,和為向量量。函數(shù):quuadpprogg功能:求解解二次規(guī)規(guī)劃問題題。格式:x = qquaddproog(HH,f,A,bb)x = qquaddproog(HH,f,A,bb,Aeeq,bbeq)x = qquaddproog(HH,f,A,bb,Aeeq,bbeq,lb,ub)x = qquaddproog(HH,f,A,bb,Aeeq,bbeq,lb,ub,x0)x = qquadd

47、proog(HH,f,A,bb,Aeeq,bbeq,lb,ub,x0,opttionns)x = qquaddproog(HH,f,A,bb,Aeeq,bbeq,lb,ub,x0,opttionns,pp1,pp2,.)x,fvval = quaadprrog(.)x,fvval,exiitfllag = quaadprrog(.)x,fvval,exiitfllag,outtputt = quuadpprogg(.)x,fvval,exiitfllag,outtputt,laambdda = qquaddproog(.)說明:x = qquaddproog(HH,f,A,bb) 返回向向量x

48、,最最小化函函數(shù)1/2*xx*H*x+ff*x,其其約束條條件為AA*x=b。x = qquaddproog(HH,f,A,bb,Aeeq,bbeq) 仍求上上面的解解,但添添加了等等式約束束條件AAeq*x = beeq。x = qquaddproog(HH,f,A,bb,Aeeq,bbeq,lb,ub) 定義設(shè)設(shè)計變量量的下界界lb和和上界uub,使使得lbb=xx H=1 -1;-1 2; f=-22;-66; A=1 1;-1 22;2 1; b=2;2;33; lbb=zeeross(2,1); xx,fvval,exiitfllag,outtputt,laambdda=quaadp

49、rrog(H,ff,A,b,llb)Warniing: Laargee-sccalee meethood ddoess noot ccurrrenttly sollve thiis pprobblemm foormuulattionn,switcchinng tto mmediium-scaale metthodd. In E:mattlabb6p11tooolbboxopttimquaadprrog.m aat llinee 2113Optimmizaatioon ttermminaatedd suucceessffullly.x = 00.66667 11.33333fval = -88.

50、22222exitfflagg = 1outpuut = iiterratiionss: 33 alggoriithmm: meddiumm-sccalee: aactiive-sett ffirsstorrderroptt: cgiiterratiionss: lambdda = loowerr: 2x11 dooublle uppperr: 2x11 dooublle eqqlinn: 0 x11 dooublle inneqllin: 33x1 douublee laambdda.lloweerans = 00 0 laambdda.iineqqlinnans = 33.11111 00

51、.44444 010.2.3 有有約束規(guī)規(guī)劃函數(shù):fmminccon功能:求多多變量有有約束非非線性函函數(shù)的最最小值。數(shù)學(xué)模型: 其中,和為向量量,和為矩陣陣,和為函數(shù)數(shù),返回回標(biāo)量。,和可以是非線性函數(shù)。 格格式:xx = fmiincoon(ffun,x0,A,bb)x = ffminnconn(fuun,xx0,AA,b,Aeqq,beeq)x = ffminnconn(fuun,xx0,AA,b,Aeqq,beeq,llb,uub)x = ffminnconn(fuun,xx0,AA,b,Aeqq,beeq,llb,uub,nnonllconn)x = ffminnconn(fuun,

52、xx0,AA,b,Aeqq,beeq,llb,uub,nnonllconn,opptioons)x = ffminnconn(fuun,xx0,AA,b,Aeqq,beeq,llb,uub,nnonllconn,opptioons,P1,P2, .)x,fvval = fmiincoon(.)x,fvval,exiitfllag = fmiincoon(.)x,fvval,exiitfllag,outtputt = fmminccon(.)x,fvval,exiitfllag,outtputt,laambdda = ffminnconn(.)x,fvval,exiitfllag,outtput

53、t,laambdda,ggradd = fmminccon(.)x,fvval,exiitfllag,outtputt,laambdda,ggradd,heessiian = fmiincoon(.)說明:fminccon 求多變變量有約約束非線線性函數(shù)數(shù)的最小小值。該該函數(shù)常常用于有有約束非非線性優(yōu)優(yōu)化問題題。x = ffminnconn(fuun,xx0,AA,b) 給定初初值x00,求解解funn函數(shù)的的最小值值點x。ffun函函數(shù)的約約束條件件為A*x=b,xx0可以以是標(biāo)量量、向量量或矩陣陣。x = ffminnconn(fuun,xx0,AA,b,Aeqq,beeq) 最小化化fu

54、nn函數(shù),約約束條件件為A*x=b和AAeq*x = beeq。若若沒有不不等式存存在,則則設(shè)置AA = ,b = 。x = ffminnconn(fuun,xx0,AA,b,Aeqq,beeq,llb,uub) 定義設(shè)設(shè)計變量量x的下下界lbb和上界界ub,使使得lbb=xx=uub。若若無等式式存在,則則令A(yù)eeq = ,bbeq = 。x = ffminnconn(fuun,xx0,AA,b,Aeqq,beeq,llb,uub,nnonllconn) 在上面面的基礎(chǔ)礎(chǔ)上,在在nonnlcoon參數(shù)數(shù)中提供供非線性性不等式式c (x)或或等式cceq (x)。fmminccon函函數(shù)要求求

55、c (x)=0且且ceqq (xx) = 0。當(dāng)當(dāng)無邊界界存在時時,令llb = 和(或或)ubb = 。x = ffminnconn(fuun,xx0,AA,b,Aeqq,beeq,llb,uub,nnonllconn,opptioons) 用opttionns參數(shù)數(shù)指定的的參數(shù)進進行最小小化。x = ffminnconn(fuun,xx0,AA,b,Aeqq,beeq,llb,uub,nnonllconn,opptioons,P1,P2, .) 將問題題參數(shù)PP1,PP2等直直接傳遞遞給函數(shù)數(shù)funn和noonlccon。若若不需要要參數(shù)A,b,Aeqq,beqq,lb,ub,nonnlc

56、oon和opttionns,將它們們設(shè)置為為空矩陣陣。x,fvval = fmiincoon(.) 返回解解x處的的目標(biāo)函函數(shù)值。x,fvval,exiitfllag = fmiincoon(.) 返回exxitfflagg參數(shù),描描述計算算的退出出條件。x,fvval,exiitfllag,outtputt = fmminccon(.) 返回包包含優(yōu)化化信息的的結(jié)構(gòu)輸輸出ouutpuut。x,fvval,exiitfllag,outtputt,laambdda = ffminnconn(.) 返回解解x處包包含Laagraangee乘子的的lammbdaa參數(shù)。x,fvval,exiitfl

57、lag,outtputt,laambdda,ggradd = fmminccon(.) 返回解解x處ffun函函數(shù)的梯梯度。x,fvval,exiitfllag,outtputt,laambdda,ggradd,heessiian = fmiincoon(.) 返回解解x處ffun函函數(shù)的HHesssiann矩陣。nonllconn參數(shù)該參數(shù)計算算非線性性不等式式約束cc (xx)2 %被調(diào)調(diào)用的nnonllconn函數(shù),要要求有44個輸出出變量 GGC = %不不等式的的梯度 GGCeqq = %等式的的梯度end若nonllconn函數(shù)返返回m元元素的向向量c和和長度為為n的xx,則cc

58、(xx)的梯梯度GCC是一個個nm的矩矩陣,其其中GCC(i, jj)是cc (jj)對xx (ii)的偏偏導(dǎo)數(shù)。同同樣,若若ceqq是一個個p元素素的向量量,則cceq (x)的梯度度GCeeq是一一個np的矩矩陣,其其中GCCeq(i, jj)是cceq (j)對x (i)的偏導(dǎo)導(dǎo)數(shù)。其它參數(shù)意意義同前前。注意:(1)大型型優(yōu)化問問題: (11.1)使使用大型型算法,必必須在ffun函函數(shù)中提提供梯度度信息(ooptiionss.GrradOObj設(shè)設(shè)置為on)。如如果沒有有梯度信信息,則則將給出出警告信信息。 Fminnconn函數(shù)允允許g (x)為一近近似梯度度,但使使用真正正的梯度度

59、將使優(yōu)優(yōu)化過程程更具穩(wěn)穩(wěn)鍵性。 (11.2)當(dāng)對矩陣的二階導(dǎo)數(shù)(即Hessian矩陣)進行計算后,用該函數(shù)求解大型問題將更有效。但不需要求得真正的Hessian矩陣,如果能提供Hessian矩陣稀疏結(jié)構(gòu)的信息(用options參數(shù)的HessPattern屬性),則fmincon函數(shù)可以算得Hessian矩陣的稀疏有限差分近似。 (11.3)若若x0不不是嚴(yán)格格可行的的,則ffminnconn函數(shù)選選擇一個個新的嚴(yán)嚴(yán)格可行行初始點點。 (11.4)若若x的某某些元素素沒有上上界或下下界,則則fmiincoon函數(shù)數(shù)更希望望對應(yīng)的的元素設(shè)設(shè)置為IInf(對對于上界界)或-Inf(對對于下界界),而

60、而不希望望強制性性地給上上界賦一一個很大大的值,給給下界一一個很小小的負(fù)值值。 (11.5)線線性約束束最小化化課題中中也有幾幾個問題題需要注注意: Aeqq矩陣中中若存在在密集列列或近密密集列(AA deensee orr faairlly ddensse ccoluumn),會會導(dǎo)致滿滿秩并使使計算費費時; fmiincoon函數(shù)數(shù)剔除AAeq中中線性相相關(guān)的行行。此過過程需要要進行反反復(fù)的因因子分解解,因此此,如果果相關(guān)行行很多的的話,計計算將是是一件很很費時的的事情; 每一次次迭代都都要用下下式進行行稀疏最最小二乘乘求解 其其中為前前提條件件的Chholeeskyy(喬累累斯基)因因子

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論