matlab課件——第二章 Matlab及其基本運算_第1頁
matlab課件——第二章 Matlab及其基本運算_第2頁
matlab課件——第二章 Matlab及其基本運算_第3頁
matlab課件——第二章 Matlab及其基本運算_第4頁
matlab課件——第二章 Matlab及其基本運算_第5頁
已閱讀5頁,還剩204頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、常用數學軟件選講常用數學軟件選講2第二章第二章 MatlabMatlab及其基本運算及其基本運算 Matlab簡介簡介 數學類型數學類型 數值計算數值計算 符號計算符號計算 繪圖繪圖 文件系統文件系統 MATLAB-巨人肩上的工具 3 Matlab 是一個可視化的計算程序,被廣泛地應是一個可視化的計算程序,被廣泛地應用在科學運算領域里。它具有用在科學運算領域里。它具有功能強大、使用簡單功能強大、使用簡單等等特點,內容包括:數值計算、符號計算、數據擬合、特點,內容包括:數值計算、符號計算、數據擬合、圖形圖像處理、系統模擬和仿真分析等功能。此外,圖形圖像處理、系統模擬和仿真分析等功能。此外,用用M

2、atlab還可以進行動畫設計、有限元分析等。還可以進行動畫設計、有限元分析等。 本章節(jié)的目的是使同學們能夠運用本章節(jié)的目的是使同學們能夠運用Matlab進行進行一般的工程計算一般的工程計算,掌握,掌握Matlab的基本技術(基本計的基本技術(基本計算、矩陣處理、符號運算和圖形顯示技術等),為將算、矩陣處理、符號運算和圖形顯示技術等),為將來從事工程技術方面的產品開發(fā)、科學研究、工程計來從事工程技術方面的產品開發(fā)、科學研究、工程計算和管理打下一定的基礎。算和管理打下一定的基礎。章節(jié)的目的和任務章節(jié)的目的和任務45MATLAB的出現 70年代中期,年代中期,Cleve Moler和他的同事開發(fā)了和

3、他的同事開發(fā)了LINPACK和和EISPACK的的Fortran子程序庫子程序庫 70年代末期,年代末期,Cleve Moler 在新墨西哥大學給學生在新墨西哥大學給學生開線性代數,為學生編寫了接口程序,這程序取名開線性代數,為學生編寫了接口程序,這程序取名為為MATLAB,即即MATrix LABoratory1983年春天,工程師年春天,工程師John Little與與Moler、Steve Bangert一起開發(fā)了第二代專業(yè)版一起開發(fā)了第二代專業(yè)版MATLAB1984年,年,MathWorks公司成立,公司成立,MATLAB正是推正是推向市場。向市場。6 1 MATLAB的發(fā)展的發(fā)展 1

4、984年,年,MATLAB第第1版版(DOS版版) 1992年,年,MATLAB 4.0版版 simlink內嵌內嵌 1994年,年,MATLAB 4.2版版 1997年,年,MATLAB 5.0版版 全面的面向對象全面的面向對象 1999年,年,MATLAB 5.3版版 Release 11 2000年,年,MATLAB 6.0版版 Release 12 2001年,年,MATLAB 6.1版版 2002年,年,MATLAB 6.5版版 購并了購并了MATRIXx 2004年,年,MATLAB 7.0版版782 MATLAB的主要功能的主要功能 1數值計算和符號計算功能數值計算和符號計算功能

5、MATLAB以以矩陣矩陣作為數據操作的基本作為數據操作的基本單位,還提供了十分豐富的數值計算單位,還提供了十分豐富的數值計算函數。函數。MATLAB和著名的符號計算語言和著名的符號計算語言Maple相結合,使得相結合,使得MATLAB具有符具有符號計算功能。號計算功能。92繪圖功能繪圖功能 MATLAB提供了提供了兩個層次兩個層次的繪圖操作:一的繪圖操作:一種是對圖形句柄進行的低層繪圖操作,另種是對圖形句柄進行的低層繪圖操作,另一種是建立在低層繪圖操作之上的高層繪一種是建立在低層繪圖操作之上的高層繪圖操作。圖操作。3編程語言編程語言 MATLAB具有程序結構控制、函數調用、具有程序結構控制、函

6、數調用、數據結構、輸入輸出、面向對象等程序語數據結構、輸入輸出、面向對象等程序語言特征,而且簡單易學、編程效率高。言特征,而且簡單易學、編程效率高。104MATLAB工具箱工具箱 MATLAB包含兩部分內容:基本部分和各種包含兩部分內容:基本部分和各種可選的工具箱??蛇x的工具箱。MATLAB工具箱分為兩大類:功能性工具箱工具箱分為兩大類:功能性工具箱和學科性工具箱。和學科性工具箱。11MATLAB特點 基于矩陣運算的工作平臺基于矩陣運算的工作平臺,支持支持多種操作系統多種操作系統:windows/unix/dos/Macintosh 可擴充性可擴充性: MATLAB的函數大多為的函數大多為AS

