數學建模電子教案ppt課件_第1頁
數學建模電子教案ppt課件_第2頁
數學建模電子教案ppt課件_第3頁
數學建模電子教案ppt課件_第4頁
數學建模電子教案ppt課件_第5頁
已閱讀5頁,還剩155頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、數學建模數學建模電子教案電子教案重慶郵電大學重慶郵電大學數理學院數理學院沈世云沈世云第一節第一節 MATLAB簡介簡介n什么是什么是 MATLAB?nMATLAB 能干什么能干什么?n掌握掌握 MATLAB n運用實例運用實例重慶郵電大學重慶郵電大學-數學建模數學建模學習 MATLABn什么是什么是 MATLAB?nMATLAB 能干什么能干什么?n掌握掌握 MATLAB n運用實例運用實例重慶郵電大學重慶郵電大學-數學建模數學建模什么是 MATLAB?1 .MATLAB 代表MATrix LABoratory它的首創者是美國新墨西哥大學計算機系的系主任Cleve Moler博士,他在教授線性

2、代數課程發現其他言語很不方便,篇構思開發了MATLAB。最初采用FORTRAN言語編寫,20世紀80年代后出現了MATLAB的第二版,全部采用C言語編寫.1984年Moler博士和一批數學家及軟件專家創建了MathWorks公司,專門開發MATLAB。1993年出現了微機版,到2019年是6.5版重慶郵電大學重慶郵電大學-數學建模數學建模2 .一種演草紙式的科學計算言語3 .MATLAB 是一高性能的技術計算言語. 強大的數值計算和工程運算功能符號計算功能強大的科學數據可視化才干 多種工具箱 重慶郵電大學重慶郵電大學-數學建模數學建模MATLAB 能干什么?MATLAB可以進展:數學計算、算法

3、開發、數據采集建模、仿真、原型 數據分析、開發和可視化科學和工程圖形運用程序的開發,包括圖形用戶界面的創建。MATLAB廣泛運用于:數值計算、圖形處置、符號運算、數學建模、系統辨識、小波分析、實時控制、動態仿真等領域。重慶郵電大學重慶郵電大學-數學建模數學建模掌握 MATLAB MATLAB的構成:的構成:MATLAB開發環境:進展運用研討開發的交互式平臺開發環境:進展運用研討開發的交互式平臺MATLAB 數學與運算函數庫:用于科學計算的函數數學與運算函數庫:用于科學計算的函數MATLAB 言語:進展運用開發的編程工具言語:進展運用開發的編程工具圖形化開發:二維、三維圖形開發的工具圖形化開發:

4、二維、三維圖形開發的工具運用程序接口運用程序接口 (API):用于與其他預言混編:用于與其他預言混編面向專門領域的工具箱:小波工具箱、神經網絡工具箱、面向專門領域的工具箱:小波工具箱、神經網絡工具箱、信號處置工具箱、圖像處置工具箱、模糊邏輯工具箱、信號處置工具箱、圖像處置工具箱、模糊邏輯工具箱、優化工具箱、魯棒控制工具箱等幾十個不同運用的工優化工具箱、魯棒控制工具箱等幾十個不同運用的工具箱。具箱。重慶郵電大學重慶郵電大學-數學建模數學建模開發環境 包括:命令窗口、圖形窗口、編輯窗口、包括:命令窗口、圖形窗口、編輯窗口、協助窗口。協助窗口。重慶郵電大學重慶郵電大學-數學建模數學建模命令窗口n可在

5、提示符后輸入交互式命令可在提示符后輸入交互式命令 n結果會自動的產生結果會自動的產生n例如:例如:MATLAB prompt () and cursor (|)command (typed at prompt)MATLAB output重慶郵電大學重慶郵電大學-數學建模數學建模圖形窗口在窗口中輸入:Plot(1,2,4,9,16,1,2,3,4,5)MATLAB 劃出如以下圖形:編輯窗口n用來創建和修正M-files (MATLAB 腳本)協助窗口重慶郵電大學重慶郵電大學-數學建模數學建模The MATLAB Language MATLAB 言語的特點言語的特點Matlab的根本數據單元是不需

6、指定維數的矩的根本數據單元是不需指定維數的矩陣。陣。Matlab的一切計算都是經過雙精度進展的,的一切計算都是經過雙精度進展的,在內存中的數都是雙精度的。在內存中的數都是雙精度的。double 是一個雙精度浮點數,每個存儲的雙是一個雙精度浮點數,每個存儲的雙精度數用精度數用64位。位。char用于存儲字符,每個存儲的字符用用于存儲字符,每個存儲的字符用16位。位。 重慶郵電大學重慶郵電大學-數學建模數學建模程序程序M文件與文件與m函數函數圖形顯示圖形顯示流程控制流程控制其它輸出其它輸出函數函數語句語句變量變量各種運算符各種運算符MATLABMATLAB的程序構成:的程序構成:重慶郵電大學重慶郵

7、電大學-數學建模數學建模常變量及其命名規那么常變量及其命名規那么n變量名可以有數字、字母、下劃線構成;變量名可以有數字、字母、下劃線構成;n變量的首字符必需是字母;變量的首字符必需是字母;n區分變量名的大小寫區分變量名的大小寫n每個變量名最長只能包含每個變量名最長只能包含19個字符。個字符。重慶郵電大學重慶郵電大學-數學建模數學建模一. 矩陣:1.矩陣的建立與表示法:在命令窗口中輸入:A=1,2,3;4,5,6;7,8,9 可以得到: A = 1 2 3 4 5 6 7 8 9假設要顯示整行或整列,那么可以用(:)冒號來表示。冒(:)代表矩陣中行(ROWS)或列(COLUMNS)的全部。例如執

