第9章最優(yōu)化計(jì)算_第1頁
第9章最優(yōu)化計(jì)算_第2頁
第9章最優(yōu)化計(jì)算_第3頁
第9章最優(yōu)化計(jì)算_第4頁
第9章最優(yōu)化計(jì)算_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第9章 最優(yōu)化計(jì)算 9.1 無約束優(yōu)化問題 9.2 約束優(yōu)化問題 9.3 GUI優(yōu)化工具 9.4 綜合實(shí)例 9.1 無約束優(yōu)化問題 9.1.1 一元函數(shù)最小值 格式 x = fminbnd(fun,x1,x2) x = fminbnd(fun,x1,x2,options) x,fval,exitflag,output = fminbnd() 說明 fun:目標(biāo)函數(shù)的表達(dá)式字符串、MATLAB自定義函數(shù)的函數(shù)柄或句柄 函數(shù)。 x1、x2:自變量x在區(qū)間的左右端點(diǎn)。 options:指定優(yōu)化參數(shù)選項(xiàng),用來選擇允許計(jì)算誤差、迭代次數(shù)、算法等。 x:返回區(qū)間上函數(shù)fun的最小值點(diǎn)。若exitflag0

2、,則x為解;否則,x不是 最終解,它只是迭代終止時(shí)優(yōu)化過程的值。 fval:為目標(biāo)函數(shù)最優(yōu)值,即fval= f *x。 exitflag:返回算法的終止標(biāo)志,若exitflag=1表示目標(biāo)函數(shù)收斂于解x處, 說明優(yōu)化收斂到局部最優(yōu)解;exitflag=0表示已經(jīng)達(dá)到函數(shù)評價(jià)或迭代的最 大次數(shù),說明優(yōu)化失??;exitflag=-1表示算法終止、輸出, exitflag=-2表示 優(yōu)化過程超出區(qū)間范圍,exitflag x,fval,exitflag,output=fminbnd(exp(x)-sin(x)-1),-1,1) x = 4.3009e-06 fval = 9.2486e-12 exi

3、tflag = 1 output = iterations: 10 funcCount: 11 algorithm: golden section search, parabolic interpolation message: 1x111 char x y = esinx 1 9.1.2 多元函數(shù)最小值 1利用fminsearch函數(shù)求最小值 格式 x = fminsearch(fun,x0) x = fminsearch(fun,x0,options) x,fval,exitflag,output = fminsearch() 說明 fun:目標(biāo)函數(shù)的表達(dá)式字符串、MATLAB自定義函數(shù)的

4、函數(shù)柄、句柄函 數(shù)或內(nèi)聯(lián)函數(shù);x0:初始值;options:指定優(yōu)化參數(shù)選項(xiàng)。 x:為最優(yōu)解。fval:為目標(biāo)函數(shù)最優(yōu)值,即fval= f *x。 exitflag:返回算法的終止標(biāo)志,若exitflag=1表示目標(biāo)函數(shù)收斂于解x處,說明 優(yōu)化收斂到局部最優(yōu)解;exitflag=0表示已經(jīng)達(dá)到函數(shù)評價(jià)或迭代的最大次數(shù), 說明優(yōu)化失?。籩xitflag=-1表示算法終止、輸出,說明沒有收斂到局部最優(yōu)解x。 output:為輸出優(yōu)化信息,iterations表示優(yōu)化過程的迭代次數(shù),funcCount表示 函數(shù)評價(jià)次數(shù),algorithm表示采用Nelder-Mead型簡單搜尋法的算法, messa

