《MATLAB入門簡介》PPT課件.ppt_第1頁
《MATLAB入門簡介》PPT課件.ppt_第2頁
《MATLAB入門簡介》PPT課件.ppt_第3頁
《MATLAB入門簡介》PPT課件.ppt_第4頁
《MATLAB入門簡介》PPT課件.ppt_第5頁
已閱讀5頁,還剩118頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MATLAB 入門簡介,概 述,Matlab是由美國Mathworks公司推出的一個科技應(yīng)用軟件,它的名字是由矩陣(MATrix)和實驗室 ( LABoratory)的頭三個字母組成。顧名思義,它相當(dāng)于把矩陣放在實驗室里做實驗,Matlab是以矩陣為單位進行處理的,也就是它把一切都當(dāng)作矩陣,即使是一個數(shù)也是。,Matlab是一種高性能的、用于工程計算的編程軟件,它把科學(xué)計算、結(jié)果可視化和編程都集中在一個使用非常方便的環(huán)境中。,Matlab是一種廣泛應(yīng)用于工程計算及數(shù)值分析領(lǐng)域的新型高級語言,自1984年由美國 MathWorks 公司推向市場以來,歷經(jīng)二十多年的發(fā)展與競爭,現(xiàn)已成為國際公認(rèn)的最優(yōu)秀的工程應(yīng)用開發(fā)環(huán)境。Matlab功能強大、簡單易學(xué)、編程效率高,深受廣大科技工作者的歡迎。,在歐美各高等院校,Matlab已經(jīng)成為線性代數(shù)、自動控制理論、數(shù)字信號處理、時間序列分析、動態(tài)系統(tǒng)仿真、圖像處理等課程的基本教學(xué)工具,成為大學(xué)生、碩士生以及博士生必須掌握的基本技能。,概 述(續(xù)),Matlab 語言的首創(chuàng)人是 C. Moler,Matlab = Matrix Laboratry 矩陣實驗室,概 述 (續(xù)),1984年The MathWorks的公司推出了第一個 Matlab 的商業(yè)版本,用 C 語言作了完全的改寫。,其后又增添了豐富多彩的圖形圖像處理、多媒體功能、符號運算和它與其他流行軟件的接口功能,使得 Matlab 的功能越來越強大。,到九十年代初期,在國際上 30 幾個數(shù)學(xué)類科技應(yīng)用軟件中, Matlab 在數(shù)值計算方面獨占鰲頭,而 Mathematica 和 Maple 則分居符號計算軟件的前兩名。,Matlab的發(fā)展 1984年,Matlab 1.0版 (DOS版,182K,20來個函數(shù)) 1992年,Matlab 4.0版(93年推出Windows版本) 1994年,Matlab 4.2, 1999年,Matlab 5.3 2000年,Matlab 6.0, 2002年,Matlab 6.5 2004年,Matlab 7.0, 2006年,Matlab2006a,目前,Matlab 已經(jīng)成為國際上最流行的科學(xué)與工程計算的軟件工具,它已經(jīng)不僅僅是一個“矩陣實驗室”了,而成為了一種具有廣泛應(yīng)用前景的全新的計算機高級編程語言了,有人稱它為“第四代”計算機語言。 就影響而言,至今仍然沒有一個別的計算軟件可與 Matlab 匹敵。,概 述(續(xù)),數(shù)值計算功能,Matlab是一個交互式軟件系統(tǒng) 給出一條命令,立即就可以得出該命令的結(jié)果,Matlab 的特點與主要功能,Matlab以矩陣作為基本單位,但無需預(yù)先指定維數(shù)(動態(tài)定維) 按照IEEE的數(shù)值計算標(biāo)準(zhǔn)進行計算 提供十分豐富的數(shù)值計算函數(shù),方便計算,提高效率 Matlab命令與數(shù)學(xué)中的符號、公式非常接近,可讀性強,容易掌握,符號運算功能,和著名的 Maple 相結(jié)合,使得 Matlab 具有強大的符號計算功能,繪圖功能,Matlab 提供了豐富的繪圖命令,能實現(xiàn)一系列的可視化操作,Matlab 的特點與主要功能,命令窗口,當(dāng)前工作目錄,當(dāng)前工作空間,輸入命令的歷史記錄,命令 提示符,MATLAB的聯(lián)機幫助,MATLAB 具有完善的幫助系統(tǒng),Matlab 語言規(guī)則,Matlab 區(qū)分大小寫,它的命令和函數(shù)全是小寫的,一行可以輸入幾個命令,用分號“;” 或逗號“,”隔開,續(xù)行符: “”(三個點),如果語句很長,可用續(xù)行符將一個語句寫成多行。續(xù)行符的前最好留一個空格。,注釋符: “%”,其后面的內(nèi)容為注釋,對 Matlab 的計算不產(chǎn)生任何影響,Matlab 變量,Matlab中變量名是以字母開頭,可以由字母、數(shù)字或下劃線組成,最多 63 個字符(6.5 版本前為 19 個),變量賦值: 變量表達式,賦值號左邊必須是變量!,系統(tǒng)預(yù)定義變量:eps, pi, Inf, NaN, i, j,who、whos、clear,save、load,save 將所有變量存入文件 matlab.mat,save mydat / save mydat.mat 將所有變量存入 mydata.mat,save 文件名 變量名列表,數(shù)與算術(shù)表達式,Matlab 中的數(shù)值表示一般采用十進制,可以帶小數(shù)點和正負(fù)號。,(1) Matlab 中的數(shù)默認(rèn)是雙精度實數(shù),(2) 浮點運算的相對精度為 eps,Matlab 中eps2.22e-016,即大約保持 16 位有效數(shù)字。,(3) Matlab 中數(shù)的表示范圍為:10308 10308,(4) Matlab 中的虛部單位:i, j,z=3+4i (4 與 i 之間無空格), z=3+4*i,如:6,+6,-6.6,0.006,6.6e-6,100e60,-0.06e-012,數(shù)據(jù)的輸入,數(shù)據(jù)輸入,(1) 直接輸入: a=1 2 ; 3, 4,(2) 冒號 “:” 運算符:初值 : 步長 : 終值,同一行中各元素之間用“空格”或“,” (英文狀態(tài)下) 分開; 行與行之間用 “;” 或“回車”分開,a=1:5, b=0:pi/4:pi,(3) 由向量或小矩陣生成:X=a ; b,(5) 交互式輸入: input,n=input(Please input n: ),(4) 由 數(shù)據(jù)文件生成,特殊矩陣生成函數(shù),(6) 一些生成特殊矩陣的函數(shù),矩陣元素的操作,矩陣元素的提取,(1) 單個元素:A ( 2, 3 ),(2) 整行或整列:A ( 2, : ), A ( :, 3 ),=?,=?,(3) 子矩陣:A ( 2:5, 4:8 ), A ( 1,3, 2,4 ) , A ( 3,2, 2,4 ),A ( :, : ) 與 A ( : ) 的區(qū)別?,(4) 刪除矩陣的行列:,A =, A ( 3, : )=, A ( :, 2,4 )=,數(shù)據(jù)輸出格式,Matlab 以雙精度執(zhí)行所有的運算,結(jié)果可以在屏幕上輸出,同時賦給指定變量,若無指定變量,則系統(tǒng)會自動將結(jié)果賦給變量 “ans”,Matlab 中數(shù)據(jù)的輸出格式可以通過 format 命令指定,format 命令只改變變量的輸出格式,但不會影響變量的值, format long, format rational, format compact,特殊矩陣生成函數(shù),MATLAB 矩陣運算,矩陣的轉(zhuǎn)置:共軛“”,非共軛“.”,矩陣的翻轉(zhuǎn)和旋轉(zhuǎn): fliplr、flipud、rot90,矩陣元素重組: reshape(A, m, n),查看矩陣的大?。簊ize(A)、size(A, 1)、size(A, 2),將 A 排成一個m n 的矩陣,滿足 m n = #A,數(shù)組運算(點運算):.*,./,.,.,矩陣算術(shù): +,-,*,/,,參與 “+, -, .*, ./ , .” 運算的對象必須具有相同的形狀,MATLAB 矩陣運算,矩陣的 Kronecker 乘法:kron(A,B),MATLAB 函數(shù)取值,Matlab 普通函數(shù)取值,設(shè) x 是變量, f 是一個函數(shù),則,(1) 當(dāng) x = a 是標(biāo)量時,f (x) = f (a),(2) 當(dāng) x 是向量或矩陣時, f 作用在 x 的每個分量上,結(jié)果為一個與 x 具有相同形狀的向量或矩陣,Matlab 矩陣函數(shù):expm、sqrtm、logm,,funm,funm(A,cos),MATLAB的三角函數(shù),三角函數(shù),MATLAB的基本數(shù)學(xué)函數(shù),基本數(shù)學(xué)函數(shù),取整函數(shù)與矩陣相關(guān)函數(shù),取整函數(shù),矩陣相關(guān)函數(shù),Matlab 程序設(shè)計介紹,Matlab 是一種科學(xué)計算語言,但同時也具有和 C、 FORTRAN 等高級語言相類似的語言特征,能方便地實現(xiàn)程序控制。利用 Matlab 的程序控制功能,可以將有關(guān)Matlab 命令編成程序存儲在一個文件中(M文件),然后運行該文件,Matlab 就會自動依次執(zhí)行文件中的命令,直到全部命令執(zhí)行完畢。,在 Matlab 程序設(shè)計中,要充分利用 Matlab 數(shù)據(jù)結(jié)構(gòu)的特點,提供編程效率。,M文件,用 Matlab 語言編寫的程序稱為 M文件,以“.m”為擴展名,M文件根據(jù)調(diào)用方式的不同可以分為兩類:,M文件是由若干 Matlab 命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實現(xiàn)某種算法,Script file:命令文件/腳本文件,Function file:函數(shù)文件,事實上,Matlab 提供的內(nèi)部函數(shù)以及各種工具箱,都是利用Matlab 語言編寫的 M文件 用戶也可以結(jié)合自己的工作需要,開發(fā)自己的程序或工具箱,命令文件沒有輸入?yún)?shù),也不返回輸出參數(shù); 函數(shù)文件可以帶輸入?yún)?shù),也可以返回輸出參數(shù),命令文件對 Matlab 當(dāng)前工作空間的變量進行操作,文件中所有命令的執(zhí)行結(jié)果也返回到當(dāng)前工作空間中; 函數(shù)文件中定義的變量為局部變量,當(dāng)函數(shù)執(zhí)行完后,這些變量被清除,命令文件可以直接運行,在 Matlab 命令窗口中輸入文件的名字就會順序執(zhí)行文件中的命令; 函數(shù)文件不能直接運行,要以函數(shù)調(diào)用的方式來調(diào)用,兩類M文件的區(qū)別,(1) 命令文件:輸入以下內(nèi)容并以文件名 f2cs.m 存盤,clear; %清除當(dāng)前工作空間中的變量 f=input(Please input Fahrenheit temperature:); c=5*(f-32)/9; fprintf(The Centigrade Temperature is %gn, c);,在Matlab命令窗口中輸入 f2cs ,即可執(zhí)行該命令文件。不用輸入?yún)?shù),也沒有輸出參數(shù),執(zhí)行完后,變量 c、f 仍保留在工作空間。(可用whos查看),舉例(一),例:分別用命令文件和函數(shù)文件將華氏溫度轉(zhuǎn)化為攝氏溫度。,函數(shù)文件:建立函數(shù)文件 f2cf.m ,內(nèi)容如下:,function c=f2cf(f) c=5*(f-32)/9;,在Matlab命令窗口中輸入, f2cf(100),調(diào)用該函數(shù)時,既有輸入?yún)?shù),又有輸出參數(shù);函數(shù)調(diào)用完后,變量 c、f 沒有被保留在工作空間。,M文件的建立與打開,M文件是一個文本文件,可以用任何文本編輯器來建立和編輯,而一般使用 Matlab 自帶的文本編輯器。,啟動Matlab文本編輯器有三種方法:,打開已有的M文件:,1)菜單操作(open) 2)命令操作(edit 文件名) 3)命令按鈕(快捷鍵) 4)雙擊 M文件,1)菜單操作(New) 2)命令操作(edit) 3)命令按鈕(快捷鍵),關(guān)系運算,比較運算:,比較兩個變量的大小,結(jié)論是“真”則返回 “1” ,結(jié)論為“假”則返回 “0” 。,“=”與“=”的區(qū)別:= 是比較兩個變量,= 是賦值。,關(guān)系操作符能用來比較兩個同樣大小的矩陣,或用來比較一個矩陣和一個標(biāo)量,在后一種情況,標(biāo)量和矩陣中的每一個元素相比較。比較結(jié)果與矩陣大小一樣。,關(guān)系運算,邏輯運算:,相關(guān)函數(shù):,xor(x,y):異或運算,若 x 為矩陣,則 any 和 all 按列運算,返回一個0-1向量,any(x):若向量 x 中存在非零元素,則返回 1,否則返回 0,all(x): 若向量 x 中所有元素非零,則返回 1,否則返回 0,程序控制結(jié)構(gòu),程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu);任何復(fù)雜的程序都可以由這三種基本結(jié)構(gòu)構(gòu)成。,按排列順序依次執(zhí)行,直到程序的最后一個語句。 這是最簡單的一種程序結(jié)構(gòu),一般涉及數(shù)據(jù)的輸入、數(shù)據(jù)的計算或處理、數(shù)據(jù)的輸出等。,順序結(jié)構(gòu),數(shù)據(jù)的輸入: input,A=input(提示信息);其中提示信息為字符串,A=input(提示信息,s);允許用戶輸入字符串,name=input(Whats your name? ,s),順序結(jié)構(gòu)(續(xù)),數(shù)據(jù)的輸出: disp,disp(X); 其中 X 是字符串或矩陣,程序的暫停: pause,pause(n);,若想強行中止程序的運行,可以使用 Ctrl+c,其中 n 是延遲時間,以秒為單位;也可以直接使用pause,則將暫停程序,直到用戶按任一鍵后繼續(xù)。,pause off: 屏蔽程序中所有 pause 的作用; pause on: 打開 pause 的作用。,根據(jù)給定的條件是否成立而分別執(zhí)行不同的語句,單分支,if expr (條件) statement (語句組) end,if 語句,選擇結(jié)構(gòu),Matlab 用于實現(xiàn)選擇結(jié)構(gòu)的語句有 if 和 switch 語句,雙分支,if expr (條件) statement1(語句組1) else statement2(語句組2) end,多分支:,if expr1(條件 1) statement1(語句組 1) elseif expr2(條件 2) statement2(語句組 2) . . elseif exprm(條件 m) statementm(語句組 m) else statement(語句組) end,IF 語句,elseif 可以出現(xiàn)多個,但 else 只能有一個!,switch 語句,根據(jù)表達式的取值不同,分別執(zhí)行不同的語句。,switch expr(表達式) case expr1(表達式 1) statement1(語句組 1) case expr2(表達式 2) statement2(語句組 2) . . case exprm(表達式 m) statementm(語句組 m) otherwise statement (語句組) end,當(dāng)任意一個分支的語句執(zhí)行完后,直接執(zhí)行 switch 語句后面的語句。,switch 子句后面的表達式可以是一個標(biāo)量或字符串;case 子句后面的表達式可以是標(biāo)量或字符串,也可以是一個單元(cell),此時表達式的值等于該單元中的某個元素時,執(zhí)行相應(yīng)的語句組。,switch 語句(續(xù)),循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu)是按照給定的條件,重復(fù)執(zhí)行指定的語句,for 語句,for variable = expr statement(循環(huán)體語句) end,循環(huán)變量,expr 可以是行向量,也可以是矩陣。,Matlab 用于實現(xiàn)循環(huán)結(jié)構(gòu)的語句有for語句和while語句,在 Matlab 編程中,采用循環(huán)會降低程序的執(zhí)行速度,應(yīng)盡量避免使用,或用其它方式代替,如向量運算等。,while expr (條件) statement(循環(huán)體語句) end,break 和 continue 語句,break 語句用于終止循環(huán)的執(zhí)行。 continue 語句控制跳過循環(huán)體內(nèi)的某些語句,繼續(xù)下一次循環(huán)。 break 和 continue 一般與 if 語句配合使用。,循環(huán)語句可以嵌套使用,while 循環(huán):,while 循環(huán),函數(shù)文件,function 輸出形參表 = 函數(shù)名(輸入行參表) 注釋說明部分(可選) 函數(shù)體語句(必須),其中以 function開始的一行為引導(dǎo)行,表示該 M文件是函數(shù)文件。,特別提示:添加注釋是個良好的編程習(xí)慣。,函數(shù)文件名與函數(shù)名一定要統(tǒng)一,函數(shù)名的命名規(guī)則與變量名相同(必須以字母開頭)。,當(dāng)輸出行參多于一個時,用方括號括起來,函數(shù)文件由 function 語句引導(dǎo),其基本結(jié)構(gòu)為:,幾點說明,return 語句,如果在函數(shù)文件中插入了 return語句,則執(zhí)行到該語句時就結(jié)束函數(shù)的執(zhí)行,程序流程轉(zhuǎn)至調(diào)用該函數(shù)的位置。函數(shù)文件中可以不含 return語句,這時當(dāng)被調(diào)用函數(shù)執(zhí)行完成后就自動返回。,函數(shù)文件內(nèi)定義的變量僅在函數(shù)文件內(nèi)部起作用, 當(dāng)函數(shù)文件執(zhí)行完成后,這些內(nèi)部變量將被清除,函數(shù)調(diào)用,函數(shù)調(diào)用的一般格式,函數(shù)文件編好后,就可以被其它 M文件調(diào)用了。,輸出實參表 = 函數(shù)名(輸入實參表),函數(shù)調(diào)用時,實參的順序、個數(shù)必須與函數(shù)定義時的形參的順序、個數(shù)一致。,函數(shù)可以嵌套調(diào)用,即一個函數(shù)可以被其它函數(shù)調(diào)用,甚至可以被它自身調(diào)用,此時稱為遞歸調(diào)用。,舉例(一),% 函數(shù)文件 factor.m function f=factor(n) if (n=1) f=1; else f=n*factor(n-1); end,% 命令文件 main.m % 計算s=1!+2!+3!+4!+5! s=0; for i=1:5 s=s+factor(i); end fprintf(n s=%g,s),例:利用函數(shù)的遞歸調(diào)用計算 n!,局部變量,函數(shù)通過輸入和輸出參數(shù)與其它M文件進行數(shù)據(jù)傳遞。,當(dāng)函數(shù)調(diào)用完畢后,該函數(shù)文件中定義的所有局部變量都將被釋放。,如果在若干個函數(shù)中,都把某個變量定義為全局變量,則這些函數(shù)將公共使用這一變量。全局變量的作用域是整個Matlab工作空間,即全程有效,所有函數(shù)都可以對它存取和修改。定義全局變量是函數(shù)間傳遞信息的一種手段。,函數(shù)文件中的變量都是局部的,即一個函數(shù)文件中定義的變量不能被另一個函數(shù)文件或其它 M文件使用。,全局變量,變量名列表中的各個變量用空格隔開,不能用逗號!,全局變量給函數(shù)間的數(shù)據(jù)傳遞帶來了方便,但卻破壞了函數(shù)對變量的封裝,降低了程序的可讀性,因而在結(jié)構(gòu)化程序設(shè)計中,全局變量是不受歡迎的。特別是當(dāng)程序較大,子程序較多時,全局變量將個程序調(diào)試和維護帶來不便,故不提倡使用全局變量。,global 變量名列表,全局變量的定義,猜數(shù)游戲 首先由計算機隨機產(chǎn)生一個 1, 100 之間的一個整數(shù),然后由用戶猜測所產(chǎn)生的這個數(shù)。根據(jù)用戶猜測的情況給出不同的提示,如果猜測的數(shù)大于產(chǎn)生的數(shù),則顯示“High”,小于則顯示“Low”,等于則顯示“You won!”,同時退出游戲。用戶最多有 7 次機會。,舉例(二),平面繪圖: plot,基本原理:點 線,Matlab 繪圖小結(jié),Matlab 繪圖小結(jié),例:y=sin(x), 0x2*pi, x=0:0.5:2*pi; y=sin(x); plot(x,y,.),Matlab 繪圖小結(jié),例:y=sin(x), 0x2*pi, x=0:0.5:2*pi; y=sin(x); plot(x,y,.-),Matlab 繪圖小結(jié),例:y=sin(x), 0x2*pi, x=0:0.1:2*pi; y=sin(x); plot(x,y,.),Matlab 繪圖小結(jié),例:y=sin(x), 0x2*pi, x=0:0.1:2*pi; y=sin(x); plot(x,y,.- ),Matlab 繪圖小結(jié),例:y=sin(x), 0x2*pi, x=0:0.1:2*pi; y=sin(x); plot(x,y),平面繪圖: plot,基本原理:點 線 基本形式: plot(x,y,s) x,y 是相同類型的向量,且長度相等。 s 用于控制圖形的屬性,可省略。,Matlab 繪圖小結(jié),問題:plot(y) 輸出結(jié)果是什么?,平面繪圖: plot,基本原理:點 線 基本形式: plot(x,y,s) x,y 是相同類型的向量,且長度相等。 plot(x1,y1,s1,x2,y2,s2, xn,yn,sn) (x1,y1), ,(xn,yn) 分別滿足上面的條件。,Matlab 繪圖小結(jié),三維空間繪圖:,基本原理:點 線 或 點 線 面,Matlab 繪圖小結(jié),三維曲線:plot3 plot3(x,y,z,s) x,y,z 是相同類型的向量,且長度相等。 plot3(x1,y1,z1,s1, , xn,yn,zn,sn) (x1,y1,z1), ,(xn,yn,zn)分別滿足上面的條件。,三維曲線方程:,x=x(t), y=y(t), z=z(t), atb t=a:h:b; x=x(t); y=y(t); z=z(t); plot3(x,y,z,s);,Matlab 繪圖小結(jié),y=y(x), z=z(x), axb x=a:h:b; y=y(t); z=z(t); plot3(x,y,z,s);,兩曲面的交線:f(x,y,z)=0, g(x,y,z)=0 ?,用 Matlab繪圖時,空間曲線要用參數(shù)方程來表示。,例:三維螺線 y=sin(x),z=cos(x), 0x20,Matlab 繪圖小結(jié),Matlab 繪圖小結(jié), t=0:0.5:20; y=sin(t); z=cos(t); plot3(t,y,z,.),Matlab 繪圖小結(jié), t=0:0.5:20; y=sin(t); z=cos(t); plot3(t,y,z,.-),Matlab 繪圖小結(jié), t=0:0.1:20; y=sin(t); z=cos(t); plot3(t,y,z,.-),三維空間繪圖:,基本原理:點 線 或 點 線 面 三維曲線:plot3 空間曲面:mesh 和 surf mesh(X,Y,Z,C) 或 surf(X,Y,Z,C) C 用來指定圖形的配色,若省略,則取 C=Z。,Matlab 繪圖小結(jié),Matlab 繪圖小結(jié),點:,線: 分別沿x方向和y方向 連接這些點。,矩陣X,Y,Z的元素分別為點的x-坐標(biāo),y-坐標(biāo)和z-坐標(biāo)。,矩陣 X,Y 的生成: meshgrid,Matlab 繪圖小結(jié),設(shè)曲面方程:,X,Y 需要你給定,Z 由曲面函數(shù)計算生成。,繪圖 區(qū)域,矩陣 X 由這些點的橫坐標(biāo)構(gòu)成,矩陣 Y 由這些點的縱坐標(biāo)構(gòu)成,X,Y的生成具體方法:meshgrid, x=a:h1:b; h1為x方向步長 y=c:h2:d; h2為y方向步長 X,Y=meshgrid(x,y);,若x=y,則可簡寫為: X,Y=meshgrid(x);,在 Matlab 中, 是注釋符號,“墨西哥帽子”:,在 -axa, -aya 區(qū)域內(nèi)的曲面圖形。,例1. a=8時的曲面圖形:, x=-8:0.5:8; y=-8:0.5:8; X,Y=meshgrid(x,y); r = sqrt(X.2 + y.2) + eps; Z = sin(r)./r; mesh(Z),X,Y=meshgrid(-8:0.5:8);,例1. a=8時的曲面圖形:,例2. a=20時的曲面圖形:,三維空間繪圖:,基本原理:點 線 或 點 線 面 三維曲線:plot3 空間曲面:mesh 和 surf 其它曲面繪圖函數(shù):meshc、meshz、surfc,Matlab 繪圖小結(jié),圖形的控制與修飾:,坐標(biāo)軸的控制:axis axis(xmin,xmax,ymin,ymax,zmin,zmax) axis auto/on/off/equal/square/manual/,Matlab 繪圖小結(jié),圖形的控制與修飾:,坐標(biāo)軸的控制:axis,Matlab 繪圖小結(jié),網(wǎng)格:grid /on/off,標(biāo)注:title、xlabel、ylabel、zlabel、text title(text, Property1, PropertyValue1, . ) xlable、ylabel、zlabel 的用法與 title 相同; text(x,y,z,text),圖形的控制與修飾:,坐標(biāo)軸的控制:axis,Matlab 繪圖小結(jié),網(wǎng)格:grid /on/off,標(biāo)注:title、xlabel、ylabel、zlabel、text,配色方案:colormap colormap(r g b) 或 colormap(s),find 命令: find(條件),legend 命令: 圖例,利用 plot 函數(shù)在一個坐標(biāo)系下繪制以下函數(shù)的圖形,要求采用不同的顏色、線型、符號標(biāo)記。, x=sin(t); y=cos(t); z=sin(2*t);, plot(t,x,-k*,t,y,-rs,t,z,:bo), t=0:pi/20:2*pi;, legend(sin(t), cos(t), sin(2t),Matlab 繪圖小結(jié),繪圖舉例:,Matlab 繪圖小結(jié),Matlab 繪圖小結(jié),實驗一、特殊函數(shù)與特殊圖形, X,Y=meshgrid(-12:0.5:12);, R=sqrt(X.2+Y.2) + eps; Z=sin(R)./R;, index=find(R11); Z(index)=NaN;, mesh(Z); axis squal; axis off;,教材P51,2:墨西哥帽子的剪裁,實驗一、特殊函數(shù)與特殊圖形,沒有剪裁的墨西哥帽子,實驗一、特殊函數(shù)與特殊圖形,剪裁后的墨西哥帽子,符號函數(shù)繪圖:,平面曲線:ezplot,Matlab 繪圖小結(jié),ezplot( f(x) ),ezplot( f(x), a,b ),ezplot( f(x,y) ),ezplot( f(x,y) ,a,b,c,d ),ezplot( f(x,y) ,a,b ),例:,Matlab 繪圖小結(jié),ezplot( sin(x) ),ezplot( sin(x), -pi, pi ),ezplot( x2 + y2 -9 ),ezplot(x2 + y2 -9 ,-3,3 ),函數(shù)表達式要加單引號。,符號函數(shù)繪圖:,平面曲線:ezplot 三維曲線:ezplot3,Matlab 繪圖小結(jié),ezplot3(x(t),y(t),z(t), a, b),曲線:,ezplot3(x(t),y(t),z(t),曲線:,需將曲線方程化為參數(shù)方程。,例:三維螺線 x=t, y=sin(t), z=cos(t),Matlab 繪圖小結(jié),ezplot3(t, sin(t), cos(t), 0, 20 ),每個函數(shù)表達式都要加單引號。,符號函數(shù)繪圖:,平面曲線:ezplot 三維曲線:ezplot3 三維曲面:ezmesh、ezsurf,Matlab 繪圖小結(jié),Matlab 繪圖小結(jié),ezmesh(z(x,y), a, b, c, d),ezmesh(x(s,t),y(s,t),z(s,t),a, b, c, d),ezmesh(z(x,y), a, b),ezmesh(z(x,y),ezmesh(x(s,t),y(s,t),z(s,t),a, b),ezmesh(x(s,t),y(s,t),z(s,t),ezsurf 的用法與 ezmesh 相同。,符號函數(shù)繪圖:,平面曲線:ezplot 三維曲線:ezplot3 三維曲面:ezmesh、ezsurf ezmeshc、ezsurfc,Matlab 繪圖小結(jié),繪圖子區(qū)域的劃分:subplot,Matlab 繪圖小結(jié),subplot(m, n, p),該函數(shù)將一個圖形窗口分割成 m*n 個子區(qū)域, p 表示第 p 個繪圖子區(qū)域。 繪圖子區(qū)域編號 按行 從左至右。,Matlab 符號運算介紹,Matlab符號運算是通過符號數(shù)學(xué)工具箱(Symbolic Math Toolbox)來實現(xiàn)的。,Matlab 符號運算,符號對象的建立:sym 和 syms,例:, syms x y z, x=sym(x); y=sym(y); z=sym(z);,符號對象建立時可以附加屬性: real、positive 和 unreal, k=sym(k,positive), x=sym(x,real), x=sym(x,unreal),表明 x 是實的,表明 k 是正的,去掉 x 的附加屬性,符號表達式的建立, f2=sym(sin(x)+cos(x), syms x f1=sin(x)+cos(x), f3=sin(x)+cos(x),用這種方法創(chuàng)建的符號表達式對空格很敏感,不要在字符間隨意添加空格!,推薦!,符號變量與符號常量, a=sym(a); b=sym(5);, c=sym(5);,b、c有區(qū)別嗎? hint:help sym,相關(guān)函數(shù),findsym: 查找符號表達式中的符號變量,findsym(f) 按字母順序列出符號表達式 f 中的所有自由變量findsym(f,N) 列出 f 中距離 x 最近的 N 個自由變量(i,j 除外),默認(rèn)自變量findsym(f,1), a=sym(a);x=sym(x);k=sym(3); f=k*x+a; findsym(f),例:,ans=a,x,相關(guān)函數(shù),subs:符號替換,subs(f): 用當(dāng)前工作空間中存在的變量值,替換 f中所有出現(xiàn)的相同的變量,并進行簡化計算。 subs(f,x,a):用 a 替換 f 中的 x ;a 是可以是 數(shù)/數(shù)值變量/表達式 或 符號變量/表達式。 若x與a為相同大小的向量或矩陣,則用a中相應(yīng)的元素替換x中的元素; 若f,x為標(biāo)量,而a是向量或矩陣,則f與x將擴展為與a相同形狀的向量或矩陣。,例:, syms x y f=2*x+y; x=3,y=4; subs(f) subs(f,x,a), syms x y a b f=2*x+y; subs(f,x,y,3,4) subs(f,x,y,3,4) subs(f,x,1:3) subs(f,x,y,1:3,5:7) subs(f,x,y,a+b,a-b) subs(f,x,y,x+y,x-y),ans=10,ans=2*x+y,ans=10,ans=2+y,4+y,6+y,ans=7 10 13,ans=3*a+b,?,符號矩陣,使用sym函數(shù)直接生成, A=sym(1+x, sin(x); 5, exp(x),將數(shù)值矩陣轉(zhuǎn)化成符號矩陣, B=2/3, sqrt(2); 5.2, log(3) C=sym(B),符號矩陣中元素的引用和修改, A=sym(1+x, sin(x); 5, exp(x) A(1,2) A(2,2)=sym(cos(x),能否用sym(B)?,符號矩陣的基本運算,符號矩陣的基本運算與數(shù)值矩陣的基本運算相類似。,1) 基本運算符:+、-、*、/、.*、.、./、.、 、.,2) 三角函數(shù)與反三角函數(shù):sin、cos、tan、 ,3) 指數(shù)、對數(shù)函數(shù):sqrt、exp、log、 ,4) 復(fù)數(shù)函數(shù):real、imag、conj、 abs,5) 矩陣函數(shù):det、inv、rank、 (沒有norm),6) 矩陣元素的抽?。篸iag、tril、triu,六大常見符號運算,因式分解、展開、合并、簡化及通分等,因式分解:factor, syms x f=x6 +1 s=factor(f),s =(1+x2)*(x4-x2+1),factor 也可用于正整數(shù)的分解,大整數(shù)的分解,展開函數(shù): expand,多項式展開,三角函數(shù)展開,該函數(shù)經(jīng)常用于多項式展開,也常用于三角函數(shù)、指數(shù)函數(shù)和對數(shù)函數(shù)的展開中。,合并同類項: collect,collect(f,v): 按指定變量 v 的次數(shù)合并系數(shù); collect(f): 合并 f 中的默認(rèn)自變量的各項系數(shù)。,findsym(f,1),簡化函數(shù): simple 和 simplify,simple(f): 對 f 嘗試多種不同的算法簡化, 返回其中最短的簡化形式; R,HOW=simple(f): R為f的最短簡化形式, HOW中記錄的為簡化過程中使用的主要方法。,simple函數(shù)示例,simplify(f): 簡化函數(shù),注:多次 使用 simple 可以達到最簡表達。,例:化簡,分式通分: numden,N,D=numden(f): N為通分后的分子,D為通分后的分母,horner多項式:嵌套形式的多項式,例:,六大常見符號運算,因式分解、展開、合并、簡化及通分等,Matlab 符號運算(二),計算極限,limit(f,x,a): 計算,limit(f,a): 計算默認(rèn)自變量趨向于a時f的極限,limit(f): 計算 a=0 時的極限,limit(f,x,a,right):右極限 limit(f,x,a,left):左極限,例:求極限, syms h n x L=limit(log(x+h)-log(x)/h,h,0) M=limit(1-x/n)n,n,inf),L=1/x,M=exp(-x), syms x L=limit(abs(x)/x,x,0,left) R=limit(abs(x)/x,x,0,right),L=-1,M=1,六大常見符號運算,因式分解、展開、合并、簡化及通分等,計算極限,計算導(dǎo)數(shù),diff(f): 計算 f 關(guān)于默認(rèn)自變量的導(dǎo)數(shù),diff(f,v): 計算 f 關(guān)于變量 v 的導(dǎo)數(shù),diff(f,n),diff(f,v,n),diff(f,n,v): n次求導(dǎo),例:設(shè) y=sin(ax),求:, syms a x y=sin(a*x) A=diff(y,x) B=diff(y,a) C=diff(y,x,2) D=diff(y,a,2),A=cos(a*x)*a,B=cos(a*x)*x,C=-sin(a*x)*a2,D=-sin(a*x)*x2,六大常見符號運算,因式分解、展開、合并、簡化及通分等,計算極限,計算導(dǎo)數(shù),計算積分,int(f,v,a,b):計算定積分,int(f,a,b): 計算 f 關(guān)于默認(rèn)自變量 的定積分,int(f,v):計算不定積分,int(f):計算 f 關(guān)于默認(rèn)自變量 的不定積分,例:求積分, syms x f=(x2+1)/(x2-2*x+2)2; I=int(f) g=cos(x)/(sin(x)+cos(x); J=int(g,x,0,pi/2) h=exp(-x2); K=int(h,x,0,inf),I=3/2*atan(x-1)+1/4*(2*x-6)/(x2-2*x+2),J=1/4*pi,K=1/2*pi(1/2),六大常見符號運算,因式分解、展開、合并、簡化及通分等,計算極限,計算導(dǎo)數(shù),計算積分,符號求和,symsum(f,v,a,b): 求和,symsum(f,a,b): 關(guān)于默認(rèn)自變量 求和。,例:求級數(shù) ,以及其前10項的部分和。, syms n S=symsum(1/n2,n,1,inf) S10=symsum(1/n2,n,1,10),S=1/6*pi2,S10=1968329/1270080,例:求函數(shù)級數(shù), syms n x S=symsum(x/n2,n,1,inf),S=1/6*x*pi2,六大常見符號運算,因式分解、展開、合并、簡化及通分等,計算極限,計算導(dǎo)數(shù),計算積分,符號求和,解代數(shù)方程和微分方程,其它運算,復(fù)合函數(shù)計算:compose,compose(f,g): 返回

溫馨提示

  • 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

提交評論