8、行命令:A(:,2),就會顯示第2列的全部,結果為: ans = 2 5 8重慶郵電大學重慶郵電大學-數學建模數學建模n其他特殊矩陣的生成方法: n1、eye (m,n)或eye (m) 產生m*n 或 m*m的單位矩陣。例如:n eye (3,4)與eye (3)分別產生如下矩陣:n 1 0 0 0 1 0 0n 0 1 0 0 0 1 0n 0 0 1 0 0 0 1n2、zeros (m,n) 或 zeros (m) 產生m*n 或m*m 的零矩陣。例如: zeros (3,4) 與zeros (3) 分別產生如下矩陣:n 0 0 0 0 0 0 0n 0 0 0 0 0 0 0n 0

9、0 0 0 0 0 0重慶郵電大學重慶郵電大學-數學建模數學建模3、ones (m,n) 或ones (m) 產生m*n或m*m的全部元素為1的矩 陣。例如:ones (3,4)與ones(3)分別產生如下矩陣: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12.常用矩陣函數: 1、d=eig (A) 前往矩陣A的特征值所組成的列向量; v,d=eig (A) 前往分別由矩陣A的特征向量和特征值以其為主對角線元素,其他元素為零的兩個矩陣。 例如執行命令:v,d=eig (A) 結果為:重慶郵電大學重慶郵電大學-數學建模數學建模 v = d = 0.2320

10、0.7858 0.4082 16.1168 0 0 0.5253 0.0868 -0.8165 0 -1.1168 0 0.8187 -0.6123 0.4082 0 0 -0.0000 其中v (:,i) 為d (i,i)所對應的特征向量。 2、det (A) 計算行列式A的值。例如:det (A) 結果為: ans = 0重慶郵電大學重慶郵電大學-數學建模數學建模 3、expm (A) 對矩陣A求冪。例如:expm (A) 結果為: ans = 1.0e+006 * 1.1189 1.3748 1.6307 2.5339 3.1134 3.6929 3.9489 4.8520 5.7552

11、4、inv (A) 求矩陣A的逆。例如:inv (A) 結果為: Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 2.055969e-018.ans = 1.0e+016 * -0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007 -0.4504 0.9007 -0.4504重慶郵電大學重慶郵電大學-數學建模數學建模5、orth (A) 前往對應于A的正交化矩陣。例如:orth (A) 結果為: ans = 0.2148 0.8872

12、 0.5206 0.2496 0.8263 -0.38796、poly (A) 假設A為一矩陣,那么前往A的特征多項式。例如:poly (A) 結果為: ans = 1.0000 -15.0000 -18.0000 -0.0000 假設A為一向量,那么前往以A的元素為根的特征多項式。例如: r=1,2,3; p= poly (r) 結果為: p = 1 -6 11 -67、rank (A) 計算矩陣A的秩。例如:r=rank (A) 結果為:r = 2 重慶郵電大學重慶郵電大學-數學建模數學建模3.矩陣的四那么運算符號: 加 “+ 減 “ 乘 “* 除 “/ 共軛轉置 “ 非共軛轉置 “.例如

13、:b=1+2i;3+4ib = 1.0000 + 2.0000i 3.0000 + 4.0000ibans = 1.0000 - 2.0000i 3.0000 - 4.0000ib.ans = 1.0000 + 2.0000i 3.0000 + 4.0000i重慶郵電大學重慶郵電大學-數學建模數學建模4.矩陣分解: 1、q,r=qr (A) 將矩陣A做正交化分解,使得A=q*r。q為單位矩陣 (unitary matrix),其范數norm為1。r為對角化的上三角矩陣。例如: q,r=qr(A) q = -0.1231 0.9045 0.4082 -0.4924 0.3015 -0.8165

14、-0.8616 -0.3015 0.4082 r = -8.1240 -9.6011 -11.0782 0 0.9045 1.8091 0 0 -0.0000 norm(q) ans = 1.0000重慶郵電大學重慶郵電大學-數學建模數學建模2、L,U=lu (A) 將矩陣A做對角線分解,使得A=L*U,L為下三角矩陣lower triangular matrix,U為上三角矩陣(upper triangular matrix)。 例如: L,U=lu(A) L = 0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0 U = 7.0000 8.000

15、0 9.0000 0 0.8571 1.7143 0 0 0.0000重慶郵電大學重慶郵電大學-數學建模數學建模二、多項式: 多項式是用向量方式來表示,從最右邊算起,第一個為0階系數,第二個為1階系數,依次類推。例如一個一元三次多項式:4x3+3x2+2x+1 用4 3 2 1來表示。1.多項式的運算: 1、乘:conv指令執行多項式的相乘運算,指令格式為:z=conv (x,y) 例如: x=1 3 5; y=2 4 6; z=conv(x,y) z = 2 10 28 38 30重慶郵電大學重慶郵電大學-數學建模數學建模假設要對兩個以上的多項式進展相乘,以反復運用conv指令,例如:x,y