5、ge表示優(yōu)化退出信息。 【例9-2】求一元函數(shù) 的最小值。 x,fval=fminsearch(x3-2*x2-6*x+5,0) %初始點(diǎn)設(shè)為初始點(diǎn)設(shè)為0 x = 2.2301 fval = -7.2362 32 yx2x6x+5 【例【例9-3】求二元函數(shù)】求二元函數(shù) 的最小值。的最小值。 323 112122 = x +2x x6x x +xy (3)利用句柄。)利用句柄。 x,fval=fminsearch(x) x(1)3+2*x(1)*x(2)2- 6*x(1)*x(2)+x(2)3, 0,0) x = 1.1325 0.9288 fval = 2.1035 格式 x = fminu

6、nc(fun,x0) x = fminunc(fun,x0,options) x,fval,exitflag,output,grad,hessian = fminunc() 說明 fun:目標(biāo)函數(shù)的表達(dá)式字符串、MATLAB自定義函數(shù)的函數(shù)柄、句柄函數(shù)或 內(nèi)聯(lián)函數(shù);x0:初始值;options:指定優(yōu)化參數(shù)選項(xiàng)。 x:為指定初始點(diǎn)x0處的最小值點(diǎn)。fval:為目標(biāo)函數(shù)最優(yōu)值,即fval= f *x。 exitflag:=1,梯度在函數(shù)值最終允許誤差內(nèi); =2,在變量x的最終允許誤差內(nèi); =3,目標(biāo)函數(shù)值在函數(shù)值最終允許誤差內(nèi); =5,預(yù)測目標(biāo)函數(shù)下降小于在函數(shù)值最終允許誤差內(nèi); =0,表示已經(jīng)

7、達(dá)到函數(shù)評價(jià)或迭代的最大次數(shù),說明優(yōu)化失敗; =-1,表示算法終止、輸出,說明沒有收斂到局部最優(yōu)解x處; =-3,表示目標(biāo)函數(shù)無界。 正值都表示收斂到局部最優(yōu)解x處。 output:Iterations表示優(yōu)化過程的迭代次數(shù); funcCount表示函數(shù)評價(jià)次數(shù); stepsize表示最終步長的大小 (只用在中型算法); firstorderopt表示一階優(yōu)性的度量,解x處梯度的范數(shù); algorithm表示所采用的優(yōu)化算法; message表示優(yōu)化退出信息。 grad:目標(biāo)函數(shù)在最優(yōu)解x點(diǎn)的梯度值。 hessian:目標(biāo)函數(shù)在最優(yōu)解x點(diǎn)的Hessian矩陣值。 2利用函數(shù)fminunc求最小

8、值 【例9-4】求函數(shù) 的最小值。 22 11212 y = xx x +6x +x fun5=inline(x(1)2-x(1)*x(2)+6*x(1)+x(2)2); x0=-1,-1; x,fval,exitflag,output,grad,hessian=fminunc(fun5,x0) x = -4.0000 -2.0000 fval = -12.0000 exitflag = 1 output = iterations: 7 funcCount: 24 stepsize: 1 firstorderopt: 4.5299e-06 algorithm: medium-scale: Qu

9、asi-Newton line search message: 1x436 char grad = 1.0e-05 * 0.0775 -0.4530 hessian = 2.0000 -1.0000 -1.0000 2.0000 (1)常用的幾個(gè)參數(shù)。 Display:顯示水平,取值為“off”時(shí),不顯示輸出;取值為“iter”時(shí),顯 示迭代次數(shù);取值為“final”時(shí),顯示最終輸出(默認(rèn)值);取值為“notify” 表示在函數(shù)不收斂時(shí)顯示輸出。 MaxFunEvals:允許函數(shù)估值的最大次數(shù),取值為正整數(shù)。 MaxIter:允許迭代的最大次數(shù),取值為正整數(shù)。 TolCon:約束變量最終允許誤