7、CII文件,可文件,可以直接編輯、修改以直接編輯、修改 高度適應性高度適應性、開放性:、開放性:MATLAB的工具箱可以任意的工具箱可以任意增減,任何人可以自己生成增減,任何人可以自己生成MATLAB工具箱工具箱 各行業(yè)的高手(真正的大家各行業(yè)的高手(真正的大家)提供了許多工具箱。提供了許多工具箱。12Matlab能做什么 基本的數據處理基本的數據處理 數據來源:數據來源:Excel、數據庫、數據庫、A/D等等等等 優(yōu)化和解方程優(yōu)化和解方程 動態(tài)過程仿真:實時的和非實時的動態(tài)過程仿真:實時的和非實時的 嵌入式的控制:嵌入式的控制:Pc/104和和DSP 神經元網絡、小波分析、神經元網絡、小波分

8、析、GA等等等等 虛擬現實仿真虛擬現實仿真13為什么選擇為什么選擇Matlab 不希望同學們在編程上化太多時間,課不希望同學們在編程上化太多時間,課程目的不是學習編程程目的不是學習編程 社會化的運行帶來的好處:合理利用可社會化的運行帶來的好處:合理利用可以節(jié)約大量的時間以節(jié)約大量的時間 為什么相同的時間別人比自己做出了更為什么相同的時間別人比自己做出了更多的事情:碩士論文調查結果多的事情:碩士論文調查結果 面向對象的思想帶來巨大的好處面向對象的思想帶來巨大的好處 緊密結合科學的前沿緊密結合科學的前沿 From BBS:From BBS:博士論文博士論文= = MatlabMatlab + Wo

9、rd + Word 14Matlab產品家族Matlab擴展支持在擴展支持在matlab中隊系統的實中隊系統的實施和開發(fā)。施和開發(fā)。工具箱:專用的函數工具箱:專用的函數庫,解決特定領域的庫,解決特定領域的問題。問題。Simulink非線性系統非線性系統仿真仿真Blockset是專門為是專門為simulink建立的模塊。建立的模塊。15Matlab是所有系統工具的基礎是所有系統工具的基礎16設計自動化工具設計自動化工具17一般用途工具一般用途工具18信號和圖像處理信號和圖像處理19控制系統設計和分析控制系統設計和分析201.USENET新聞組新聞組MATLAB的新聞組是的新聞組是comp.sof

10、t-sys.MATLAB。瀏覽器瀏覽器指向指向http:/ http:/2.網絡上的工具箱網絡上的工具箱http:/ http:/ The MathWorks公司官方網站公司官方網站產品與全套工具箱手冊下載產品與全套工具箱手冊下載http:/第三方工具箱下載第三方工具箱下載 http:/ 產品在中國獨家代理產品在中國獨家代理 (北京九州恒潤公司北京九州恒潤公司)http:/22 MATLAB大觀園大觀園http:/www.matlab- MATLAB與應用論壇與應用論壇http:/ 博士家園論壇網站博士家園論壇網站http:/ 一些高校的一些高校的bbs清華大學、哈工大、上海交大、西安交大等清

11、華大學、哈工大、上海交大、西安交大等23 3 初識初識MATLAB例例1-1 繪制正弦曲線和余弦曲線。繪制正弦曲線和余弦曲線。x=0:0.5:360*pi/180;plot(x,sin(x),x,cos(x); 例例1-2 求方程求方程 3x4+7x3 +9x2-23=0的全部根。的全部根。p=3,7,9,0,-23; %建立多項式系數向量建立多項式系數向量x=roots(p) %求根求根242526 例例1-3 求積分求積分quad(x.*log(1+x),0,1) 例例1-4 求解線性方程組。求解線性方程組。a=2,-3,1;8,3,2;45,1,-9; b=4;2;17; x=inv(a

12、)*b2728Mathematica的計算結果(比較)的計算結果(比較)29Mathematica的計算結果的計算結果230Mathematica的計算結果的計算結果3、4314 MATLAB的運行環(huán)境與安裝的運行環(huán)境與安裝 4.1 MATLAB的運行環(huán)境的運行環(huán)境硬件環(huán)境:硬件環(huán)境:(1) CPU (2) 內存內存(3) 硬盤硬盤(4) CD-ROM驅動器和鼠標。驅動器和鼠標。軟件環(huán)境:軟件環(huán)境:(1) Windows 98/NT/2000 或或Windows XP(2) 其他軟件根據需要選用其他軟件根據需要選用32 2.2 MATLAB的安裝的安裝 安裝安裝MATLAB 6.5系統,需運行

13、系統自帶的系統,需運行系統自帶的安裝程序安裝程序setup.exe,可以按照安裝提示依可以按照安裝提示依次操作。次操作。333 MATLAB集成環(huán)境集成環(huán)境 3.1 啟動與退出啟動與退出MATLAB集成環(huán)境集成環(huán)境 1MATLAB系統的啟動系統的啟動與一般的與一般的Windows程序一樣,啟動程序一樣,啟動MATLAB系統有系統有3種常見方法:種常見方法: (1)使用使用Windows“開始開始”菜單。菜單。(2)運行運行MATLAB系統啟動程序系統啟動程序matlab.exe。(3) 利用利用快捷方式快捷方式。34 啟動啟動MATLAB后,將進入后,將進入MATLAB 6.5集成環(huán)境。集成環(huán)

14、境。MATLAB 6.5 集成環(huán)境包括集成環(huán)境包括MATLAB主窗口、命令窗口主窗口、命令窗口(Command Window)、工作空間窗口工作空間窗口(Workspace)、命令命令歷史窗口歷史窗口(Command History)、當前目錄窗口當前目錄窗口(Current Directory)和啟動平臺窗口和啟動平臺窗口(Launch Pad)。35 當當MATLAB安裝完安裝完畢并首次啟動時,畢并首次啟動時,展現在屏幕上的界展現在屏幕上的界面為面為MATLAB的默的默認界面,如右圖所認界面,如右圖所示。示。36Matlab工作環(huán)境界面工作環(huán)境界面 歷史命令歷史命令 發(fā)射臺發(fā)射臺 命令命令

15、 窗口窗口 標題欄標題欄 菜單欄菜單欄 常用工具欄常用工具欄 工作區(qū)工作區(qū) 當前路徑當前路徑37Matlab工作環(huán)境界面工作環(huán)境界面2、MATLAB工具欄 38 2MATLAB系統的退出系統的退出要退出要退出MATLAB系統,也有系統,也有3種常見方法:種常見方法:(1) 在在MATLAB主窗口主窗口File菜單中選擇菜單中選擇Exit MATLAB命令。命令。(2) 在在MATLAB命令窗口輸入命令窗口輸入Exit或或Quit命命令。令。(3) 單擊單擊MATLAB主窗口的主窗口的“關閉關閉”按鈕。按鈕。39 3.2 主窗口主窗口MATLAB主窗口是主窗口是MATLAB的主要工作界的主要工作

16、界面。主窗口除了嵌入一些子窗口外,還主面。主窗口除了嵌入一些子窗口外,還主要包括菜單欄和工具欄。要包括菜單欄和工具欄。1菜單欄菜單欄在在MATLAB 6.5主窗口的菜單欄,共包含主窗口的菜單欄,共包含File、Edit、View、Web、Window和和Help 6個菜單項。個菜單項。40 (1) File菜單項:菜單項:File菜單項實現有關文件的菜單項實現有關文件的操作。操作。(2) Edit菜單項:菜單項:Edit菜單項用于命令窗口菜單項用于命令窗口的編輯操作。的編輯操作。(3) View菜單項:菜單項:View菜單項用于設置菜單項用于設置MATLAB集成環(huán)境的顯示方式。集成環(huán)境的顯示方

17、式。(其他菜單和窗口的介紹略去)(其他菜單和窗口的介紹略去)41(其他菜單和窗口的介紹略去)(其他菜單和窗口的介紹略去)MATLAB 通用命令424 MATLAB幫助系統幫助系統434 MATLAB幫助系統幫助系統4.1 幫助窗口幫助窗口進入幫助窗口可以通過以下進入幫助窗口可以通過以下3種方法:種方法:(1) 單擊單擊MATLAB主窗口工具欄中的主窗口工具欄中的Help按按鈕。鈕。(2) 在命令窗口中輸入在命令窗口中輸入helpwin、helpdesk或或doc。(3) 選擇選擇Help菜單中的菜單中的“MATLAB Help”選選項。項。444546 4.2 幫助命令幫助命令 Matlab常

18、用的窗口幫助命令常用的窗口幫助命令47 4.2 幫助命令幫助命令 MATLAB幫助命令包括幫助命令包括help、lookfor以及以及模糊查詢。模糊查詢。1help命令命令在在MATLAB 6命令窗口中直接輸入命令窗口中直接輸入help命令命令將會顯示當前幫助系統中所包含的所有項將會顯示當前幫助系統中所包含的所有項目,即搜索路徑中所有的目錄名稱。同樣,目,即搜索路徑中所有的目錄名稱。同樣,可以通過可以通過help加函數名來顯示該函數的幫助加函數名來顯示該函數的幫助說明。說明。48 2lookfor命令命令 help命令只搜索出那些關鍵字完全匹配的命令只搜索出那些關鍵字完全匹配的結果,結果,lo

19、okfor命令對搜索范圍內的命令對搜索范圍內的M文件文件進行關鍵字搜索,條件比較寬松。進行關鍵字搜索,條件比較寬松。lookfor命令只對命令只對M文件的第一行進行關鍵文件的第一行進行關鍵字搜索。若在字搜索。若在lookfor命令加上命令加上-all選項,則選項,則可對可對M文件進行全文搜索。文件進行全文搜索。49 3模糊查詢模糊查詢 MATLAB 6.0以上的版本提供了一種類似模以上的版本提供了一種類似模糊查詢的命令查詢方法,用戶只需要輸入糊查詢的命令查詢方法,用戶只需要輸入命令的前幾個字母,然后按命令的前幾個字母,然后按Tab鍵,系統就鍵,系統就會列出所有以這幾個字母開頭的命令會列出所有以

20、這幾個字母開頭的命令。50怎樣獲得詳盡的幫助信息(總結)1.1. 首先是首先是MATLABMATLAB窗口中的窗口中的helphelp命令,它最常用、最快,往往命令,它最常用、最快,往往也是最有效的。給出關鍵字就能找到相應的說明。也是最有效的。給出關鍵字就能找到相應的說明。HelpHelp命命令簡單易用,但是它要求準確給出關鍵字,如果記憶不準,令簡單易用,但是它要求準確給出關鍵字,如果記憶不準,就很難找到。這時就應該用第二種方案。就很難找到。這時就應該用第二種方案。2.2. Help DeskHelp Desk:這是:這是MATLABMATLAB的的HTMLHTML格式的幫助文檔,有著很好格式

21、的幫助文檔,有著很好的組織??梢栽诿钚墟I入的組織??梢栽诿钚墟I入helpdeskhelpdesk,進入,進入“MatlabMatlab Help Help Desk”Desk”。Help DeskHelp Desk的搜索可以使用不完全關鍵字,這樣即的搜索可以使用不完全關鍵字,這樣即使遇到記憶模糊的情況也可以很快查到。使遇到記憶模糊的情況也可以很快查到。3.3. 前面兩種方法所得到的幫助信息常常是不夠細致的,需要前面兩種方法所得到的幫助信息常常是不夠細致的,需要用第三種途徑來補充,這就是電子版的使用手冊。用第三種途徑來補充,這就是電子版的使用手冊。MATLABMATLAB里包含了大量關于里包

22、含了大量關于MATLABMATLAB安裝、使用、編程以及各種工具安裝、使用、編程以及各種工具箱等的電子版手冊,全部為箱等的電子版手冊,全部為PDFPDF格式格式, ,具有搜索功能,因此具有搜索功能,因此也可以在指定的手冊中搜索關鍵字,使用非常方便。也可以在指定的手冊中搜索關鍵字,使用非常方便。51 4.3 演示系統演示系統 在幫助窗口中選擇演示系統在幫助窗口中選擇演示系統(Demos)選項卡,然后在其選項卡,然后在其中選擇相應的演示模塊,或者在命令窗口輸入中選擇相應的演示模塊,或者在命令窗口輸入Demos,或或者選擇主窗口者選擇主窗口Help菜單中的菜單中的Demos子菜單,打開演示系統。子菜

23、單,打開演示系統?;揪仃囇菔敬翱诨揪仃囇菔敬翱贛ATLAB 演示窗口演示窗口52 4.4 遠程幫助系統遠程幫助系統 在在MathWorks公司的主頁公司的主頁(http:/)上可上可以找到很多有用的信息,國內的一些網站也有豐富的信息資以找到很多有用的信息,國內的一些網站也有豐富的信息資源。源。53MATLAB 變量及數據操作變量及數據操作a) 變量和常量變量和常量 變量變量(包括函數包括函數)的的命名規(guī)則命名規(guī)則:由英文字母、數字和下劃:由英文字母、數字和下劃線混合組成,不得包含空格和標點線混合組成,不得包含空格和標點 ;第一個字符必須;第一個字符必須是英文字母,最多包括是英文字母,最多包

24、括31個字符個字符; 對字母的大小寫敏對字母的大小寫敏感感。 局部變量和全局變量局部變量和全局變量 永久變量(常量)永久變量(常量)只能在某一函數體內使用,而不能從其他函數和只能在某一函數體內使用,而不能從其他函數和 Matlab工作空間訪問的變量,就是工作空間訪問的變量,就是局部變量局部變量。在幾個函數及在幾個函數及Matlab函數中都能使用的變量就是函數中都能使用的變量就是全局全局變量。變量。 (全局變量名應盡可能大寫,并由(全局變量名應盡可能大寫,并由globe聲明)聲明)54Matlab永久變量永久變量55b) 數字變量數字變量 Matlab內部的每一個數據元素都是用內部的每一個數據元