16、同上conv(conv(x,y),x) ans = 2 16 68 172 284 280 1502、分解:與1相反,用deconv指令,其指令格式為:z,r=deconv (x,y)表示x除以 y商為z,余數為r。例如: z,r=deconv(z,x) z = 2 4 6 r = 0 0 0 0 0重慶郵電大學重慶郵電大學-數學建模數學建模3、求根:roots指令用于求多項式的根。例如:fx=1 3 2; rootoffx=roots(fx) rootoffx = -2 -1 4、polyval (p,x) 計算多項式p在x出的值,其中x可以是點或向量或矩陣。 例如: p = 1 -6 11

17、 -6; x=1; p1=polyval (p,x) 結果為: p1 = 0 x=1,2,3; p2=polyval (p,x) 結果為: p2 = 0 0 0重慶郵電大學重慶郵電大學-數學建模數學建模 x=A; p3=polyval (p,x) 結果為:結果為: p3 = 0 0 0 6 24 60 120 210 336 5、polyder (p) 求求p的微分多項式。的微分多項式。 例例如:如: p=1 -6 11 -6; dp=polyder(p) dp = 3 -12 11重慶郵電大學重慶郵電大學-數學建模數學建模 6、r,p,k=residue (x,y) 求x/y的部分因式分解。

18、假設多項式x,y都沒有重根,那么可把x/y的比值表示為x/y=r1/(s-p1)+r2/ (s-p2)+.+rn/ (s-pn)+ks例如 用residue指令求x/(x2+3x+2)的部分因式分解: x=1 0; y=1 3 2; r,p,k=residue(x,y) r = 2 -1 p = -2 -1 k = 重慶郵電大學重慶郵電大學-數學建模數學建模n當輸入三個參數 r,p,k 時,該函數又會生成原來的函數。例如:n ?x,y=residue(r,p,k)n x =n 1 0n y =n 1 3 2重慶郵電大學重慶郵電大學-數學建模數學建模三 符號變量、符號表達式、籠統函數: 函數sy

19、m用于生成符號變量和符號表達式,如: x=sym(x) a=sym(alpha)分別創建變量x, alpha f=sym(a*x2+b*x+c)創建變量表達式f ,但要留意此式并沒有自動創建變量a, b, c, x??梢杂煤瘮祍yms對多個變量同時定義,如 : syms a b c x 函數sym也可以用來表示確定的函數,如 f=sym (f(x) 生成函數f (x) 。重慶郵電大學重慶郵電大學-數學建模數學建模四 常見符號計算:1.微分:diff是求微分最常用的函數。其輸入參數既可以是函數表達式,也可以是符號矩陣。Diff (f, x, n)表示對f關于x求n階導數。例如:1).下面程序段將

20、生成表達式sin (ax), 并分別對其中的x和a求導。 ?syms a x ?f=sin(a*x); ?df=diff(f,x) df = cos(a*x)*a ?dfa=diff(f,a) dfa = cos(a*x)*x重慶郵電大學重慶郵電大學-數學建模數學建模2、假設輸入參數為矩陣,將對矩陣中的每個元素求導。 ?syms a x ?A=-sin(a*x),sin(a*x);cos(a*x),cos(a*x) A = -sin(a*x), sin(a*x) cos(a*x), cos(a*x) ?dy=diff(A,x) dy = -cos(a*x)*a, cos(a*x)*a -sin

21、(a*x)*a, -sin(a*x)*a重慶郵電大學重慶郵電大學-數學建模數學建模3、可用函數jacobian來計算Jacobi矩陣。 ?syms r l f ?x=r*cos(l)*cos(f); ?y=r*cos(l)*sin(f); ?z=r*sin(l); ?J=jacobian(x;y;z,r l f) J = cos(l)*cos(f), -r*sin(l)*cos(f), -r*cos(l)*sin(f) cos(l)*sin(f), -r*sin(l)*sin(f), r*cos(l)*cos(f) sin(l), r*cos(l), 0 重慶郵電大學重慶郵電大學-數學建模數學

22、建模2.積分:用函數int來求符號表達式的積分。命令格式為: int (f, r, x0, x1)其中f為所要積分的表達式,r為積分變量,假設為定積分,那么x0,x1為積分上下限。例: ?sym x; ?sym k real ?f=exp(-(k*x)2) f = exp(-k2*x2) ?int(f,x,-inf,inf) ans = signum(k)/k*pi(1/2)重慶郵電大學重慶郵電大學-數學建模數學建模3.級數求和:函數用于對符號表達式求和。例: ?syms k; ?s1=symsum(1/k2,1,inf) s1 = 1/6*pi2 重慶郵電大學重慶郵電大學-數學建模數學建模4