10、差。 TolX:變量x最終允許誤差。 TolFun:函數(shù)值最終允許誤差。 3控制參數(shù)options的設(shè)置 (2)參數(shù)options選項(xiàng)是采用optimset函數(shù)來設(shè)置的。 格式 options = optimset(optimfun) 說明 創(chuàng)建一個(gè)含所有參數(shù)名,并與優(yōu)化函數(shù)optimfun相關(guān)的默認(rèn)值選項(xiàng)結(jié)構(gòu) option。 例如,options = optimset(fminsearch)返回一個(gè)最優(yōu)化的選項(xiàng)結(jié)構(gòu),它包含 所有的參數(shù)名和默認(rèn)值,相當(dāng)于優(yōu)化函數(shù)fminsearch 。 格式 options = optimset(param1,value1,param2,value2,) 說明

11、 創(chuàng)建一個(gè)名稱為options的優(yōu)化選項(xiàng)參數(shù),其中param1, param2為優(yōu)化 參數(shù)名,value1,value2為指定的參數(shù)對應(yīng)的指定值,所有未指定的參數(shù)取默 認(rèn)值。 4fminunc的算法說明 (1)有大型優(yōu)化和中型優(yōu)化算法,由options中的參數(shù)LargeScale 控制。 LargeScale=on(默認(rèn)值),使用大型算法。 LargeScale=off(默認(rèn)值),使用中型算法。 (2)為中型優(yōu)化算法的搜索方向提供4種算法,由options中的參 數(shù)HessUpdate控制。 HessUpdate=bfgs(默認(rèn)值),擬牛頓法的BFGS公式。 HessUpdate=dfp(默認(rèn)

12、值),擬牛頓法的DFP公式。 HessUpdate=steepdesc,快速下降法。 9.2 約束優(yōu)化問題 9.2.1 線性規(guī)劃問題 格式 x = linprog(f,A,b) %不等式約束的目標(biāo)函數(shù)f的最優(yōu)解x x=linprog(f,A,b,Aeq,beq) %含有等式約束。若沒有不等式約束%,則 A= ,b= x=linprog(f,A,b,Aeq,beq,lb,ub) %指定x的范圍。若沒有等式約束% , 則Aeq= ,beq= x = linprog(f,A,b,Aeq,beq,lb,ub,x0) %設(shè)置初值x0 x = linprog(f,A,b,Aeq,beq,lb,ub,x0,

13、options) % options為指定的優(yōu)化參數(shù) x,fval,exitflag,output, lambda = linprog() 說明 x:為最優(yōu)解。fval:為目標(biāo)函數(shù)最優(yōu)值,即fval= f *x。 exitflag:=1, 函數(shù)收斂于解x; =0,迭代次數(shù)超過最大允許值; =-2,目標(biāo)函數(shù)無最優(yōu)可行解; =-3,目標(biāo)函數(shù)無界; =-4,在算法執(zhí)行過程中遇到非數(shù)值; =-5,對原問題與對偶問題都無可行解; =-7,當(dāng)前點(diǎn)的搜索方向的幅度太小,迭代無法繼續(xù)。 output:iterations表示優(yōu)化過程的迭代次數(shù),algorithm表示優(yōu) 化所采用的運(yùn)算規(guī)則,cgiteratio

14、ns表示共軛梯度迭代次數(shù), message表示退出信息,constrviolation表示約束函數(shù)的最大 值,firstorderopt表示一階最優(yōu)性度量。 lambda:ineqlin是線性不等式約束條件,eqlin是線性等式約束條件, upper是變量的上界約束條件,lower是變量的下界約束條件。它們的返回 值分別表示相應(yīng)的約束條件在優(yōu)化過程中是否有效。lambda中的非零元 素表示對應(yīng)的約束是有效約束。 【例9-5】 求下列優(yōu)化問題: 目標(biāo)函數(shù) : min 123 zx3x6x 123 123 123 123 x -2x +x3 3x +2x +5x12 2x +x +4x9 x ,x

