Matlab與機械優(yōu)化設計(5優(yōu)化工具箱)_第1頁
Matlab與機械優(yōu)化設計(5優(yōu)化工具箱)_第2頁
Matlab與機械優(yōu)化設計(5優(yōu)化工具箱)_第3頁
Matlab與機械優(yōu)化設計(5優(yōu)化工具箱)_第4頁
Matlab與機械優(yōu)化設計(5優(yōu)化工具箱)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Matlab優(yōu)化工具箱的使用MATLABMATLAB優(yōu)化工具箱優(yōu)化工具箱能求解的優(yōu)化模型能求解的優(yōu)化模型優(yōu)化工具箱優(yōu)化工具箱3.0 (MATLAB 7.0 R14)連續(xù)優(yōu)化連續(xù)優(yōu)化離散優(yōu)化離散優(yōu)化無約束優(yōu)化無約束優(yōu)化非線性非線性極小極小fminunc非光滑非光滑(不可不可微微)優(yōu)化優(yōu)化fminsearch非線性非線性方程方程(組組)fzerofsolve全局全局優(yōu)化優(yōu)化暫缺暫缺非線性非線性最小二乘最小二乘lsqnonlinlsqcurvefit線性規(guī)劃線性規(guī)劃linprog0-1規(guī)劃規(guī)劃 bitprog一般一般(暫缺暫缺)非線性規(guī)劃非線性規(guī)劃fminconfseminf上下界約束上下界約束fm

2、inbndfminconlsqnonlinlsqcurvefit約束線性約束線性最小二乘最小二乘lsqnonneglsqlin約束優(yōu)化約束優(yōu)化二次規(guī)劃二次規(guī)劃quadprog多 目 標 優(yōu) 化多 目 標 優(yōu) 化fgoalattain fminimax無約束優(yōu)化問題min( )fxxn數(shù)學模型:nMatlab函數(shù):n對于連續(xù)(處處光滑)的函數(shù),使用fminuncn對于不連續(xù)的函數(shù),使用fminsearchn一般而言一般而言fminunc比fminsearch有更高的尋優(yōu)效率,因有更高的尋優(yōu)效率,因為它利用了梯度信息為它利用了梯度信息n兩者都不是解決最小化平方和的問題首選方法兩者都不是解決最小化平

3、方和的問題首選方法,對這類問對這類問題,推薦使用(題,推薦使用(lsqnonlin )。)。無約束優(yōu)化問題vx,fval,exitflag,output,grad,hessian = fminunc(fun,x0,options)v輸入?yún)?shù): fun: 目標函數(shù),以函數(shù)句柄的形式給出。函數(shù)句柄的構造:1.函數(shù)首先用m文件定義好,然后采用下列方式構造函數(shù)句柄: fhandle= function_name 如: f_h=sin; f_h=cos2.匿名函數(shù)的形式(Anonymous function),函數(shù)的表達式直接給出: fhandle= (var_list) expression(var_

4、list),如: f_h=(x) sin(x); f_h=(x) cos(x);采用函數(shù)句柄的方式調用函數(shù):把函數(shù)的名稱用函數(shù)句柄直接替換。比如定義: f_h=sin, 則使用sin函數(shù)的時候有兩種方式: sin(10), f_h(10),返回同樣的結果。無約束優(yōu)化問題vx,fval,exitflag,output,grad,hessian = fminunc(fun,x0,options)v輸入?yún)?shù): x0: 初始點的值。Options: 提供和函數(shù)本身有關的一些細節(jié)控制,如采用的算法,是否采用梯度等信息。本身是一個結構數(shù)組,其中每一個屬性值的改變或設定可用函數(shù)optimset完成,如: o

5、ptions = optimset(Display,iter,TolFun,1e-8); options = optimset(optimfun): 返回優(yōu)化函數(shù)“optimfun”所有的options屬性的名稱和屬性值。如: options = optimset(fminunc): 觀察結果。Options各個屬性的含義請參考幫助文件。 無約束優(yōu)化問題vx,fval,exitflag,output,grad,hessian = fminunc(fun,x0,options)v輸出參數(shù): X, fval: 算法終止時函數(shù)的最優(yōu)解和最優(yōu)值。exitflag: 整數(shù)標志,算法終止的原因,返回值大于