23、.極限:用函數limit來求表達式的極限。 函數limit的常用調用格式: 數學表達式 命令格式 Limit (f ),或limit (f , x ) Limit (f , x , a) , 或 limit (f , a ) Limit (f , x , a , left) Limit (f , x , a , right)(lim0 xfx)(limxfax)(limxfax)(limxfax重慶郵電大學重慶郵電大學-數學建模數學建模5.化簡: 1、collect (f ) 將表達式中一樣次冪的項合并,也可以再輸入一個參數指定以哪個變量的冪次合并。 2、expand ( f ) 將表達式展開

24、。 3、horner ( f ) 將表達式轉換為嵌套格式。 4、factor ( f ) 將表達式分解因式,并且分解后的多項式的一切系數都為有理數。 5、simplify ( f ) 利用函數規那么對表達式進展化簡。重慶郵電大學重慶郵電大學-數學建模數學建模重慶郵電大學重慶郵電大學-數學建模數學建模第二節第二節MATLAB的程序設計的程序設計 重慶郵電大學重慶郵電大學-數學建模數學建模1 腳本文件和函數文件腳本文件和函數文件11 M腳本文件腳本文件 對于一些比較簡單的問題對于一些比較簡單的問題 ,在指令窗中直接輸入指令計算,在指令窗中直接輸入指令計算 。 對于復雜計算,采用腳本文件對于復雜計算

25、,采用腳本文件Script file最為適宜最為適宜 。 MATLAB只是按文件所寫的指令執行只是按文件所寫的指令執行 。 M腳本文件的特點是:腳本文件的特點是: 腳本文件的構成比較簡單,只是一串按用戶意圖陳列而成腳本文件的構成比較簡單,只是一串按用戶意圖陳列而成的包括控制流向指令在內的的包括控制流向指令在內的MATLAB指令集合。指令集合。 腳本文件運轉后腳本文件運轉后 ,所產生的一切變量都駐留在,所產生的一切變量都駐留在 MATLAB根本任務空間根本任務空間Base workspace中。只需用戶不運用去除中。只需用戶不運用去除指令指令clear, MATLAB指令窗不封鎖,這些變量將不斷

26、指令窗不封鎖,這些變量將不斷保管在根本任務空間中。保管在根本任務空間中。M文件有兩種方式文件有兩種方式 :腳本文件:腳本文件Script File和函數文件和函數文件Function File 。這兩種文件的擴展名,均為。這兩種文件的擴展名,均為“ . m 。重慶郵電大學重慶郵電大學-數學建模數學建模1 腳本文件和函數文件續腳本文件和函數文件續112 M函數文件函數文件 與腳本文件不同與腳本文件不同 ,函數文件猶如一個,函數文件猶如一個“黑箱,把一些數據黑箱,把一些數據送進并經加工處置,再把結果送出來。送進并經加工處置,再把結果送出來。 MATLAB提供的函數指令大部分都是由函數文件定義的。提

27、供的函數指令大部分都是由函數文件定義的。 M函數文件的特點是:函數文件的特點是: 從方式上看從方式上看 ,與腳本文件不同,與腳本文件不同 ,函數文件的笫一行總是,函數文件的笫一行總是以以 “function引導的引導的“函數聲明行。函數聲明行。從運轉上看從運轉上看 ,與腳本文件運轉不同,與腳本文件運轉不同 ,每當函數文件運轉,每當函數文件運轉, MATLAB就會專門為它開辟一個暫時任務空間,稱為函數就會專門為它開辟一個暫時任務空間,稱為函數任務空間任務空間 Function workspace 。當執行文件最后一條。當執行文件最后一條指令時指令時 ,就終了該函數文件的運轉,同時該暫時函數空間,

28、就終了該函數文件的運轉,同時該暫時函數空間及其一切的中間變量就立刻被去除。及其一切的中間變量就立刻被去除。 MATLAB允許運用比允許運用比 “標稱數目標稱數目 較少的輸入輸出宗量,較少的輸入輸出宗量,實現對函數的調用實現對函數的調用 。重慶郵電大學重慶郵電大學-數學建模數學建模1 腳本文件和函數文件續腳本文件和函數文件續213 M文件的普通構造文件的普通構造 由于從構造上看由于從構造上看 ,腳本文件只是比函數文件少一個,腳本文件只是比函數文件少一個“函數聲函數聲明行,所以只須描畫清楚函數文件的構造明行,所以只須描畫清楚函數文件的構造 。 典型典型 M函數文件的構造如下函數文件的構造如下 :

29、函數聲明行:位于函數文件的首行,以關鍵字函數聲明行:位于函數文件的首行,以關鍵字 functio 開頭,開頭,函數名以及函數的輸入輸出宗量都在這一行被定義。函數名以及函數的輸入輸出宗量都在這一行被定義。 笫一注釋行:緊隨函數聲明行之后以笫一注釋行:緊隨函數聲明行之后以%開頭笫一注釋行。開頭笫一注釋行。該行供該行供lookfor關鍵詞查詢和關鍵詞查詢和 help在線協助運用在線協助運用 。 在線協助文本區在線協助文本區 :笫一注釋行及其之后的延續以:笫一注釋行及其之后的延續以%開頭的開頭的一切注釋行構成整個在線協助文本。一切注釋行構成整個在線協助文本。 編寫和修正記錄:與在線協助文本區相隔一個編

30、寫和修正記錄:與在線協助文本區相隔一個“空行,也空行,也以以%開頭,標志編寫及修正該開頭,標志編寫及修正該M文件的作者和日期等文件的作者和日期等 。 函數體:為明晰起見,它與前面的注釋以函數體:為明晰起見,它與前面的注釋以“空行相隔??招邢喔?。重慶郵電大學重慶郵電大學-數學建模數學建模2 函數調用和參數傳送函數調用和參數傳送21 部分變量和全局變量部分變量和全局變量 部分部分Local變量:它存在于函數空間內部的中間變量,變量:它存在于函數空間內部的中間變量,產生于該函數的運轉過程中,其影響范圍也僅限于該函數本產生于該函數的運轉過程中,其影響范圍也僅限于該函數本身身 。 全局全局Global變

31、量:經過變量:經過 global 指令,指令,MATLAB也允許幾也允許幾個不同的函數空間以及根本任務空間共享同一個變量,這種被個不同的函數空間以及根本任務空間共享同一個變量,這種被共享的變量稱為全局變量。共享的變量稱為全局變量。22 函數調用函數調用 在在MATLAB中,調用函數的常用方式是:中,調用函數的常用方式是:輸出參數輸出參數1,輸出參數輸出參數2, = 函數名函數名(輸入參數輸入參數1,輸入參數輸入參數2, ) 函數調用可以嵌套,一個函數可以調用別的函數,甚至調函數調用可以嵌套,一個函數可以調用別的函數,甚至調用它本人用它本人 遞歸調用。遞歸調用。重慶郵電大學重慶郵電大學-數學建模

32、數學建模2 函數調用和參數傳送續函數調用和參數傳送續23 參數傳送參數傳送 MATLAB在函數調用上有一個與眾不同之處在函數調用上有一個與眾不同之處 :函數所傳送的:函數所傳送的參數具有可調性參數具有可調性 。 傳送參數數目的可調性來源于如下兩個傳送參數數目的可調性來源于如下兩個MATLAB永久變量:永久變量: 函數體內的函數體內的 nargin 給出調用該函數時的輸入參數數目。給出調用該函數時的輸入參數數目。 函數體內的函數體內的 nargout 給出調用該函數時的輸出參數數目。給出調用該函數時的輸出參數數目。 只需在函數文件中包括這兩個變量,就可以知道該函數文件只需在函數文件中包括這兩個變

33、量,就可以知道該函數文件調用時的輸入參數和輸出參數數目。調用時的輸入參數和輸出參數數目。 值得留意:值得留意:nargin、 nargout 本身都是函數,不是變量,所本身都是函數,不是變量,所以用戶不能賦值,也不能顯示。以用戶不能賦值,也不能顯示。 “變長度輸入輸出宗量:變長度輸入輸出宗量:varargin 、 varrgout。具有接受。具有接受 “恣意多輸入恣意多輸入 、前往、前往“恣意多輸出的才干恣意多輸出的才干 。 跨空間變量傳送:跨空間變量傳送:evalin。參考參考 : circle .m,am1.m重慶郵電大學重慶郵電大學-數學建模數學建模23 MATLAB的程序構造和控制流的

34、程序構造和控制流231 程序構造程序構造 循環構造:循環構造: MATLAB提供兩種循環方式。提供兩種循環方式。 順序構造順序構造 分支構造:分支構造: ifelseend 。forend 循環和循環和while-end循環。循環。232 程序流控制程序流控制 常用指令:常用指令:return,echo,input,pause,keyboard,break。 switch-case 構造。構造。 try-catch 構造。構造。 警示指令:警示指令:error, warning 。重慶郵電大學重慶郵電大學-數學建模數學建模23 MATLAB的程序構造和控制流續的程序構造和控制流續233 圖形用

35、戶界面圖形用戶界面GUI編程編程 現代的主流運用程序曾經從命令行的交互方式轉變為以圖現代的主流運用程序曾經從命令行的交互方式轉變為以圖形界面為主的交互方式,這主要是由于它給用戶帶來了操作形界面為主的交互方式,這主要是由于它給用戶帶來了操作和控制的方便與靈敏性。面向對象編程和控制的方便與靈敏性。面向對象編程 MATLAB可以以比較簡單的方式實現一系列的圖形界面功可以以比較簡單的方式實現一系列的圖形界面功能。經過對控件、菜單屬性的設置和能。經過對控件、菜單屬性的設置和 Callback 的編寫,就可的編寫,就可以滿足大多數用戶的需求。以滿足大多數用戶的需求。 控件的控件的 Callback 屬性:

36、屬性: Callback 屬性的取值是字符串,可屬性的取值是字符串,可以是某個以是某個M文件名或一小段文件名或一小段MATLAB語句。當用戶激活控件語句。當用戶激活控件對象例如對象例如 :在控件對象圖標上單擊鼠標左鍵:在控件對象圖標上單擊鼠標左鍵 時,運用程時,運用程序就運轉序就運轉 Callback 屬性定義的子程序。屬性定義的子程序。 菜單的菜單的 Callback 屬性:屬性: Callback 屬性的取值是字符串,可屬性的取值是字符串,可以是某個以是某個M文件名或一小段文件名或一小段MATLAB語句。當用戶激活菜單語句。當用戶激活菜單對象時,假設沒有子菜單就運轉對象時,假設沒有子菜單就

37、運轉 Callback 屬性定義的子程序。屬性定義的子程序。假設有,先運轉假設有,先運轉 Callback 屬性定義的子程序,再顯示子菜單。屬性定義的子程序,再顯示子菜單。重慶郵電大學重慶郵電大學-數學建模數學建模24 M文件的調試文件的調試 編寫編寫 M文件時,錯誤文件時,錯誤Bug在所難免。錯誤有兩種:語法在所難免。錯誤有兩種:語法Syntax錯誤和運轉錯誤和運轉Run-time錯誤。錯誤。 語法錯誤是指變量名、函數名的誤寫,標點符號的缺、漏等。語法錯誤是指變量名、函數名的誤寫,標點符號的缺、漏等。對于這類錯誤,通常能在運轉時發現,終止執行,并給出相應對于這類錯誤,通常能在運轉時發現,終止

38、執行,并給出相應的錯誤緣由以及所在行號。的錯誤緣由以及所在行號。 運轉錯誤是算法本身引起的,發生在運轉過程中。相對語法運轉錯誤是算法本身引起的,發生在運轉過程中。相對語法錯誤而言,運轉錯誤較難處置錯誤而言,運轉錯誤較難處置 。尤其是。尤其是M函數文件,它一旦運函數文件,它一旦運轉停頓,其中間變量被刪除一空,錯誤很難查找。轉停頓,其中間變量被刪除一空,錯誤很難查找。 有兩種調試方法:直接調試法和工具調試法。有兩種調試方法:直接調試法和工具調試法。重慶郵電大學重慶郵電大學-數學建模數學建模24 M文件的調試續文件的調試續1 直接調試法:可以用下面方法發現某些運轉錯誤。直接調試法:可以用下面方法發現

39、某些運轉錯誤。 在在M文件中,將某些語句后面的分號去掉,文件中,將某些語句后面的分號去掉, 迫使迫使M文件輸文件輸出一些中間計算結果,以便發現能夠的錯誤。出一些中間計算結果,以便發現能夠的錯誤。 在適當的位置,添加顯示某些關鍵變量值的語句包括運在適當的位置,添加顯示某些關鍵變量值的語句包括運用用 disp 在內。在內。 利用利用 echo 指令,使運轉時在屏幕上逐行顯示文件內容。指令,使運轉時在屏幕上逐行顯示文件內容。echo on 能顯示能顯示M腳本文件;腳本文件;echo FunNsme on 能顯示名為能顯示名為FunNsme 的的M函數文件。函數文件。 在原在原M腳本或函數文件的適當位

40、置,增添指令腳本或函數文件的適當位置,增添指令 keyboard 。 keyboard 語句可以設置程序的斷點語句可以設置程序的斷點 。 經過將原經過將原M函數文件的函數聲明行注釋掉,可使一個中間函數文件的函數聲明行注釋掉,可使一個中間變量難于察看的變量難于察看的M函數文件變為一個一切變量都保管在根函數文件變為一個一切變量都保管在根本任務空間中的本任務空間中的M腳本文件。腳本文件。重慶郵電大學重慶郵電大學-數學建模數學建模第三節第三節 優化問題解法優化問題解法重慶郵電大學重慶郵電大學-數學建模數學建模一、無約束優化問題無約束極小化問題的標準性為:)(minxF其中x 為n 維變元向量。用 MA

41、TLAB 求解以上問題的基本步驟為: 1、首先建立函數形式的 M-文件 fun.m: function f=fun(x) f=F(x) 2、命令的基本格式: (1), min(21xxfunfx (2), (min0 xfunufx ;或), (min0 xfunsfx (3), (min0optionsxfunufx ; 或), (min0optionsxfunsfx (4) ), (0 xfunleastsqx 或), (0optionsxfunleastsqx 重慶郵電大學重慶郵電大學-數學建模數學建模例1: Rosenbrock函數21221221)1 ()(100),(xxxxxf的

42、最優解(極小)為) 1 , 1 (x,極小值為0f。試用不同算法求數值最優解。初始值選為)2 , 2 . 1()0(x。 二、線性規劃問題重慶郵電大學重慶郵電大學-數學建模數學建模例 2、 6 , 2 , 1,90008. 003. 010005. 002. 070005. 002. 085003. 003. 003. 001. 001. 001. 0. .6 . 064. 072. 032. 028. 04 . 0max0635241654321654321jxxxxxxxxxxxxxtsxxxxxxzj 三、非線性規劃問題二次規劃的標準型為: bAxtsxcHxxzTT. .21min 重

43、慶郵電大學重慶郵電大學-數學建模數學建模例 3、 0, 0222. .2262),(min2121212221212121xxxxxxtsxxxxxxxxf 重慶郵電大學重慶郵電大學-數學建模數學建模一般非線性規劃的標準型為: VUBxVLBxGtsxF0)(. .0)(min 其中x為n維變元向量,)(xG為m維非線性函數組成的向量。 用 MATLAB 軟件求解的基本步驟如下: 1、首先建立函數形式的 M 文件 fun.m: function f,g=fun(x); f=F(x); g=G1(x);G2(x);Gm(x); 2、命令的基本格式有如下三個: (1) x=constr(fun,x

44、0); (2) x=constr(fun,x0,options); (3) x=constr(fun,x0,options,VLB,VUB) 重慶郵電大學重慶郵電大學-數學建模數學建模重慶郵電大學重慶郵電大學-數學建模數學建模第四節第四節圖形處置圖形處置重慶郵電大學重慶郵電大學-數學建模數學建模 基基 本本 繪繪 圖圖 函函 數數1 plot ,plot3 建立向量或矩陣的圖形2 Loglog x、y軸都取對數標度建立圖形3 Semilogx x軸用于對數標度,y軸線性標度繪制圖形4 Semilogy y軸用于對數標度,x軸線性標度繪制圖形5 Title 給圖形加標題6 Xlabel,Ylab

45、el 給x,y軸加標志7 Text 在圖形指定的位置上加文本字符串8 gtext 在鼠標的位置上加文本字符串9 grid 翻開網格線重慶郵電大學重慶郵電大學-數學建模數學建模 繪繪 圖圖 入入 門門1 plot的根本調用格式 2 對於變化猛烈的函數,可用fplot來進展較準確的繪圖 3 對符號函數作圖可用ezplot 重慶郵電大學重慶郵電大學-數學建模數學建模特 殊 二三維 繪 圖 函 數1 bar(x,y) (barh(x,y),bar3,bar3h) 直方程度圖2 comet (x,y) (comet3) 建立彗星流動圖3 errorbar(x,y,l,u) 圖形加上誤差范圍4 polar

46、 (theta,rho) 極坐標圖hist (y,x) 向量統計的直方圖,其中y為要統計的。當x為標 量時,x指定了統計的區間數;當x為向量時,以該向量中 各元素為中心進展統計,區間數等于x向量的長度。6 rose(theta) 極坐標頻數累計柱狀圖重慶郵電大學重慶郵電大學-數學建模數學建模9 fill 實心圖7 stairs (x,y) 階梯圖8 stem(x,y,fill) 針狀圖11 compass 羅盤圖10 feather 羽毛圖quiver,quiver3 向量場圖,通常與contour(),gradient() 配合運用.13 pie,pie3 餅圖重慶郵電大學重慶郵電大學-數學

47、建模數學建模繪繪 制制 三三 維維 曲曲 面面mesh(z)語句給出矩陣語句給出矩陣Z元素的三消隱圖,元素的三消隱圖,surf和和mesh的的用法類似。為了方便測試立體繪圖,用法類似。為了方便測試立體繪圖,MATLAB提供了一個提供了一個peaks函數,可產生一個凹凸有致的曲面,包函數,可產生一個凹凸有致的曲面,包 含了三個部分含了三個部分極大點及三個部分極小點,極大點及三個部分極小點, 要畫出此函數的最快方法即是要畫出此函數的最快方法即是直接鍵入直接鍵入peaks. 三維函數還有三維函數還有meshc(), meshz(), surfc(), surfl(), contourf(), wat

48、erfall()等等. 重慶郵電大學重慶郵電大學-數學建模數學建模第五節第五節 解方程解方程重慶郵電大學重慶郵電大學-數學建模數學建模一 般 的 代 數 方 程 函數solve用于求解普通代數方程的根,假定S為符號表達式,命令solve (S)求解表達式等于0的根,也可以再輸入一個參數指定未知數。例: syms a b c x S=a*x2+b*x+c; solve(S)ans = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)b=solve(S,b) b = -(a*x2+c)/x重慶郵電大學重慶郵電大學-數學建模數學建模線 性 方 程

49、 組 線性方程組的求解問題可以表述為:給定兩個矩陣A和B,求解滿足方程AX=B或XA=B的矩陣X。方程AX=B的解用X=AB或X=inv (A)*B表示;方程XA=B的解用X=B/A或X=B*inv (A)表示。不過斜杠和反斜杠運算符計算更準確,占用內存更小,算得更快。 線 性 微 分 方 程 函數dsolve用于線性常微分方程組的符號求解。在方程中用大寫字母D表示一次微分,D2,D3分別表示二階、三階微分,符號D2y相當于y關于t的二階導數。 函數dsolve 的輸出方式 格式 闡明y=dsolve (Dyt=y0*y ) 一個方程,一個輸出參數u,v=dsolve (Du=v,Dv=u)

50、兩個方程,兩個輸出 參數S=dsolve (Df=g,Dg=h,Dh=-2*f ) 方程組的解以S.f S.g S.h 構造數組的方式輸出例例 1 求 21udtdu 的通解.解解 輸入命令:dsolve(Du=1+u2,t) 結 果:u = tg(t-c)例例 2 求微分方程的特解. 15)0( , 0)0(029422yyydxdydxyd 解解 輸入命令輸入命令: y=dsolve(D2y+4*Dy+29*y=0,y(0)=0,Dy(0)=15,x)結 果 為 : y =3e-2xsin5x 例例 3 求微分方程組的通解. zyxdtdzzyxdtdyzyxdtdx244354332解解

51、 輸入命令輸入命令 : x,y,z=dsolve(Dx=2*x-3*y+3*z,Dy=4*x-5*y+3*z,Dz=4*x-4*y+2*z, t); x=simple(x) % 將將x化簡化簡 y=simple(y) z=simple(z)結 果 為:x = (c1-c2+c3+c2e -3t-c3e-3t)e2t y = -c1e-4t+c2e-4t+c2e-3t-c3e-3t+(c1-c2+c3)e2t z = (-c1e-4t+c2e-4t+c1-c2+c3)e2t 非 線 性 微 分 方 程 t,x=solverf,ts,x0,optionsode45 ode23 ode113ode1

52、5sode23s由待解方程寫成的m-文件名ts=t0,tf,t0、tf為自變量的初值和終值函數的初值ode23:組合的2/3階龍格-庫塔-芬爾格算法ode45:運用組合的4/5階龍格-庫塔-芬爾格算法自變量值函數值用于設定誤差限(缺省時設定相對誤差10-3, 絕對誤差10-6),命令為:options=odesetreltol,rt,abstol,at, rt,at:分別為設定的相對誤差和絕對誤差. 1、在解、在解n個未知函數的方程組時,個未知函數的方程組時,x0和和x均為均為n維向量,維向量,m-文件中的待解方程組應以文件中的待解方程組應以x的分量方式寫成的分量方式寫成. 2、運用Matla

53、b軟件求數值解時,高階微分方程必需等價地變換成一階微分方程組.留意留意:例例 4 0)0( ; 2)0(0)1 (1000222xxxdtdxxdtxd解解: 令令 y1=x,y2=y1則微分方程變為一階微分方程組:0)0(, 2)0()1 (1000211221221yyyyyyyy1、建立m-文件vdp1000.m如下: function dy=vdp1000(t,y) dy=zeros(2,1); dy(1)=y(2); dy(2)=1000*(1-y(1)2)*y(2)-y(1); 2、取t0=0,tf=3000,輸入命令: T,Y=ode15s(vdp1000,0 3000,2 0)

54、; plot(T,Y(:,1),-)3、結果如圖050010001500200025003000-2.5-2-1.5-1-0.500.511.52 例例 5 解微分方程組. 1)0(, 1)0(, 0)0(51. 0321213312321yyyyyyyyyyyy解解 1、建立、建立m-文件文件rigid.m如如下:下: function dy=rigid(t,y) dy=zeros(3,1); dy(1)=y(2)*y(3); dy(2)=-y(1)*y(3); dy(3)=-0.51*y(1)*y(2);2、取t0=0,tf=12,輸入命令: T,Y=ode45(rigid,0 12,0

55、1 1); plot(T,Y(:,1),-,T,Y(:,2),*,T,Y(:,3),+)3、結果如圖024681012-1-0.8-0.6-0.4-0.200.20.40.60.81圖中,y1的圖形為實線,y2的圖形為“*線,y3的圖形為“+線.NoImage第六節第六節回歸分析回歸分析一:一元線性與非線性回歸分析 引例:鋼材消費量與國民收入的關系 一元回歸模型與回歸分析 MATLAB軟件實現 簡介一元非線性回歸模型 實驗 為了研討鋼材消費量與國民收入之間的關系,在統計年鑒上查得一組歷史數據。引例:鋼材消費量與國民收入的關系 年 份196419651966197819791980消費(噸)69

56、8872988144627362825收入(億)109712841502294831553372 試分析預測假設1981年到1985年我國國民收入以4.5%的速度遞增,鋼材消費量將到達什么樣的程度? 鋼材消費量-實驗目的(因變量)Y;國民收入-自變量 x;建立數據擬合函數 y = EY | x= f(x);作擬合曲線圖形分析。 問題分析:10001500200025003000350050010001500200025003000 鋼材消費量y與國民收入x的散點圖y=a+bx回歸分析是研討變量間相關關系的一種統計分析。特點:實驗目的因變量是隨機變量。圖形解釋:y = EY | x= f(x)假

57、設:f(x) = ax+bxx0E(Y|x0)y0 x1E(Y|x1)假設: y = EY | x= f(x)1Y是一個正態隨機變量,即Y服從正態分 布,并且有方差 D(Y)=2。2根據觀測值作的散點圖,察看出函數f(x) 是線性方式還是非線性方式。 回歸模型及回歸分析1、一元線性回歸模型、一元線性回歸模型), 0(;2NbxaY),(2bxaNY或需求處理的問題: 1 在回歸模型中如何估計參數a、b和2?知識引見 2 模型的假設能否正確?需求檢驗。3利用回歸方程對實驗目的y進展預測或控制?),(,0000dydyxbay區間估計估計量參數估計 設觀測值為(xi, yi)i=1,2,n), 代

58、入模型中,yi = a + bxi +i解出的參數記為ba, 那么回歸方程:xbay21)(),(mininiibxaybaQ最小二乘法:殘差值iiiiyyxbay回歸模型的假設檢驗0:; 0:10bHbH提出問題:1、相關系數檢驗DYDXYXr),cov(niiniiniiiyyxxyyxxr12121)()()(| r |1| r |1,線性相關| r |0,非線性相關模型:Y = a + bx +H0的回絕域為: )2(| |0nrr-11 |0r(n-2)-r(n-2)2、F-檢驗法平方和分解公式:niiniiiniiyyyyyy121212)()()(UQLyy記為)2, 1 ()2

59、, 1 ()2/(10nFFnFnQUF拒絕域實測值 估計值殘差值,剩余平方和,越小越好以為線性回歸效果好預測與控制給定的自變量x0,給出E(y0)的點估計量: 00 xbayy0的置信度為(1)%的預測區間為: ),(00nndydyxxnLxxnntd202)(11)2(22nQ 設y在某個區間(y1, y2)取值時, 應如何控制x的取值范圍, 這樣的問題稱為控制問題。 小結:), 0(;2NbxaY),(2bxaNY或 模型1、估計參數a,b,2;2、檢驗模型正確與否;即b03、預測或控制; 知數據(xi, yi)(i =1,2,n), 如何利用MATLAB軟件實現以上的統計計算?MAT

60、LAB軟件實現運用命令regress實現一元線性回歸模型的計算 b = regress (Y, X) 或 b, bint, r, rint, stats = regress(Y, X, alpha)nnyyxx11Y,11X回歸系數a,b以及它們的置信區間殘差向量e=Y-Y及它們的置信區間相關系數R2,F-統計量和與0對應的概率p。殘差及其置信區間可以用rcoplot(r,rint)畫圖。默許值是0.05引例求解引例求解輸入:輸入:(hg1.m)x=1097 1284 1502 4 1303 1555 1917 2051 2111 2286 2311 2019 2435 2625 2948 3

溫馨提示

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

評論

0/150

提交評論