15、 ,x0 約束條件 : f=-1; -3; -6 ; A=1 -2 1;3 2 5 ; b=3; 12 ; Aeq=2 1 4 ; beq=9; lb=0;0;0 ; x,fval,exitflag,output,lambda=linprog(f,A,b,Aeq,beq,lb) 運(yùn)行結(jié)果如下: Optimization terminated. x = 0.0000 1.0000 2.0000 fval = -15.0000 9.2.2 非線性規(guī)劃問題 格式 x=fmincon(fun,x0,A,b) %含不等約束條件、目標(biāo)函數(shù)fun以初始值 %x0 時(shí)的最優(yōu)解x x=fmincon(fun,x

16、0,A,b,Aeq,beq) %含等式約束條件。若沒有不等式%約束,則 A= ,b= x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub) %指定x的范圍。若沒有等式約%束 ,則 Aeq= ,beq= x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) % % 指含非線性不等約束,約束,lb、ub滿足, %若沒有界,可設(shè)lb= ,ub= 。 % nonlcon的作用是通過接受的向量x來計(jì)算非線性不等約束和等式 %約束分別在x處的估計(jì)C和Ceq,通過指定函數(shù)柄來使用 %例如若寫成如下形式: % x = fmincon(fun,x0,A,b,A

17、eq,beq,lb,ub,myfun) %這時(shí),需先建立非線性約束函數(shù): % function C,Ceq = myfun(x) %C = % 計(jì)算x處的非線性不等約束的函數(shù)值 %Ceq = % 計(jì)算x處的非線性等式約束的函數(shù)值 %并保存為myfun.m。 x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) % options指定優(yōu)化參數(shù) x,fval,exitflag,output,lambda,grad,hessian = fmincon() 說明 x:最小值點(diǎn)。fval:目標(biāo)函數(shù)最優(yōu)值。 exitflag:返回算法的終止標(biāo)志。 ou

18、tput:為輸出優(yōu)化信息。 lambda體現(xiàn)哪一個(gè)約束有效。 grad表示目標(biāo)函數(shù)在x處的梯度。 hessian表示目標(biāo)函數(shù)在x處的海森值。 【例9-7】 求下面問題在初始點(diǎn)(0,1)處的最優(yōu)解。 目標(biāo)函數(shù) : min 約束條件 : 解:(1)建立非線性約束函數(shù)文件: function c, ceq=myfun1 (x) c=(x(1)-1)2-x(2); % 非線性約束 ceq= ; %無非線性等式約束 end (2)建立M文件: fun6=x(1)2+x(2)2-x(1)*x(2)-2*x(1)-5*x(2); %目標(biāo)函數(shù) x0=0 1; A=-2 3; b=6; Aeq= ; beq=

19、; %無線性等式約束 lb= ; ub= ; %x沒有下、上界 x,fval,exitflag,output,lambda,grad,hessian=fmincon(fun6,x0,A,b,Aeq,be q,lb,ub,myfun1) 22 121212 zx +xx x2x5x 2 12 12 (x -1)x0 2x +3x6 9.2.3 0-1整數(shù)規(guī)劃問題 格式 x = bintprog(f) %求解無約束條件的0-1整數(shù)規(guī)劃 x = bintprog (f,A,b) %帶不等式約束條件的0-1整數(shù)規(guī)劃 x = bintprog (f,A,b,Aeq,beq) %帶等式約束條件的的0-1整

20、數(shù)規(guī)劃 x = bintprog (f,A,b,Aeq,beq,x0) % 提供初始值x0 x = bintprog (f,A,b,Aeq,beq,x0,options) % 提供優(yōu)化的參數(shù)選項(xiàng)options x,fval,exitflag,output= bintprog (.) 說明 x:最小值點(diǎn)。fval:目標(biāo)函數(shù)最優(yōu)值。 exitflag: =1, 函數(shù)收斂于解x; =0,迭代次數(shù)超過最大允許值; =-2,目標(biāo)函數(shù)無最優(yōu)可行解; =-4,已到達(dá)最大節(jié)點(diǎn)數(shù); =-5,已到達(dá)最大時(shí)間; =-6,在節(jié)點(diǎn)進(jìn)行LP松弛問題的解的迭代次數(shù)超過最大RLP迭代次數(shù)。 output:iterations