6、0表示找到局部最優(yōu)點,否則沒有找到局部最優(yōu)點。具體的返回請參照函數(shù)“fminunc”的幫助。Output:Structure containing information about the optimization. The fields of the structure are:v iterations: Number of iterations taken;v funcCount:Number of function evaluations;v algorithm:Algorithm used;vCgiterations:Number of PCG iterations (large-s

7、cale algorithm only);stepsize:Final step size taken (medium-scale algorithm only);grad,hessian:最優(yōu)解X點處的剃度和Hessian矩陣無約束優(yōu)化問題vx,fval,exitflag,output,grad,hessian = fminunc(fun,x0,options)v例子: 求目標函數(shù) mypeaks的局部最小值。v mypeaks=3*(1-x(:,1).2.*exp(-(x(:,1).2) - (x(:,2)+1).2) . v - 10*(x(:,1)/5 - x(:,1).3 - x(:

8、,2).5).*exp(-x(:,1).2-x(:,2).2) . v - 1/3*exp(-(x(:,1)+1).2 - x(:,2).2); vfminsearch與fminunc有相同的輸入和輸出參數(shù),但是它使用單純形法來找到局部最優(yōu)。v分別用fminsearch和fminunc函數(shù)求上述目標函數(shù)的極小值點,可發(fā)現(xiàn)在利用了梯度信息的時候,迭代的次數(shù)大大減小。約束優(yōu)化問題v1。單變量(標量)、上下界約束優(yōu)化問題。vx,fval,exitflag,output = fminbnd(fun,x1,x2,options)v目標函數(shù)必須是連續(xù)的,只能求出局部最優(yōu)值,所用算法:黃金分割和二次插值方法

9、。v例子: 求函數(shù) f(x)=x(2/3)-(x2+1)(1/3), 約束優(yōu)化問題v2。線性規(guī)劃問題。vx,fval,exitflag,output,lambda = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)它的輸出只是最終結果,沒有迭代過程。v例:約束優(yōu)化問題v數(shù)學模型:設計變量: 各個方案切割的套數(shù):x=x1,x2,x3,x4,x5;目標函數(shù): min f(x)=0.1*x2+0.2*x3+0.3*x4+0.8*x5約束條件: v總套數(shù)限制: x1+2*x2+x4=100 v 2* x3+2*x4+x5=100v 3* x1+x2+2*x3+3*x5=

10、100v 0 2 % nonlcon called with 4 outputs GC = . % Gradients of the inequalities GCeq = . % Gradients of the equalitiesendT1230123123123*( )10,10,10 ,02227.:2202227: 1, 2, 2;1,2,2,0;27f xx x xxxxxxxxxxxxA xbAb 計算使函數(shù)取最小值時的 值,約束條件為分析將約束條件化為兩個不等式:從而可將它們寫成矩陣不等式的形式其中實例分析 4. fmincon函數(shù)MATLAB代碼:%首先編寫目標函數(shù)的.m文