25、素都是用雙精度數雙精度數(double)來表示和存儲的。來表示和存儲的。變量輸出時用戶可以用變量輸出時用戶可以用format命令設置或改變輸出命令設置或改變輸出格式。格式。短格式短格式(Short):1.3333 0.0000短格式短格式e方式方式(Short e):1.3333e+00 1.2345e-06短格式短格式g方式方式(Short g):1.3333 0.0長格式長格式(Long):1.33333333333333 0.00000123450000長格式長格式e方式方式(Long e):1.33333333333333e+00 1.2345000000000e-06長格式長格式g方

26、式方式(Long g):1.33333333333333 0.0000012345銀行格式銀行格式(Bank):1.33 0.00十六進制格式十六進制格式(Hex):3ff555555555 3eb46231abfd71+格式格式(+):+有理數(有理數(Rational):1/3 2469/200000000056c) 字符串字符串 所有字符串都用單引號括起來。所有字符串都用單引號括起來。 s=matlab 字符中中的每個字符字符中中的每個字符(包括空格)都是字包括空格)都是字符串變量符串變量(矩陣或向量矩陣或向量)中的一個元素。中的一個元素。字符串中的字符以字符串中的字符以 ASCII 碼

27、形式儲存并區(qū)碼形式儲存并區(qū)分大小分大小 ,用用函數函數abs可以看到字符的可以看到字符的ASCII碼。碼。在在Matlab中,中,字符串字符串和和字符矩陣字符矩陣基本上是基本上是等價的。等價的。 s=matlab 等價于等價于 s=matlab 57字符串函數字符串函數5859 雙精度數值變量IEEE標準,64位 (8字節(jié)),11指數位,53數值位和一個符號位double() 函數的轉換 其他數據類型uint8,常用于圖像表示和處理,8位int8(), int16(), int32(),uint16(), uint32()308308107 . 1107 . 1至602賦值語句賦值語句 (1)