21、表示優(yōu)化過程的迭代次數(shù),nodes表示探索節(jié)點(diǎn)數(shù), time表示執(zhí)行時(shí)間, algorithm表示優(yōu)化所采用的運(yùn)算規(guī)則, branchStrategy表示分支策略,nodeSrchStrategy表示節(jié)點(diǎn)尋找策略, message表示退出信息。 【例9-10】 求0-1整數(shù)規(guī)劃的最優(yōu)解。 目標(biāo)函數(shù) : 約束條件 : MATLAB程序如下: f=1; 2; 3; 1; 1; A=-2 -3 -5 -4 -7; -1 -1 -4 -2 -2; %改變不等式符號 b=-8; -5; x,fval,exitflag,output =bintprog(f,A,b) 運(yùn)行結(jié)果如下: Optimizatio

22、n terminated. x = %顯示x的轉(zhuǎn)置x 1 0 0 1 1 fval = 3 12345 min23zxxxxx 12345 12345 12345 2x +3x +5x +4x +7x8 x +x +4x +2x +2x5 x ,x ,x ,x ,x0 1 或 9.2.4 二次規(guī)劃問題 格式 x = quadprog(H,f,A,b) % x = quadprog(H,f,A,b,Aeq,beq) % x = quadprog(H,f,A,b,Aeq,beq,lb,ub) % x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) % x0初始點(diǎn) x =

23、quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) %options為指定的優(yōu)化參 數(shù) x,fval,exitflag,output,lambda = quadprog() 說明 H二次規(guī)劃中的二次項(xiàng)矩陣;f二次規(guī)劃中的一次項(xiàng)向量。 x:最小值點(diǎn)。fval:目標(biāo)函數(shù)最優(yōu)值。 exitflag:=1,成功求得最優(yōu)解; =3,求得一個(gè)解,且對應(yīng)的目標(biāo)函數(shù)值的精度等于給定值; =4,求得的解為局部極小值; =0,迭代步驟超過最大允許值; =-2,目標(biāo)函數(shù)無最優(yōu)可行解; =-3,目標(biāo)函數(shù)無界; =-4,當(dāng)前點(diǎn)的搜索方向不是下降方向,迭代無法繼續(xù); =-7,當(dāng)前點(diǎn)的搜索

24、方向的幅度太小,迭代無法繼續(xù)。 output:Iterations為迭代步驟,algorithm為優(yōu)化算法,cgiterations為總的 PCG迭代步數(shù),firstorderopt 為一般優(yōu)化的度量。 lambda:lower為下界LB,upper為上界UB,ineqlin為線性不等式,eqlin為 線性等式。 【例9-11】 求二次規(guī)劃的最優(yōu)解: 目標(biāo)函數(shù) : 約束條件 : H=2 -4; -4 8; f=3; -4; A=2 1; -1 2; b=2; 3; lb=0; 0; x,fval,exitflag,output,lambda = quadprog(H,f,A,b,lb) 運(yùn)行結(jié)

25、果如下: x = 0 0.5000 fval = -1 22 121212 minzx +4x4x x +3x4x 12 12 12 2x +x2 -x +2x3 x ,x0 9.3 GUI優(yōu)化工具 1工具啟動 在MATLAB命令窗口輸入 optimtool,或在MATLAB主界面單擊左下角的 “Start”按鈕,然后依次選擇“Toolboxes”“Optimization”“Optimization Tool(optimtool)”,即可打開優(yōu)化工具界面 2界面組成 (1)“Problem Setup and Results”部分主要包括: Solver:求解器。 Algorithm:算法。