11、件:function f = myfun (x)f = -x(1)*x(2)*x(3);x0=10; 10; 10 %起始點x, fval = fmincon (myfun, x0, A, b)12212122121212121212( )(421)-1.5, 10:1.50, 100 xf xexxx xxxx xxxx xx xxxx x 計算使函數(shù)+2+4+ 取最小值時的 值,約束條件為分析將非線性約束條件化為標準的不等式形式:+實例分析 4. fmincon函數(shù)MATLAB代碼:%首先編寫目標函數(shù)的.m文件:function f = objfun(x)f = exp(x(1)*(4*x

12、(1)2 + 2*x(2)2 + 4*x(1)*x(2) + 2*x(2) + 1);%編寫非線性約束函數(shù)的.m文件: function c, ceq = confun(x)c = 1.5 + x(1)*x(2) - x(1) - x(2); -x(1)*x(2) - 10;ceq = ; %求解優(yōu)化問題:x0 = -1,1; options = optimset(LargeScale,off);x, fval = fmincon(objfun,x0,confun,options)4. fmincon函數(shù)v目標函數(shù): H4. fmincon函數(shù)vStep1:建立數(shù)學模型v 設計變量和目標函數(shù):

13、管直徑D和支架高度Hv約束條件:4. fmincon函數(shù)vStep1:建立數(shù)學模型v 約束條件:4. fmincon函數(shù)vStep2:編制程序v目標函數(shù)function f=objfun1(x)f=1.225e-4*x(1)*sqrt(577600.0+x(2)*x(2);v 約束函數(shù)function c,ceq=confun1(x)c=19098.59*sqrt(577600.0+x(2)*x(2)/(x(1)*x(2)-700.0; 19098.59*sqrt(577600.0+x(2)*x(2)/(x(1)*x(2)-2.6e5*(x(1)*x(1)+6.25)/(577600.0+x(

14、2)*x(2);ceq=; x0=1,1 lb=zeros(2,1); ub=Inf*ones(2,1); %ub= x,fval,exitflag,output,lambda,grad,hessian = fmincon(objfun1,x0,lb,ub,confun1) 多目標優(yōu)化問題v1.目標規(guī)劃法vx,fval,attainfactor,exitflag = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub);v函數(shù)fun以函數(shù)句柄的形式或匿名函數(shù)的形式給出,它多個目標函數(shù)構成的向量;vgoal:每個目標函數(shù)想要達到的目標,和fun具有相

15、同的維數(shù)。vWeight:每個目標函數(shù)在優(yōu)化過程中重要性的體現(xiàn)。當某個目標函數(shù)的Weight為正值時,允許函數(shù)值大于目標值;當它為負值時,允許函數(shù)值小于目標值;如果希望某個目標值盡量接近目標值,在Options中設置“GoalsExactAchieve ”,并讓該目標函數(shù)作為Fun中的第一個函數(shù)。如果希望每一個函數(shù)值從目標值有相同百分比的偏差,則設置每一個函數(shù)的weight(i)=abs(goal(i); , ,A( )( ); ( )( )( )( )x weight b beq lb ubc xceq xf xc xceq xf x其中 均是向量和Aeq是矩陣; 和是返回值為向量的函數(shù)是一

16、個返回值為標量的和函數(shù); 而且,和可以是非線性函數(shù).多目標優(yōu)化問題v1。目標規(guī)劃法v返回值:vAttainfactor:優(yōu)化點處函數(shù)值超過和小于目標函數(shù)的個數(shù)統(tǒng)計,如果為負,則大部分函數(shù)被過估計;否則,大部分函數(shù)值小于目標值。v例1:某工廠生產(chǎn)I、II兩種產(chǎn)品,有關數(shù)據(jù)見表1,在原材料有嚴格限制的條件下,要求產(chǎn)品II的產(chǎn)量不低于產(chǎn)品I,其次是充分利用設備,不加班;再者是利潤不小于56元。vStep1:建模:v設計變量:產(chǎn)品I和II的產(chǎn)量 x(1),x(2)v目標函數(shù): 利潤:g1=8*x(1)+10*x(2) 56 ()產(chǎn)量:g2=x(2)x(1) 0 ()工時:g3= x(1)+2*x(2)

17、 10 ()III擁有量原材料(kg)2111設備(hr)1210利潤(元/件)810多目標優(yōu)化問題v1。目標規(guī)劃法v約束條件:原材料限制:2*x(1)+x(2)=0vStep2:對目標函數(shù)指定權值:根據(jù)目標函數(shù)大于或小于目標的值,確定g1,g2權值大于0, g3權值小于0,權值絕對值的大小應該體現(xiàn)了各個目標函數(shù)的重要性。給定: w= 1,0.8,-1;Step3:編程求解:分析結果可以看出,增加某一個目標的權值,將使得我們得該目標函數(shù)朝著我們期望的方向取得最大值(遠離goal)。如將目標函數(shù)1(利潤)得權值從0增加到5000, 目標函數(shù)1得值從56變化到大約60, 而同時其他兩個目標函數(shù)得值

18、朝向期望值靠得越近。即靠近goal. 這一點從規(guī)劃問題得數(shù)學表達式中也可以看出,隨著Weight得增加,目標函數(shù)被松弛得越多,也就是它越偏離目標值;同時,優(yōu)化又是最小化gama, gama得減小,必將導致其他目標函數(shù)得松弛量得減少(其他目標函數(shù)得Weight沒變),所以其他目標函數(shù)更靠近目標值。 多目標優(yōu)化問題v2。極大極小法vx,fval,maxfval,exitflag,output,lambda = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)v通過在options設置“MinAbsMax”屬性,可控制同時需要最小化的目標函數(shù)的個數(shù)(目標函數(shù)的絕對值最?。4藭r這幾個需要同時最小化的函數(shù)必須在定義目標函數(shù)時放在其他函數(shù)前面。多目標優(yōu)化問題v2。極大極小法vx,fval,maxfval,exitflag,output,lambda = fminimax(fun,x

溫馨提示

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

評論

0/150

提交評論