28、 變量變量=表達式表達式 (2) 表達式表達式其中表達式是用運算符將有關運算量連接其中表達式是用運算符將有關運算量連接起來的式子,其結果是一個矩陣。起來的式子,其結果是一個矩陣。61例例2-1 計算表達式的值,并顯示計算結果。計算表達式的值,并顯示計算結果。在在MATLAB命令窗口輸入命令:命令窗口輸入命令: x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y) 其中其中pi和和i都是都是MATLAB預先定義的變量,分預先定義的變量,分別代表代表別代表代表圓周率圓周率和和虛數單位虛數單位。輸出結果是:輸出結果是:z = -0.

29、3488 + 0.3286i622.1.3 內存變量的管理內存變量的管理1內存變量的刪除與修改內存變量的刪除與修改MATLAB工作空間窗口專門用于內存變量工作空間窗口專門用于內存變量的管理。在工作空間窗口中可以顯示所有的管理。在工作空間窗口中可以顯示所有內存變量的屬性。當選中某些變量后,再內存變量的屬性。當選中某些變量后,再單擊單擊Delete按鈕按鈕,就能刪除這些變量。當選,就能刪除這些變量。當選中某些變量后,再單擊中某些變量后,再單擊Open按鈕按鈕,將進入,將進入變量編輯器。通過變量編輯器可以直接觀變量編輯器。通過變量編輯器可以直接觀察變量中的具體元素,也可修改變量中的察變量中的具體元素