26、 Objective function:目標(biāo)函數(shù)。 Derivatives:微分或梯度。 Start point:初始點(diǎn)。 Constraints:約束條件。 Start:開始(運(yùn)行求解)。 Current iterative:目前迭代(運(yùn)行狀態(tài))。 Final point:最終值點(diǎn)(求解結(jié)果)。 (2)“Options”選項(xiàng)主要包括9大類: Stooping criteria:停止準(zhǔn)則。 Function value cheek:函數(shù)值檢查。 User-supplied derivatives:用戶自定義微分(或梯度)。 Approximated derivatives:自適應(yīng)微分(或梯度)

27、。 Algorithm settings:算法設(shè)置。 Inner iteration stooping criteria:內(nèi)迭代停止準(zhǔn)則。 Plot functions:用戶自定義繪圖函數(shù)。 Output functions:用戶自定義輸出函數(shù)。 Display to command window:輸出到命令行窗口。 3使用步驟 (1)選擇求解器“solver”中的優(yōu)化算法。 (2)選定目標(biāo)函數(shù)“Objective function”。 (3)設(shè)定目標(biāo)函數(shù)的相關(guān)參數(shù):初始點(diǎn)“Start point”,約束條件“Constraints”。 (4)設(shè)置優(yōu)化選項(xiàng)“Options”。 (5)單擊“St

28、art”按鈕,運(yùn)行求解。 (6)查看求解器的狀態(tài)和求解結(jié)果。 (7)將目標(biāo)函數(shù)、選項(xiàng)和結(jié)果導(dǎo)入/導(dǎo)出(利用菜單 File文件)。 9.3.2 GUI優(yōu)化工具實(shí)例操作 1fminbnd求解器 例如,對【例例如,對【例9-1】中的優(yōu)化問題求解。只需將界面(見圖】中的優(yōu)化問題求解。只需將界面(見圖9-1)上的)上的“Solver”, 選擇為選擇為“fminbnd-Single-variable nonlinear minimization with bounds”; “Objective function”中直接填寫函數(shù)的字符串中直接填寫函數(shù)的字符串exp(x)-sin(x)-1,或,或 (x)ex

