




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 M文件的功能和特點 MATLAB是解釋性語言 語法簡單 調試容易 人機交互性強 開放性、可擴展性強第第2講講MATLAB 程序設計及其調試程序設計及其調試M文件輸入窗口!文件輸入窗口!222112221222110.753.751.512612120.753.751.5120.54571( ,)0.7575110.54571xxxxxxxxexxp x xexxexx 腳本文件first.m%first.m This is my first example.a=2;b=2;clf;x=-a:0.2:a;y=-b:0.2:b;for i=1:length(y) for j=1:length(x
2、) if x(j)+y(i)1 z(i,j)=0.5457*exp(-0.75*y(i)2-3.75*x(j)2-1.5*x(j); elseif x(j)+y(i) x,fval,exitflag,output=fminbnd(x3+cos(x)+x*log(x)/exp(x),0,1)x = 0.5223fval = 0.3974exitflag = 1output = iterations: 9 funcCount: 9 algorithm: golden section search, parabolic interpolation1) 3x()x( f3例5 在0,5上求下面函數的最
3、小值解:先自定義函數:在MATLAB編輯器中建立M文件為:function f = myfun(x)f = (x-3).2 - 1;保存為myfun.m,然后在命令窗口鍵入命令: x=fminbnd(myfun,0,5)則結果顯示為:x = 3無約束多元函數最小值無約束多元函數最小值多元函數最小值的標準形式為其中:x為向量.命令 利用函數fminsearch求無約束多元函數最小值.函數 fminsearch格式 x = fminsearch(fun,x0) %x0為初始點,fun為目標函數的表達式字符串或MATLAB自定義函數的函數柄.x = fminsearch(fun,x0,options
4、) % options查optimset.x,fval = fminsearch() %最優點的函數值.x,fval,exitflag = fminsearch() % exitflag與單變量情形一致.x,fval,exitflag,output = fminsearch() %output與單變量情形一致.)x( fminxx,x,xxn21222132131xxx10 xx4x2y例6 求 的最小值點.解:X=fminsearch(2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2, 0,0)結果為 X = 1.0016 0.8335或在MATLAB編輯器中建
5、立函數文件.function f=myfun(x)f=2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2;保存為myfun.m,在命令窗口鍵入 X=fminsearch (myfun, 0,0) 或 X=fminsearch(myfun, 0,0)結果為: X = 1.0016 0.8335有約束的多元函數最小值有約束的多元函數最小值非線性有約束的多元函數的標準形式為:sub.to 其中:x、b、beq、lb、ub是向量,A、Aeq為矩陣,C(x)、Ceq(x)是返回向量的函數,f(x)為目標函數,f(x)、C(x)、Ceq(x)可以是非線性函數.在MATLAB5.
6、x中,它的求解由函數constr實現.)x( fminx0)x(C0)x(CeqbxAbeqxAequbxlb函數 fmincon格式 x = fmincon(fun,x0,A,b)x = fmincon(fun,x0,A,b,Aeq,beq)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval = fmincon()x,fval,exitflag = fmincon
7、()x,fval,exitflag,output = fmincon()x,fval,exitflag,output,lambda = fmincon()x,fval,exitflag,output,lambda,grad = fmincon()x,fval,exitflag,output,lambda,grad,hessian = fmincon()參數說明:fun為目標函數,它可用前面的方法定義;nonlcon的作用是通過接受的向量x來計算非線性不等約束和等式約束分別在x處的估計C和Ceq,通過指定函數柄來使用,如:x = fmincon(myfun,x0,A,b,Aeq,beq,lb,u
8、b,mycon),先建立非線性約束函數,并保存為mycon.m:function C,Ceq = mycon(x)C = % 計算x處的非線性不等約束的函數值.Ceq = % 計算x處的非線性等式約束的函數值.lambda是Lagrange乘子,它體現哪一個約束有效.output輸出優化信息;grad表示目標函數在x處的梯度;hessian表示目標函數在x處的Hessian值.例7求下面問題在初始點(0,1)處的最優解21212221x5x2xxxx0 x) 1x(22106x3x221min sub.to 解:約束條件的標準形式為:sub.to 先在MATLAB編輯器中建立非線性約束函數文件
9、: function c, ceq=mycon (x) c=(x(1)-1)2-x(2); ceq= ; %無等式約束.0 x) 1x(2216x3x221然后,在命令窗口鍵入如下命令或建立M文件:fun=x(1)2+x(2)2-x(1)*x(2)-2*x(1)-5*x(2); %目標函數.x0=0 1;A=-2 3; % 線性不等式約束.b=6;Aeq= ; % 無線性等式約束.beq= ;lb= ; % x沒有下、上界.ub= ;x,fval,exitflag,output,lambda,grad,hessian=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,mycon
10、)則結果為x = 3 4fval = -13exitflag = 1 % 解收斂. output = iterations: 2 funcCount: 9 stepsize: 1 algorithm: medium-scale: SQP, Quasi-Newton, line-search firstorderopt: cgiterations: lambda = lower: 2x1 double % x下界有效情況,通過lambda.lower可查看. upper: 2x1 double % x上界有效情況,為0表示約束無效. eqlin: 0 x1 double %線性等式約束有效情況,
11、不為0表示約束有效. eqnonlin: 0 x1 double %非線性等式約束有效情況. ineqlin: 2.5081e-008 %線性不等式約束有效情況. neqnonlin: 6.1938e-008 %非線性不等式約束有效情況. grad = %目標函數在最小值點的梯度. 1.0e-006 * -0.1776 hessian = %目標函數在最小值點的Hessian值. 1.0000 -0.0000 -0.0000 1.0000二次規劃問題二次規劃問題二次規劃問題(quadratic programming)的標準形式為: sub.to 其中,H、A、Aeq為矩陣,f、b、beq、l
12、b、ub、x為向量其它形式的二次規劃問題都可轉化為標準形式. MATLAB5.x版中的qp函數已被6.0版中的函數quadprog取代。xfxHx21minbxAbeqxAeqbuxbl函數 quadprog格式 x = quadprog(H,f,A,b) %其中H,f,A,b為標準形中的參數,x為目標函數的最小值.x = quadprog(H,f,A,b,Aeq,beq) %Aeq,beq滿足等約束條件.x = quadprog(H,f,A,b,Aeq,beq,lb,ub) % lb,ub分別為解x的下界與上界.x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) %
13、x0為設置的初值x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) % options為指定的優化參數.x,fval = quadprog() %fval為目標函數最優值.x,fval,exitflag = quadprog() % exitflag與線性規劃中參數意義相同.x,fval,exitflag,output = quadprog() % output與線性規劃中參數意義相同.x,fval,exitflag,output,lambda = quadprog() % lambda與線性規劃中參數意義相同 . 3xx) 0, 0(xx0110)x
14、x(213xx)xx( fmin2121212121例8求二次規劃的最優解 max f (x1, x2)=x1x2+3 sub. to x1+x2-2=0解:化成標準形式: sub.to x1+x2=2在Matlab中實現如下:H=0,-1;-1,0;f=0;0;Aeq=1 1;b=2;x,fval,exitflag,output,lambda = quadprog(H,f, , ,Aeq,b)結果為:x = 1.0000 1.0000fval =-1.0000exitflag =4output = iterations: 1 algorithm: large-scale: projectiv
15、e preconditioned conjugate gradients f irstorderopt: 0 cgiterations: 1 message: Optimization terminated: local minimum found; the solution is singular. lambda = eqlin: 1.0000 ineqlin: lower: upper: 極小化極大(Minmax)問題)x(FmaxminiFxi0)x(C0)x(CeqbxAbeqxAequbxlbsub.to 其中:x、b、beq、lb、ub是向量,A、Aeq為矩陣,C(x)、Ceq(x
16、)和F(x)是返回向量的函數,F(x)、C(x)、 Ceq(x) 可以是非線性函數.函數 fminimax格式 x = fminimax(fun,x0)x = fminimax(fun,x0,A,b)x = fminimax(fun,x0,A,b,Aeq,beq)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval,maxfval = fminimax()x,f
17、val,maxfval,exitflag = fminimax()x,fval,maxfval,exitflag,output = fminimax()x,fval,maxfval,exitflag,output,lambda = fminimax()例9 求下列函數最大值的最小化問題其中:)x(f , )x(f , )x(f , )x(f , )x(f54321304x40 x48xx2)x(f212221122222x3x)x(f18x3x)x(f213214xx)x(f8xx)x(f215解:先建立目標函數文件,并保存為myfun.m:function f = myfun(x)f(1)= 2*x(1)2+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ajax面試題及答案2017
- 2025幼兒園數學自測試題及答案
- 語言敏感期:雙語啟蒙的黃金法則
- 2025年勞動經濟學與政策研究課程考核試卷及答案
- 江蘇、河南2021年全國高中聯賽一試參考答案及評分標準
- 商標報價合同協議
- 收廢品協議書范本
- 櫥窗清洗服務合同協議
- 員工合同解除協議模板
- 售后保密合同協議
- 220kv交流輸電線路金具技術規范書
- 《唯物主義和唯心主義》課件(共31張)
- 1110kV變電站GIS間隔廠家擴建方案
- 已使用化妝品原料目錄(2021年版)
- 學校食堂從業人員培訓內容
- 窄門(小經典系列)
- 軟件測試PPT完整全套教學課件
- 隧道火災撲救課件
- 一份完整的冠心病病歷
- 最新中建CI報價單-2013
- (完整版)爾雅課程-創新創業領導力課后習題答案
評論
0/150
提交評論