30、,也可修改變量中的具體元素。具體元素。63clear命令命令 用于刪除用于刪除MATLAB工作空間中的變量。工作空間中的變量。who和和whos這兩個命令用于顯示在這兩個命令用于顯示在MATLAB工作空間中已經駐留的變量名清工作空間中已經駐留的變量名清單。單。who命令只顯示出駐留變量的名稱,命令只顯示出駐留變量的名稱,whos在給出變量名的同時,還給出它們的在給出變量名的同時,還給出它們的大小、所占字節(jié)數及數據類型等信息。大小、所占字節(jié)數及數據類型等信息。642內存變量文件內存變量文件 利用利用MAT文件可以把當前文件可以把當前MATLAB工作空工作空間中的一些有用變量長久地保留下來,擴間中

31、的一些有用變量長久地保留下來,擴展名是展名是.mat。MAT文件的生成和裝入由文件的生成和裝入由save和和load命令來完成。常用格式為:命令來完成。常用格式為:save 文件名文件名 變量名表變量名表 -append-asciiload 文件名文件名 變量名表變量名表 -ascii652.1.4 MATLAB常用數學函數常用數學函數 MATLAB提供了許多數學函數,函數的自變提供了許多數學函數,函數的自變量規(guī)定為量規(guī)定為矩陣變量矩陣變量,運算法則是將函數逐項,運算法則是將函數逐項作用于矩陣的元素上,因而運算的結果是一作用于矩陣的元素上,因而運算的結果是一個與自變量同維數的矩陣。個與自變量同

32、維數的矩陣。函數使用說明:函數使用說明:(1) 三角函數三角函數以以弧度弧度為單位計算。為單位計算。(2) abs函數函數可以求實數的絕對值、復數的模、可以求實數的絕對值、復數的模、字符串的字符串的ASCII碼值。碼值。(3) 用于用于取整取整的函數有的函數有fix、floor、ceil、round,要注意它們的區(qū)別。要注意它們的區(qū)別。662.1.5 數據的輸出格式數據的輸出格式 MATLAB用十進制數表示一個常數,具體用十進制數表示一個常數,具體可采用日常記數法和科學記數法兩種表示可采用日常記數法和科學記數法兩種表示方法。方法。 在一般情況下,在一般情況下,MATLAB內部每一個數內部每一個

33、數據元素都是用據元素都是用雙精度數雙精度數來表示和存儲的。來表示和存儲的。數據輸出時用戶可以用數據輸出時用戶可以用format命令設置或命令設置或改變數據輸出格式。改變數據輸出格式。format命令的格式為:命令的格式為: format 格式符格式符其中格式符決定數據的輸出格式其中格式符決定數據的輸出格式67矩陣和數組運算矩陣和數組運算 要求內容:要求內容:( 1)熟練掌握)熟練掌握矩陣的創(chuàng)建矩陣的創(chuàng)建。 ( 2)掌握)掌握矩陣運算矩陣運算和和數組運算數組運算。 ( 3)學會如何使用)學會如何使用矩陣運算函數矩陣運算函數和和數組運算函數數組運算函數。 ( 4)注意區(qū)分矩陣和數組的差別,特別是運

34、算符的差別。)注意區(qū)分矩陣和數組的差別,特別是運算符的差別。 ( 6)了解)了解多項式多項式的創(chuàng)建方法和基本運算。的創(chuàng)建方法和基本運算。MATLAB矩陣及其計算矩陣及其計算68MATLAB 以以矩陣矩陣為基本的運算單元,為基本的運算單元,向量向量和標量和標量作為特殊的矩陣處理:作為特殊的矩陣處理:向量向量看作只有看作只有一行或一列的矩陣;一行或一列的矩陣;標量標量看作只有一個元素看作只有一個元素的矩陣。的矩陣。1、 矩陣的構造矩陣的構造a.直接輸入直接輸入b.利用利用內部函數內部函數產生矩陣產生矩陣c.利用利用M文件文件產生矩陣產生矩陣d.從從外部數據文件外部數據文件調入矩陣調入矩陣69A=1

35、,2,3;4,5,6;a. 直接輸入直接輸入直接輸入需遵循以下直接輸入需遵循以下基本規(guī)則基本規(guī)則:整個矩陣應以整個矩陣應以“ ”為首尾,即整個輸入矩陣必須為首尾,即整個輸入矩陣必須包含在方括號中;包含在方括號中; 矩陣中,行與行之間必須用分號矩陣中,行與行之間必須用分號“ ;”或或 Enter 鍵鍵( 按按 Enter 鍵)符分隔;鍵)符分隔; 每行中的元素用逗號每行中的元素用逗號“ ,”或或空格空格分隔;分隔; 矩陣中的元素可以是矩陣中的元素可以是數字或表達式數字或表達式,但表達式中不,但表達式中不可包含未知的變量,可包含未知的變量,MATLAB用表達式的值為該位用表達式的值為該位置的矩陣元

36、素賦值。當矩陣中沒有任何元素時,該置的矩陣元素賦值。當矩陣中沒有任何元素時,該矩陣被稱作矩陣被稱作“ 空陣空陣”( Empty Matrix)。)。70 A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16 A = 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16利用表達式輸入利用表達式輸入 B=1,sqrt(25),9,132,6,10,7*23+sin(pi),7,11,154,abs(-8),12,16B = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 1671由向量構成矩陣由向量構成矩陣向量是組成向量是組