29、p(x)-sin(x)-1;選擇;選擇“x1”處為處為-1,“x2”處為處為1,點(diǎn)擊按鈕,點(diǎn)擊按鈕“Start”,就,就 顯示出運(yùn)行結(jié)果顯示出運(yùn)行結(jié)果 (在目標(biāo)函數(shù)中,我們可以選擇所定義的函數(shù)名,譬如文件名為 “fun1.m”的函數(shù)文件: function f = fun1(x) f=exp(x)-sin(x)-1; end 這時(shí)只需在“Objective function”中填寫fun1 即可。 我們也可以將優(yōu)化問題和結(jié)果輸出到“Workspace”,并在命令窗 口顯示出來。其方法為: (1)打開“File”下拉菜單,點(diǎn)擊“Export To Workspace”,得到 (2)選中“opti

30、mproblem”、“options”和“optimresults”左邊的單選框, 點(diǎn)擊“OK”,其內(nèi)容輸出到“Workspace”,并在命令窗口中給出提示:The variables optimproblem, options and optimresults have been created in the current workspace. 2fminsearch求解器求解器 對【例9-3】中的優(yōu)化問題求解。只需將界面上的“Solver”,選擇 為“fminsearch-Unconstrained nonlinear minimization”; “Objective function

31、”中直接填寫函數(shù)x(1)3+2*x(1)*x(2)2- 6*x(1)*x(2)+x(2)3;“Start point”處填寫0,0,點(diǎn)擊按鈕 “Start”,就顯示出運(yùn)行結(jié)果,如圖所示。 3fminunc求解器 例如,對【例9-4】中的優(yōu)化問題求解。只需將界面上的“Solver”, 選擇為“fminunc-Unconstrained nonlinear minimization”; “Algorithm”下拉選框中選擇“Medium scale”;“Objective function” 中直接填寫函數(shù)x(1)2-x(1)*x(2)+6*x(1)+x(2)2;“Start point” 處填寫

32、-1,-1,點(diǎn)擊按鈕“Start”,就顯示出運(yùn)行結(jié)果 結(jié)果導(dǎo)出如下: optimproblem optimproblem = objective: x(1)2- x(1)*x(2)+6*x(1)+x(2)2 x0: -1 1 solver: fminunc options: 1x1 struct optimresults optimresults = x: -4 -2 fval: -12 exitflag: 1 output: 1x1 struct grad: 2x1 double hessian: 2x2 double 4linprog求解器 線性規(guī)劃求解器中的算法有三種:“Large sc

33、ale”(大規(guī)模算法)、 “Medium scale-simplex”(中等規(guī)模-單純形算法)和“Medium scale-active set”(中等規(guī)模-有效集算法),當(dāng)選用“Medium scale- active set”,還要提供初始點(diǎn)。 例如,對【例例如,對【例9-5】中的優(yōu)化問題求解。只需將界面上的】中的優(yōu)化問題求解。只需將界面上的“Solver”, 選擇為選擇為“l(fā)inprog-Linear programming”;“Algorithm”下拉選下拉選 框中選擇框中選擇“Medium scale-active set”;“f”處填寫處填寫-1;-3;-6, “A”處填寫處填寫1

34、 -2 1;3 2 5,“b”處填寫處填寫3; 12,“Aeq”處填寫處填寫 2 1 4,“beq”處填寫處填寫9,“Lower”處填寫處填寫0;0;0,“Upper” 處填寫處填寫 或不填,或不填,“Start point”選擇單選框選擇單選框“Let algorithm choose point”(算法自動選擇);點(diǎn)擊按鈕(算法自動選擇);點(diǎn)擊按鈕“Start”,就顯示出,就顯示出 運(yùn)行結(jié)果,如圖所示。運(yùn)行結(jié)果,如圖所示。 5fmincon求解器 求解器為求解器為fmincon的可用算法有:的可用算法有:“Interior point”(內(nèi)點(diǎn)算法)、(內(nèi)點(diǎn)算法)、 “SQP”算法、算法、“

35、Active set”(有效集算法)和(有效集算法)和“Trust region reflective”(信賴域反射算法)。利用(信賴域反射算法)。利用“Trust region reflective” 算法,不能有線性不等式約束條件。算法,不能有線性不等式約束條件。 例如,對【例例如,對【例9-7】中的優(yōu)化問題求解。只需將界面上的】中的優(yōu)化問題求解。只需將界面上的“Solver” 選擇為選擇為“fmincon-Constrained nonlinear minimization”; “Algorithm”下拉選框中選擇下拉選框中選擇“Interior point”,“Objective fu

36、nction”中直接填寫函數(shù)中直接填寫函數(shù)x(1)2+x(2)2-x(1)*x(2)-2*x(1)- 5*x(2),“Start point”處填寫處填寫0,1,“A”填寫填寫-2 3,“b”填填 寫寫6,“Nonlinear constraint function”填寫所定義的文件名填寫所定義的文件名 myfun1,其中函數(shù)程序?yàn)椋?,其中函?shù)程序?yàn)椋?function c, ceq=myfun1 (x) c=(x(1)-1)2-x(2); ceq= ; end 點(diǎn)擊按鈕點(diǎn)擊按鈕“Start”,就顯示出運(yùn)行結(jié)果,如圖所示。,就顯示出運(yùn)行結(jié)果,如圖所示。 6bintprog求解器 例如,對【例9-10】中的優(yōu)化問題求解。只需將界面上的“Solver”, 選擇為“bintprog-Binary integer programming”,“f”處填寫 1;2;3;1;1,“A”處填寫-2 -3 -5 -4 -7;-1 -1 -4 -2 -2,“b”處填寫 -8;-5,“Start point”選擇單選框“Let algorithm choose point”, 點(diǎn)擊按鈕

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論