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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論