37、成矩陣的基本元素矩陣的基本元素之一。向量元素需要之一。向量元素需要用方括號括起來。元素之間用用方括號括起來。元素之間用空格空格和和逗號逗號分隔生分隔生成成行向量行向量,用,用分號分號隔開生成隔開生成列向量列向量??梢园???梢园研邢蛐邢蛄苛靠闯煽闯? n 階矩陣,階矩陣,把把列向量列向量看成看成n 1 階矩陣。階矩陣。向量的構造方法:向量的構造方法: 直接輸入向量直接輸入向量 利用冒號生成向量利用冒號生成向量 利用利用 linspace/logspace 生成向量生成向量 a=1,2,3,4; x=0:0.5:2;% x=logspace(a,b,n) 生成有生成有 n 個元素的行向量個元素的行

38、向量 x,其元素其元素起點起點 x(1)=10a,終點終點 x(n)=10b。 b=logspace(0,2,4)b = 1.0000 4.6416 21.5443 100.000072 x x = 0 0.5000 1.0000 1.5000 2.0000% x=linspace(a,b,n) 生成有生成有 n 個元素的行向個元素的行向量量 x,其元素值在其元素值在 a、b 之間線性分布。之間線性分布。 y=linspace(0,2,7) y = 0 0.3333 0.6667 1.0000 1.3333 1.6667 2.0000 z=-1 x 3z = -1.0000 0 0.5000

39、1.0000 1.5000 2.0000 3.0000 u=y;zu = 0 0.3333 0.6667 1.0000 1.3333 1.6667 2.0000 -1.0000 0 0.5000 1.0000 1.5000 2.0000 3.000073b.利用內部函數產生矩陣利用內部函數產生矩陣%compan生成生成x向量的伴隨矩陣向量的伴隨矩陣 x=2,4,6,8,10 x = 2 4 6 8 10 compan(x)ans = -2 -3 -4 -5 -6 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0% eye 生成單位陣生成單位陣 S=eye(6) S

40、 = 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1% ones 生成全部元素為生成全部元素為 1 的矩陣的矩陣 ones(3,4) ans = 1 1 1 1 1 1 1 1 1 1 1 1 F=5*ones(3)F = 5 5 5 5 5 5 5 5 5% zeros 生成全部元素為生成全部元素為0的矩陣的矩陣 Z=zeros(2,4)Z = 0 0 0 0 0 0 0 0% rand 生成均勻分布的隨機矩陣生成均勻分布的隨機矩陣 R=rand(4) R = 0.9501 0.8913 0.82

41、14 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057%生成空陣生成空陣 K= K = 74c.利用利用M文件產生矩陣文件產生矩陣A=1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,2021,22,23,24,2575d.從外部數據文件調入矩陣 用load命令輸入 用Import 菜單輸入76矩陣元素的修改矩陣元素的修改 A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16 A = 1 2

42、 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A(1,1)ans = 1 A(2,3)ans = 7 A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0); AA = 0 2 3 4 5 7 7 8 9 10 11 12 13 14 15 1772.2.2 矩陣的拆分矩陣的拆分1矩陣元素矩陣元素 通過下標引用矩陣的元素,例如通過下標引用矩陣的元素,例如A(3,2)=200采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號就是采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號就是相應元素在內存中的排列順序。在相應元素在內存中的排列順序。在M

43、ATLAB中,矩陣元素中,矩陣元素按按列存儲列存儲,先第一列,再第二列,依次類推先第一列,再第二列,依次類推。例如。例如A=1,2,3;4,5,6;A(3)ans = 2顯然,序號顯然,序號(Index)與下標與下標(Subscript )是一一對應的,以是一一對應的,以mn矩陣矩陣A為例,矩陣元素為例,矩陣元素A(i,j)的序號為的序號為(j-1)*m+i。其相互轉換其相互轉換關系也可利用關系也可利用sub2ind和和ind2sub函數求得。函數求得。782矩陣拆分矩陣拆分 (1) 利用利用冒號冒號表達式獲得子矩陣表達式獲得子矩陣 A(:,j)表示取表示取A矩陣的矩陣的第第j列列全部全部元素

44、元素;A(i,:)表示表示A矩陣矩陣第第i行的行的全部全部元素元素;A(i,j)表示取表示取A矩陣矩陣第第i行、第行、第j列的元素。列的元素。 A(i:i+m,:)表示取表示取A矩陣第矩陣第ii+m行的全部元行的全部元素;素;A(:,k:k+m)表示取表示取A矩陣第矩陣第kk+m列的全部列的全部元素,元素,A(i:i+m,k:k+m)表示取表示取A矩陣第矩陣第ii+m行內,行內,并在第并在第kk+m列中的所有元素。列中的所有元素。7980 (2) 利用空矩陣刪除矩陣的元素利用空矩陣刪除矩陣的元素 在在MATLAB中,定義中,定義為空矩陣。給變量為空矩陣。給變量X賦空矩陣的語句為賦空矩陣的語句為

45、X=。注意,注意,X=與與clear X不同,不同,clear是將是將X從工作空間中刪除,從工作空間中刪除,而空矩陣則存在于工作空間中,只是維數而空矩陣則存在于工作空間中,只是維數為為0。812.2.3 特殊矩陣特殊矩陣1通用的特殊矩陣通用的特殊矩陣常用的產生通用特殊矩陣的函數有:常用的產生通用特殊矩陣的函數有:zeros:產生全產生全0矩陣矩陣(零矩陣零矩陣)。ones:產生全產生全1矩陣矩陣(幺矩陣幺矩陣)。eye:產生單位矩陣。產生單位矩陣。rand:產生產生01間均勻分布的隨機矩陣。間均勻分布的隨機矩陣。randn:產生均值為產生均值為0,方差為,方差為1的標準正態(tài)的標準正態(tài)分布隨機矩

46、陣。分布隨機矩陣。82例例2-3 分別建立分別建立33、32和與矩陣和與矩陣A同樣大小的同樣大小的零矩陣。零矩陣。(1) 建立一個建立一個33零矩陣。零矩陣。zeros(3) (2) 建立一個建立一個32零矩陣。零矩陣。zeros(3,2) (3) 設設A為為23矩陣,則可以用矩陣,則可以用zeros(size(A)建立建立一個與矩陣一個與矩陣A同樣大小零矩陣。同樣大小零矩陣。A=1 2 3;4 5 6; %產生一個產生一個23階矩陣階矩陣Azeros(size(A) %產生一個與矩陣產生一個與矩陣A同樣大小的同樣大小的零矩陣零矩陣83例例2-4 建立隨機矩陣:建立隨機矩陣: (1) 在區(qū)間在

47、區(qū)間20,50內均勻分布的內均勻分布的5階隨機矩陣。階隨機矩陣。(2) 均值為均值為0.6、方差為、方差為0.1的的5階正態(tài)分布隨機矩陣。階正態(tài)分布隨機矩陣。命令如下:命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函數還有此外,常用的函數還有reshape(A,m,n),它在矩它在矩陣總元素保持不變的前提下,將矩陣陣總元素保持不變的前提下,將矩陣A重新排成重新排成mn的二維矩陣。的二維矩陣。842用于專門學科的特殊矩陣用于專門學科的特殊矩陣 (1) 魔方矩陣魔方矩陣魔方矩陣有一個有趣的性質,其每行、每魔方矩陣有一個有趣的性質,其每

48、行、每列及兩條對角線上的元素和都相等。對于列及兩條對角線上的元素和都相等。對于n階魔方陣,其元素由階魔方陣,其元素由1,2,3,n2共共n2個整數個整數組成。組成。MATLAB提供了求魔方矩陣的函數提供了求魔方矩陣的函數magic(n),其功能是生成一個其功能是生成一個n階魔方陣。階魔方陣。85 (2) 范得蒙矩陣范得蒙矩陣范得蒙范得蒙(Vandermonde)矩陣最后一列全為矩陣最后一列全為1,倒數第二列為一個指定的向量,其他各列倒數第二列為一個指定的向量,其他各列是其后列與倒數第二列的點乘積??梢杂檬瞧浜罅信c倒數第二列的點乘積??梢杂靡粋€指定向量生成一個范得蒙矩陣。在一個指定向量生成一個范

49、得蒙矩陣。在MATLAB中,函數中,函數vander(V)生成以向量生成以向量V為基礎向量的范得蒙矩陣。例如,為基礎向量的范得蒙矩陣。例如,A=vander(1;2;3;5)即可得到上述范得蒙矩即可得到上述范得蒙矩陣。陣。86 (3) 伴隨矩陣伴隨矩陣 MATLAB生成伴隨矩陣的函數是生成伴隨矩陣的函數是compan(p),其中其中p是一個多項式的系數向是一個多項式的系數向量,高次冪系數排在前,低次冪排在后。量,高次冪系數排在前,低次冪排在后。例如,為了求多項式的例如,為了求多項式的x3-7x+6的伴隨矩陣,的伴隨矩陣,可使用命令:可使用命令:p=1,0,-7,6;compan(p)87 (4

50、) 帕斯卡矩陣帕斯卡矩陣 (楊輝三角形楊輝三角形) 我們知道,二次項我們知道,二次項(x+y)n展開后的系數隨展開后的系數隨n的增大組成一個三角形表,稱為楊輝三角的增大組成一個三角形表,稱為楊輝三角形。由楊輝三角形表組成的矩陣稱為帕斯形。由楊輝三角形表組成的矩陣稱為帕斯卡卡(Pascal)矩陣。函數矩陣。函數pascal(n)生成一個生成一個n階階帕斯卡矩陣。帕斯卡矩陣。88例例2-2 求求(x+y)5的展開式。的展開式。在在MATLAB命令窗口,輸入命令:命令窗口,輸入命令:pascal(6)矩陣次對角線上的元素矩陣次對角線上的元素1,5,10,10,5,1即為展即為展開式的系數。開式的系數

51、。89 2.3 MATLAB運算運算 2.3.1算術運算算術運算1基本算術運算基本算術運算 MATLAB的基本算術運算有:的基本算術運算有:(加加)、(減減)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)。注意,運算是在矩陣意義下進行的,單個注意,運算是在矩陣意義下進行的,單個數據的算術運算只是一種特例。數據的算術運算只是一種特例。90 (1) 矩陣加減運算矩陣加減運算 假定有兩個矩陣假定有兩個矩陣A和和B,則可以由則可以由A+B和和A-B實現實現矩陣的加減運算。運算規(guī)則是:若矩陣的加減運算。運算規(guī)則是:若A和和B矩陣的維矩陣的維數相同,則可以執(zhí)行矩陣的加減運算,數相同,則可以執(zhí)行矩

52、陣的加減運算,A和和B矩陣矩陣的相應元素相加減。如果的相應元素相加減。如果A與與B的維數不相同,則的維數不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的將給出錯誤信息,提示用戶兩個矩陣的維數不匹配。維數不匹配。 (2) 矩陣乘法矩陣乘法 假定有兩個矩陣假定有兩個矩陣A和和B,若若A為為mn矩陣,矩陣,B為為np矩陣,則矩陣,則C=A*B為為mp矩陣。矩陣。91a. 矩陣的加減運算矩陣的加減運算 A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16 B=1,sqrt(25),9,132,6,10 7*23+sin(pi),7,11,154,abs(-8),12

53、,16 C=A+B C = 2 7 12 17 7 12 17 22 12 17 22 27 17 22 27 32 D=A-BD = 0 -3 -6 -9 3 0 -3 -6 6 3 0 -3 9 6 3 0 E=A+3 E = 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 1992 (3) 矩陣除法矩陣除法 在在MATLAB中,有兩種矩陣除法運算:中,有兩種矩陣除法運算:和和/,分,分別表示左除和右除。如果別表示左除和右除。如果A矩陣是非奇異方陣,矩陣是非奇異方陣,則則AB和和B/A運算可以實現。運算可以實現。AB等效于等效于A的逆左的逆左乘乘B矩陣,也就是矩

54、陣,也就是inv(A)*B,而而B/A等效于等效于A矩陣矩陣的逆右乘的逆右乘B矩陣,也就是矩陣,也就是B*inv(A)。對于含有標量的運算,兩種除法運算的結果相同,對于含有標量的運算,兩種除法運算的結果相同,如如3/4和和43有相同的值,都等于有相同的值,都等于0.75。又如,設。又如,設a=10.5,25,則則a/5=5a=2.1000 5.0000。對于矩對于矩陣來說,左除和右除表示兩種不同的除數矩陣和陣來說,左除和右除表示兩種不同的除數矩陣和被除數矩陣的關系。對于矩陣運算,一般被除數矩陣的關系。對于矩陣運算,一般ABB/A。93b. 矩陣乘法矩陣乘法 C=A*BC = 30 70 110

55、 150 70 174 278 382 110 278 446 614 150 382 614 846 D=A*3D = 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48c. 矩陣除法矩陣除法左除左除 AB=inv(A)*B A=8,1,6;3,5,7;4,9,2A = 8 1 6 3 5 7 4 9 2 B=1,1,1;1,2,3;1,3,6 B = 1 1 1 1 2 3 1 3 6 ABans = 0.0667 0.0500 0.0972 0.0667 0.3000 0.6389 0.0667 0.0500 -0.0694 C=inv(A)C =

56、0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 C*B ans = 0.0667 0.0500 0.0972 0.0667 0.3000 0.6389 0.0667 0.0500 -0.0694右除右除 A/B =A*inv(B) A/Bans = 27 -31 12 1 2 0 -13 29 -12 D=inv(B) D = 3 -3 1 -3 5 -2 1 -2 1 A*Dans = 27 -31 12 1 2 0 -13 29 -1294當對矩陣作當對矩陣作除法運算除法運算時,有可能因為誤差設置的差別導

57、致不精確的結時,有可能因為誤差設置的差別導致不精確的結果,此時,果,此時,MATLAB 會自動給出警告信息會自動給出警告信息:MATLAB 采用采用 IEEE( 國際認可的)算法,即使國際認可的)算法,即使 A 為奇異陣為奇異陣( 即即 A 的行列式值是的行列式值是0),運算也照樣進行,但是此時),運算也照樣進行,但是此時 MATLAB 將給出警告將給出警告信息:信息:“ Warning: Matrix is singular to working precision.”,求出的矩求出的矩陣所有元素為無窮大(陣所有元素為無窮大( Inf);); 當矩陣當矩陣 A 為為病態(tài)陣病態(tài)陣( Badly

58、 Scaled)時,時,MATLAB 使用的算法產生的使用的算法產生的誤差可能很大,誤差可能很大,MATLAB 系統也將給出警告信息:系統也將給出警告信息:“ Warning: Matrix is badly scaled to working precision. Results may be inaccurate.”。 E=1,2,3;4,5,6;7,8,9E = 1 2 3 4 5 6 7 8 9 F=1,4,7;2,5,8;3,6,9F = 1 4 7 2 5 8 3 6 9 EFWarning: Matrix is close to singular or badly scaled.

59、 Results may be inaccurate. RCOND = 1.541976e-018.ans = -0.3333 -7.3333 -14.3333 0.6667 11.6667 22.6667 0 -4.0000 -8.0000 95 (4) 矩陣的乘方矩陣的乘方 一個矩陣的乘方運算可以表示成一個矩陣的乘方運算可以表示成Ax,要求要求A為方為方陣,陣,x為標量。為標量。2點運算點運算 在在MATLAB中,有一種特殊的運算,因為其運中,有一種特殊的運算,因為其運算符是在有關算術運算符前面加點,所以叫點運算符是在有關算術運算符前面加點,所以叫點運算。點運算符有算。點運算符有.*、./

60、、.和和.。兩矩陣進行點運。兩矩陣進行點運算是指它們的算是指它們的對應元素對應元素進行相關運算,要求兩矩進行相關運算,要求兩矩陣的維參數相同。陣的維參數相同。962.3.2 關系運算關系運算 MATLAB提供了提供了6種種關系運算符:關系運算符:(小于小于)、(大于大于)、=(大于或等大于或等于于)、=(等于等于)、=(不等于不等于)。 它們的含義不難理解,但要注意其書寫方它們的含義不難理解,但要注意其書寫方法與數學中的不等式符號不盡相同。法與數學中的不等式符號不盡相同。97 關系運算符的運算法則為:關系運算符的運算法則為: (1) 當兩個比較量是當兩個比較量是標量標量時,直接比較兩時,直接比較兩數的大小。若

溫馨提示

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

最新文檔

評論

0/150

提交評論