MATLAB語(yǔ)言程序設(shè)計(jì)教程(第二版)完教學(xué)課件完整版電子教案_第1頁(yè)
MATLAB語(yǔ)言程序設(shè)計(jì)教程(第二版)完教學(xué)課件完整版電子教案_第2頁(yè)
MATLAB語(yǔ)言程序設(shè)計(jì)教程(第二版)完教學(xué)課件完整版電子教案_第3頁(yè)
MATLAB語(yǔ)言程序設(shè)計(jì)教程(第二版)完教學(xué)課件完整版電子教案_第4頁(yè)
MATLAB語(yǔ)言程序設(shè)計(jì)教程(第二版)完教學(xué)課件完整版電子教案_第5頁(yè)
已閱讀5頁(yè),還剩637頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第1章MATLAB概述第1章 MATLAB概述學(xué)習(xí)目標(biāo)了解MATLAB的主要功能,掌握MATLAB的安裝方法以及MATLAB系統(tǒng)的啟動(dòng)與退出;掌握MATLAB的工作界面、MATLAB的文件管理方式;學(xué)會(huì)使用MATLAB的幫助功能。1.1 MATLAB的影響及其發(fā)展歷史 MATLAB是MathWorks公司于1984年推出的一套高性能的數(shù)值計(jì)算可視化軟件 MATLAB一般包括數(shù)值分析、矩陣運(yùn)算、數(shù)字信號(hào)處理、建模和系統(tǒng)控制和優(yōu)化等應(yīng)用程序 MATLAB提供了強(qiáng)大的科學(xué)運(yùn)算功能、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形生成功能及模擬、便捷的與其他程序和語(yǔ)言接口的功能 1.1 MATLAB的影響及其發(fā)展歷史

2、1980年前后,MATLAB初具雛形。 1983年工程師Jonh Little與Cleve Moler、Steve Bangert合作開(kāi)發(fā)了第二代專業(yè)版MATLAB。 1984年成立MathWorks公司,推出MATLAB第1版(DOS版),正式將MATLAB推向市場(chǎng)。 1993年MathWorks公司推出MATLAB 4.0版本 1997年春,MATLAB 5.0版問(wèn)世 1.1 MATLAB的影響及其發(fā)展歷史1999年春的MATLAB 5.3版也相繼問(wèn)世 2002年6月,MathWorks公司再推出MATLAB 6.5版 2004年6月,推出MATLAB 7.0版 2005年3月,MATLA

3、B 7.0.4正式發(fā)布 1.2 MATLAB 7.0的主要功能數(shù)值計(jì)算功能(Numeric) 符號(hào)計(jì)算功能(Symbolic) 圖形和可視化功能(Graphic) 活筆記本功能(Notebook) 可視化建模和仿真功能(Simulink) 1.3.1 運(yùn)行環(huán)境1硬件環(huán)境 計(jì)算機(jī)的CPU為Pentium、Pentium Por、Pentium II、Pentium III、Pentium 4、Xeon PIII、AMD Athlon、AMD Athlon XP等,最好是Pentium III或更高。 內(nèi)存至少128MB,推薦在256MB以上。 硬盤(pán)至少有2GB以上的剩余空間。 顯卡最小為8位圖形

4、適配器,并在256色以上。 CD光驅(qū)至少為20倍速以上。1.3.1 運(yùn)行環(huán)境2軟件環(huán)境操作系統(tǒng)為Windows 98/NT/2000/XP/2003等版本。 瀏覽器應(yīng)為Netscape Navigator 4.0a及更高版本或Microsoft Internet Explorer 4.0及更高版本。 要安裝運(yùn)行MATLAB Notebook、MATLAB Excel Builder、Excel Link、Database Toolbox和MATLAB Web Server,需要安裝Microsoft Word 8.0(Office 97)、Office 2000 或Office XP等。 要實(shí)

5、現(xiàn)API,需要預(yù)先安裝Compaq Visual Fortran 5.0、6.1或6.6,Microsoft Visual C/C+ 5.0、6.0或7.0,或者安裝Borland C/C+ 5.0或5.02,Borland C+ Builder 3.0、4.0、5.0或6.0,Watcom version 10.6/11或者LCC2.4。 為了能夠閱讀和打印軟件所附帶的PDF格式的幫助信息,需要安裝Adobe Acrobat Reader 3.0或更高版本。1.3.2 安裝過(guò)程安裝前準(zhǔn)備由于病毒監(jiān)測(cè)軟件可能對(duì)安裝過(guò)程產(chǎn)生影響,因而在安裝前應(yīng)該關(guān)閉所運(yùn)行的病毒監(jiān)測(cè)軟件。關(guān)閉當(dāng)前運(yùn)行的其他程序,

6、尤其是正在運(yùn)行的MATLAB軟件的其他版本或其副本。 準(zhǔn)備PLP密碼號(hào)(序列號(hào))安裝時(shí)使用。準(zhǔn)備MATLAB 7.0安裝光盤(pán)或程序包。1.3.2 安裝過(guò)程(1)將MATLAB 7.0光盤(pán)放入光驅(qū),將會(huì)自動(dòng)運(yùn)行安裝程序。如果不能自動(dòng)運(yùn)行安裝程序,可執(zhí)行光盤(pán)目錄下的Setup.exe安裝程序。 (2)單擊Next按鈕,打開(kāi)License Information對(duì)話框 (3)正確輸入用戶名、公司名及序列號(hào)后,單擊Next按鈕,打開(kāi)License Agreement軟件許可協(xié)議對(duì)話框 (4)要遵守軟件許可協(xié)議,單擊Yes按鈕,打開(kāi)Installation Type安裝類(lèi)型選擇對(duì)話框 (5)選擇好安裝類(lèi)

7、型后,單擊Next按鈕,打開(kāi)Folder Selection安裝路徑選擇對(duì)話框,用戶可按照提示選擇安裝路徑 (6)選擇安裝路徑,單擊Next按鈕,打開(kāi)安裝復(fù)制對(duì)話框,如圖1-6所示。這是軟件安裝的主要過(guò)程,系統(tǒng)會(huì)自動(dòng)完成安裝。(7)復(fù)制安裝完畢后,打開(kāi)Setup Complete安裝完成對(duì)話框 1.4 MATLAB 7.0系統(tǒng)的啟動(dòng)與退出1MATLAB 7.0系統(tǒng)的啟動(dòng)選擇“開(kāi)始”“程序”MATLAB 7.0命令運(yùn)行MATLAB7.0安裝目錄下系統(tǒng)啟動(dòng)程序MATLAB 7.0.exe執(zhí)行桌面上的MATLAB 7.0快捷方式2MATLAB 7.0系統(tǒng)的退出選擇FileExit MATLAB命令在

8、MATLAB命令窗口輸入Exit或Quit命令單擊MATLAB標(biāo)題欄上的關(guān)閉按鈕1.5 MATLAB 7.0工作界面 在默認(rèn)情況下,MATLAB 7.0工作界面包括6個(gè)窗口,分別為:主窗口命令窗口命令歷史記錄窗口當(dāng)前目錄窗口工作空間窗口和發(fā)行說(shuō)明窗口1.5.1 菜單欄 MATLAB 7.0窗口的菜單欄共包含F(xiàn)ile、Edit、Debug、Desktop、Window和Help等6個(gè)菜單項(xiàng)。File菜單 在File菜單中共有11個(gè)命令 New Open Close Command Window Import Data Save Workspace As Set Path Preferences

9、Page Setup Print Print Selection Exit MATLAB Edit菜單 在Edit菜單中共有12個(gè)命令Undo Redo Cut Copy Paste Paste Special Select AllDelete Find Clear Command Window Clear Command History Clear Workspace Debug菜單 在Debug菜單中共有8個(gè)命令 Open M-Files when Debugging Step Step In Step Out Continue Clear Breakpoints in All Files

10、 Stop if Errors/Warnings Exit Debug Mode Desktop菜單 在Desktop菜單中共有13個(gè)命令 Undock Command Window Desktop Layout Save Layout Organize Layouts 6個(gè)可選的命令:Command Window、Command History、Current Directory、Workspace、Help和ProfilerToolbar Shortcuts ToolbarTitles Help菜單 在Help菜單中共有8個(gè)命令 Full Product Family Help MATLA

11、B Help Using the Desktop Using the Command Window Web Resources Check for Updates Demos About MATLAB 1.5.2 工具欄從左至右的命令按鈕的功能為:New M-File按鈕:新建一個(gè)MATLAB文件。Open File按鈕:打開(kāi)一個(gè)MATLAB文件。Cut按鈕:剪切已選中的對(duì)象到剪貼板中。Copy按鈕:復(fù)制已選中的對(duì)象到剪貼板中。Paste按鈕:把剪貼板中的內(nèi)容粘貼到光標(biāo)所在處。Undo按鈕:撤銷(xiāo)上一次的操作。Redo按鈕:恢復(fù)上一次的操作。Simulink按鈕:打開(kāi)Simulink主窗口。GU

12、I按鈕:打開(kāi)GUI窗口。Help按鈕:打開(kāi)MATLAB幫助文件。Current Directory下拉列表框:設(shè)置當(dāng)前工作路徑。Browse for Folder按鈕:顯示當(dāng)前工作路徑的上一級(jí)地址。1.5.3 命令窗口MATLAB 7.0的命令窗口中“”為命令提示符,表示MATLAB處于就緒狀態(tài)。 命令行的規(guī)則為: 一個(gè)命令行輸入一條命令,命令行以回車(chē)符結(jié)束。一個(gè)命令行也可以輸入若干條命令,各命令之間以逗號(hào)分隔,若前一命令后帶有分號(hào),則逗號(hào)可以省略。如果一個(gè)命令行很長(zhǎng),要加續(xù)行符(3個(gè)小黑點(diǎn))。1.5.4 歷史記錄窗口 歷史記錄(Command History)窗口在MATLAB早期的版本中曾

13、經(jīng)有過(guò)相應(yīng)內(nèi)容,在MATLAB 7.0中再次出現(xiàn),并且加強(qiáng)了該功能。 歷史記錄窗口中會(huì)自動(dòng)保留自安裝起所有用過(guò)的命令的歷史記錄,并且還標(biāo)明了使用時(shí)間,從而方便用戶查詢或再次使用。在歷史記錄中的命令可以通過(guò)單擊來(lái)執(zhí)行,這樣就避免了重復(fù)輸入命令的麻煩。1.5.5 當(dāng)前目錄窗口 在當(dāng)前目錄(Current Directory)窗口中可以顯示或改變當(dāng)前目錄,還可以顯示當(dāng)前目錄下的文件并提供搜索功能。 1.5.6 查詢便捷簿窗口 查詢便捷簿(Launch Pad)窗口用以隨時(shí)向用戶說(shuō)明軟件中包含的內(nèi)容及功能。用戶可以通過(guò)該窗口查看已經(jīng)安裝的各種工具箱,雙擊選中的工具箱或單擊前面的號(hào),就可以看到工具箱的各

14、項(xiàng)功能。1.5.7 工作空間窗口 工作空間(Workspace)窗口中將顯示所有目前內(nèi)存中存放的變量名、變量存儲(chǔ)數(shù)據(jù)的維數(shù)、變量存儲(chǔ)的字節(jié)數(shù)和變量類(lèi)型等說(shuō)明。1.6 MATLAB 7.0的輔助部分 引入了全方位的幫助功能 M文件編輯、調(diào)試的集成環(huán)境 M文件的性能剖析 Notebook新的安裝方式 MATLAB環(huán)境可運(yùn)行文件的多樣化 1.7 MATLAB的數(shù)學(xué)函數(shù)庫(kù)MATLAB的數(shù)學(xué)函數(shù)庫(kù)十分豐富,幾乎包括了現(xiàn)今各個(gè)工程領(lǐng)域中需要使用的數(shù)學(xué)函數(shù),函數(shù)庫(kù)中函數(shù)的編寫(xiě)都是采用現(xiàn)今國(guó)際公認(rèn)最先進(jìn)和最可靠的算法 MATLAB數(shù)值計(jì)算函數(shù)庫(kù)的另一個(gè)特點(diǎn)是其內(nèi)容的基礎(chǔ)性和通用性。它正是由于這一特點(diǎn),而適應(yīng)了

15、諸如自動(dòng)控制、信號(hào)處理、動(dòng)力工程、電力系統(tǒng)等應(yīng)用學(xué)科的需要,并進(jìn)而開(kāi)發(fā)出一系列應(yīng)用工具包1.7.2 MATLAB 7.0新增功能簡(jiǎn)介 1環(huán)境界面變化2程序控制及數(shù)學(xué)運(yùn)算功能3圖形和3D可視化的增強(qiáng)4MATLAB 7.0版的符號(hào)計(jì)算工具包1.8 MATLAB應(yīng)用實(shí)例 【例1.1】求線性方程組的解。【例1.1】求線性方程組的解。解 在命令窗口輸入如下內(nèi)容:T,X,Y,Z=solve(x+3*y+2*z+4*t-5,2*x+3*y+4*z+7*t-6,3*x+4*y+8*z+9*t-5,x+y+2*z+t) 結(jié)果如下:T=1X=0Y=1Z=-1【例1.2】繪制函數(shù)x= sin(3t)cos(t)的圖

16、形。解 在命令窗口輸入如下內(nèi)容:t=0:0.5:360*pi/180;plot(t,sin(t.*3).*cos(t)小 結(jié)本章主要介紹了MATLAB的主要功能;MATLAB系統(tǒng)的運(yùn)行環(huán)境及如何正確的安裝MATLAB系統(tǒng);MATLAB系統(tǒng)的啟動(dòng)與退出的方法;MATLAB的工作界面及各菜單的簡(jiǎn)單操作方式;MATLAB的文件管理系統(tǒng)的使用方式;如何使用MATLAB的幫助系統(tǒng);最后舉例說(shuō)明MATLAB的簡(jiǎn)單應(yīng)用。第2章MATLAB矩陣和數(shù)組運(yùn)算第2章 MATLAB矩陣和數(shù)組運(yùn)算學(xué)習(xí)目標(biāo)了解稀疏矩陣的相關(guān)內(nèi)容;理解矩陣和數(shù)組運(yùn)算的命令;掌握使用MATLAB命令建立矩陣及矩陣的算術(shù)運(yùn)算、線性運(yùn)算、矩陣的

17、分解。2.1 矩陣的建立 矩陣的建立共有兩種方法,可以通過(guò)MATLAB命令直接建立矩陣,也可以通過(guò)MATLAB提供的函數(shù)建立相應(yīng)的矩陣。 在MATLAB中創(chuàng)建矩陣有以下規(guī)則: 矩陣元素必須在“ ”內(nèi)。矩陣的同行元素之間用空格(或“,”)隔開(kāi)矩陣的行與行之間用“;”(或回車(chē)符)隔開(kāi)矩陣的元素可以是數(shù)值、變量、表達(dá)式或函數(shù)矩陣的尺寸不必預(yù)先定義2.1.1 直接建立矩陣直接建立矩陣的方法就是把矩陣的各元素用中括號(hào)括起來(lái),括號(hào)內(nèi)同一行的元素之間用空格或逗號(hào)分開(kāi),行與行之間用分號(hào)或回車(chē)符分開(kāi)。在MATLAB環(huán)境下,分號(hào)具有三個(gè)作用:在“ ”方括號(hào)內(nèi),它是矩陣行間的分隔符它可作為指令與指令見(jiàn)得分隔符當(dāng)它放

18、在賦值指令后時(shí),該指令執(zhí)行后的賦值結(jié)果將不顯示在屏幕上【例2.1】直接建立一個(gè)矩陣 解 在MATLAB命令提示符下輸入: clear X=1 2 3;4 5 6;7 8 9X=1 2 3 4 5 6 7 8 9 Y=1.5 2.5 3 4 7 6 7 8 9Y=1.5000 2.5000 3.0000 4.0000 7.0000 6.0000 7.0000 8.0000 9.00002.1.2 利用函數(shù)建立矩陣MATLAB提供了很多函數(shù),可以通過(guò)這些函數(shù)方便地建立矩陣。1單位矩陣函數(shù)eye()2隨機(jī)矩陣函數(shù)rand()3魔方矩陣函數(shù)magic()4范得蒙(Vandermonde)矩陣函數(shù)van

19、der()5托普利茲(Toeplitz)矩陣函數(shù)toeplitz()1單位矩陣函數(shù)eye()單位矩陣的特點(diǎn)是主對(duì)角線上元素為1,其他位置上的元素全為0。通過(guò)調(diào)用函數(shù)eye()可以建立單位矩陣,調(diào)用方法是:Y=eye(n)用于生成nn階單位陣。Y=eye(m,n)用于生成mn階單位陣?!纠?.2】創(chuàng)建一個(gè)55階單位陣 解 在MATLAB命令提示符下輸入: clear X=eye(5)X=1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 Y=eye(2,3)Y=1 0 0 0 1 02隨機(jī)矩陣函數(shù)rand()隨機(jī)矩陣的特點(diǎn)是由計(jì)算機(jī)隨機(jī)產(chǎn)生數(shù)據(jù)而生

20、成的矩陣。通過(guò)運(yùn)行rand()函數(shù)可以生成隨機(jī)矩陣,調(diào)用方法為:Y=rand(n)生成nn階隨機(jī)矩陣,其元素在(0,1)內(nèi)。Y=rand(m,n)生成mn階隨機(jī)矩陣?!纠?.3】產(chǎn)生一個(gè)56階的隨機(jī)矩陣解 在MATLAB命令提示符下輸入: clear Y=rand(5,6)Y=0.9501 0.7621 0.6154 0.4057 0.0579 0.2028 0.2311 0.4565 0.7919 0.9355 0.3529 0.1987 0.6068 0.0185 0.9218 0.9169 0.8132 0.6038 0.4860 0.8214 0.7382 0.4103 0.0099

21、0.2722 0.8913 0.4447 0.1763 0.8936 0.1389 0.19883魔方矩陣函數(shù)magic()魔方矩陣的特點(diǎn)是每行、每列及兩條對(duì)角線上的元素和都相等。對(duì)于n階魔方陣,其元素由1,2,3,nn共nn個(gè)整數(shù)組成。函數(shù)為magic(),調(diào)用方法為:Y=magic(n)生成nn階魔方矩陣。【例2.5】建立一個(gè)魔方矩陣解 在MATLAB命令提示符下輸入: clear Y=magic(4)Y=16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 14范得蒙(Vandermonde)矩陣函數(shù)vander()范得蒙(Vandermonde)矩陣的特點(diǎn)是最后一列

22、全為1,倒數(shù)第二列為一個(gè)指定的向量,倒數(shù)第二列為一個(gè)指定的向量,其他各列是其后列與倒數(shù)第二列的點(diǎn)積。生成范得蒙矩陣的函數(shù)為vander(),調(diào)用方法為:vander(x)其中x為一給定向量,可以用此向量生成一個(gè)范得蒙矩陣?!纠?.6】利用向量m建立一個(gè)范得蒙矩陣 解 在MATLAB命令提示符下輸入: m=2 3 4 5; vander(m)ans=8 4 2 1 27 9 3 1 64 16 4 1 125 25 5 1 5托普利茲(Toeplitz)矩陣函數(shù)toeplitz() 托普利茲(Toeplitz)矩陣的特點(diǎn)是除第一行、第一列外,其他每個(gè)元素都與左上角的元素相同。生成托普利茲矩陣的函

23、數(shù)為toeplitz()。調(diào)用方法為:A=toeplitz(b,c)生成一個(gè)把b作為第1列、把c作為第一行、其他元素與左上角相鄰元素相等的矩陣。 【例2.7】建立一個(gè)托普利茲矩陣 解 在MATLAB命令提示符下輸入: clear b=8 9 4 5 7; c= 8 2 3 12 15 10; A=toeplitz(b,c)A=8 2 3 12 15 10 9 8 2 3 12 15 4 9 8 2 3 12 5 4 9 8 2 3 7 5 4 9 8 22.1.3 用冒號(hào)表達(dá)式建立矩陣 利用冒號(hào)表達(dá)式建立矩陣時(shí),只需要把冒號(hào)表達(dá)式加中括號(hào)就可以了。需要注意的是:用冒號(hào)表達(dá)式建立矩陣一定要每行的

24、元素個(gè)數(shù)相等。冒號(hào)表達(dá)式格式為:a1:a2:a3其中,a1是起始數(shù)據(jù),a2是步長(zhǎng),a3是終止數(shù)據(jù)。若a2省略不寫(xiě),則默認(rèn)步長(zhǎng)為1?!纠?.8】用冒號(hào)表達(dá)式建立矩陣 解 在MATLAB命令提示符下輸入: clear Y=1:1:6Y=1 2 3 4 5 6 Y=1:4;5:8 Y=1 2 3 4 5 6 7 8 Y=1:4;5:9 這里無(wú)法建立矩陣,因?yàn)?4是4個(gè)元素,59是5個(gè)元素。這里的“%”后面的文字表示對(duì)MATLAB命令的注釋,以后不再一一說(shuō)明。2.1.4 創(chuàng)建復(fù)合矩陣復(fù)合矩陣可由中括號(hào)中的小矩陣建立?!纠?.9】生成一個(gè)復(fù)合矩陣Y,它由小矩陣X建立。解 在MATLAB命令提示符下輸入:

25、 clear X=1 2 3;4 5 6;7 8 9X=1 2 3 4 5 6 7 8 9 size(X) ans=3 3 eye(size(X)ans=1 0 0 0 1 0 0 0 1 ones(size(X)ans=1 1 1 1 1 1 1 1 1 Y=X,eye(size(X);ones(size(X),XY=1 2 3 1 0 0 4 5 6 0 1 0 7 8 9 0 0 1 1 1 1 1 2 3 1 1 1 4 5 6 1 1 1 7 8 9 Z=X X+1Z=1 2 3 2 3 4 4 5 6 5 6 7 7 8 9 8 9 102.2 矩陣的算術(shù)運(yùn)算矩陣的算術(shù)運(yùn)算包括:(

26、加)、(減)、*(乘)、/(右除)、(左除)、及其(乘方)運(yùn)算。使用MATLAB可以方便地實(shí)現(xiàn)矩陣的算術(shù)運(yùn)算。2.2.1 加、減運(yùn)算 兩個(gè)矩陣進(jìn)行加、減運(yùn)算時(shí),兩個(gè)矩陣必須具有相同的行數(shù)和列數(shù)?!纠?.10】?jī)蓚€(gè)矩陣相加減。解 在MATLAB命令提示符下輸入: A=1, 2, 3; 4, 5, 3; 9, 5, 6; B=12, 11, 10; 8, 7, 5; 1, 5, 2; A+Bans=13 13 13 12 12 8 10 10 8 A-Bans=-11 -9 -7 -4 -2 -2 8 0 42.2.2 乘法兩個(gè)矩陣A、B進(jìn)行乘法運(yùn)算(AB)時(shí),矩陣A(nm)的列數(shù)必須和矩陣B(m

27、k)的行數(shù)相等,乘法運(yùn)算后生成一個(gè)nk階矩陣。1兩個(gè)矩陣相乘【例2.11】求兩個(gè)矩陣X、Y相乘后得到的矩陣Z。解 在MATLAB命令提示符下輸入: X=1 3 5 7; 2 4 6 8; Y=1 2 3; 4 5 6; 7 8 9; 5 4 0; Z=X*YZ=83 85 66 100 104 842矩陣的數(shù)乘 【例2.12】求數(shù)乘矩陣Y=4X。解 在MATLAB命令提示符下輸入: clear X=1 2 3 4;5 6 7 8X=1 2 3 4 5 6 7 8 Y=4*XY=4 8 12 16 20 24 28 323矩陣的乘方【例2.13】求矩陣的乘方Y(jié)=X2、Y=X3。解 在MATLAB

28、命令提示符下輸入: clear X=1 2 3;4 5 6;7 8 9X=1 2 3 4 5 6 7 8 9Y=X2Y=30 36 42 66 81 96 102 126 150 Y=X3Y=468 576 684 1062 1305 1548 1656 2034 24122.2.3 矩陣相除在MATLAB中,矩陣相除分為左除()和右除(/)。X=AB是方程AXB的解;而X=A/B是方程XA=B的解。注意左除和右除里面的A、B必須就有相應(yīng)的行和列?!纠?.14】已知矩陣A、B,求矩陣X解 在MATLAB命令提示符下輸入:clear A=eye(3)A=1 0 0 0 1 0 0 0 1B=1

29、2 3;4 5 6;7 8 9B=1 2 3 4 5 6 7 8 9X=AB X=1 2 3 4 5 6 7 8 9X=B/A %矩陣右除,求X*A=B的解X=1 2 3 4 5 6 7 8 92.3 矩陣線性運(yùn)算 矩陣的線性運(yùn)算包括矩陣的特征值與特征向量的求法、正交基、二次型、秩和線性相關(guān)性等運(yùn)算。MATLAB為矩陣的線性運(yùn)算提供了大量的運(yùn)算函數(shù),通過(guò)調(diào)用這些函數(shù),可以進(jìn)行相應(yīng)的矩陣線性運(yùn)算。2.3.1 矩陣的特征值1矩陣特征值與特征向量的求法如果A是nn矩陣,若存在實(shí)數(shù)和向量x滿足式子Axx,則為A的特征值,x為A的特征向量。計(jì)算矩陣A的特征值和特征向量的函數(shù)是eig(A),有以下3種常用

30、的調(diào)用格式:(1)E=eig(A):(2)V,D=eig(A):(3)V,D=eig(A,nobalance): 2.3.1 矩陣的特征值2復(fù)對(duì)角矩陣轉(zhuǎn)化為實(shí)對(duì)角矩陣cdf2rdf()通過(guò)調(diào)用函數(shù)cdf2rdf()可以將復(fù)對(duì)角矩陣轉(zhuǎn)化為實(shí)對(duì)角矩陣。調(diào)用格式為:V,D=cdf2rdf(v,d)將復(fù)對(duì)角陣d變?yōu)閷?shí)對(duì)角陣D,在對(duì)角線上,用22實(shí)數(shù)塊代替共軛復(fù)數(shù)對(duì)。 2.3.2 矩陣的正交基通過(guò)調(diào)用函數(shù)orth()可以求矩陣正交基。調(diào)用格式為: B=orth(A)將矩陣A正交規(guī)范化,B的列與A的列具有相同的空間,B的列向量是正交向量,且滿足B*B=eye(rank(A)。這里rank(A)表示矩陣的秩

31、?!纠?.19】將矩陣 正交規(guī)范化解 在MATLAB命令提示符下輸入: clear Y=8 0 0;0 4 2;0 5 9; B=orth(Y) B= 0 1.0000 0 -0.3540 0 -0.9352 -0.9352 0 0.3540 Q=B*BQ=1.0000 0 -0.0000 0 1.0000 0 -0.0000 0 1.00002.3.3 矩陣的二次型n個(gè)變量的二次齊次函數(shù) ,其中, , (i,j=1,2,n),稱為n元二次型,簡(jiǎn)稱二次型。 若令, , 則二次型f可改寫(xiě)為矩陣向量形式f =xTAx。其中A稱為二次型矩陣。任一實(shí)二次型f都可合同變換為規(guī)范型 【例2.20】求一個(gè)正

32、交變換X=PY,把二次型f( x1,x2,x3) 化成標(biāo)準(zhǔn)形。解 在MATLAB命令提示符下輸入:clearA=0 2 -2;2 4 4;-2 4 -3; A=0 2 -2;2 4 4;-2 4 -3A=0 2 -2 2 4 4 -2 4 -3 P,D=eig(A)P= 0.4082 0.8944 -0.1826 -0.4082 -0.0000 -0.9129 0.8165 -0.4472 -0.3651D=-6.0000 0 0 0 1.0000 0 0 0 6.0000 syms y1 y2 y3 %聲明變量 y=y1;y2;y3y= y1 y2 y3 X=vpa(P,2)*y X= .4

33、3*y1+.88*y2-.18*y3 -.43*y1-.66e-16*y2-.94*y3 .83*y1-.44*y2-.37*y3 f=y1 y2 y3 *D*yf=-6*y12+y22+6*y322.3.4 秩 1矩陣和向量組的秩矩陣A的秩指的是矩陣A中非零子式最高階的階數(shù),記為r(A);向量組的秩通常通過(guò)該向量組構(gòu)成的矩陣來(lái)計(jì)算。通過(guò)調(diào)用函數(shù)rank()可以求矩陣的秩。調(diào)用格式為:k=rank(A)返回矩陣A的行(或列)向量中線性無(wú)關(guān)個(gè)數(shù)。k=rank(A,tol)tol為給定誤差?!纠?.22】求向量組a1=(1 2 1 3),a2=(4 -1 -5 -6),a3=(-1 -3 -4 -

34、7),a4=(2 1 2 0)的秩,并判斷其線性相關(guān)性。解 在MATLAB命令提示符下輸入: clearZ=1 2 1 3;4 -1 -5 -6;-1 -3 -4 -7;2 1 2 0;k=rank(Z)k=42.4 矩 陣 分 析矩陣分析主要包括矩陣結(jié)構(gòu)的變換,如矩陣的轉(zhuǎn)置、矩陣的旋轉(zhuǎn)、矩陣的左右翻轉(zhuǎn)、矩陣的上下翻轉(zhuǎn);矩陣的逆與偽逆的運(yùn)算;方陣的行列式的運(yùn)算。利用MATLAB可以方便快捷地進(jìn)行上述運(yùn)算。2.4.1 矩陣結(jié)構(gòu)變換1矩陣的轉(zhuǎn)置矩陣轉(zhuǎn)置的運(yùn)算符是()?!纠?.23】求矩陣A的轉(zhuǎn)置。解 在MATLAB命令提示符下輸入: clear A=1 2 3;4 5 6 A=1 2 3 4 5

35、6 A=1 2 3;4 5 6 A=1 4 2 5 3 62矩陣的旋轉(zhuǎn)矩陣的旋轉(zhuǎn)是利用函數(shù)rot90(A,k),功能是將矩陣A旋轉(zhuǎn)90的k倍,當(dāng)k為1時(shí)可省略?!纠?.24】求矩陣B的旋轉(zhuǎn)。解 在MATLAB命令提示符下輸入: clear A=1 2 3;4 5 6 A=1 4 2 5 3 6 B=rot90(A,1) B=4 5 6 1 2 3 B=rot90(A,2) B=6 3 5 2 4 13矩陣的左右翻轉(zhuǎn)通過(guò)調(diào)用函數(shù)fliplr(A)可以實(shí)現(xiàn)矩陣的左右翻轉(zhuǎn)?!纠?.25】求矩陣A的左右翻轉(zhuǎn)。解 在MATLAB命令提示符下輸入: clear A=1 2 3;4 5 6A=1 4 2 5

36、 3 6 fliplr(A)ans=4 1 5 2 6 34矩陣的上下翻轉(zhuǎn)通過(guò)調(diào)用函數(shù)flipud(A)可以實(shí)現(xiàn)矩陣的上下翻轉(zhuǎn)。【例2.26】求矩陣A的上下翻轉(zhuǎn)。解 在MATLAB命令提示符下輸入: clear A=1 2 3;4 5 6 flipud(A)ans=3 6 2 5 1 42.4.2 矩陣的逆與偽逆1矩陣的逆通過(guò)調(diào)用函數(shù)inv(A)可以求矩陣A的逆?!纠?.27】用求逆矩陣的方法解線性方程組解 在MATLAB命令提示符下輸入: clear A=1,2,3;1,4,9;1,8,27;b=5,2,6; % A*X=B x=inv(A)*bx=23.0000 -14.5000 3.66

37、672矩陣的偽逆?zhèn)文婢仃囉址Q為廣義逆矩陣。當(dāng)矩陣A的行數(shù)m與列數(shù)n不等或det|A| = 0時(shí),則不存在逆矩陣。但存在廣義逆矩陣P,它滿足APA=A,PAP=P。在MATLAB中,調(diào)用函數(shù)pinv(A)可以求一個(gè)矩陣的偽逆矩陣?!纠?.28】求A的偽逆,并將結(jié)果存儲(chǔ)到B中。解 在MATLAB命令提示符下輸入: clearA=3,1,1,1;1,3,1,1;1,1,3,1;B=pinv(A)B= 0.3929 -0.1071 -0.1071 -0.1071 0.3929 -0.1071 -0.1071 -0.1071 0.3929 0.0357 0.0357 0.03572.4.3 方陣的行列式

38、求方陣A所對(duì)應(yīng)的行列式的值的函數(shù)是det(A)?!纠?.30】求方陣A的行列式的值。解 在MATLAB命令提示符下輸入: clear A=ones(4)A=1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 det(A)ans=0 A=magic(4)A=16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 det(A)ans=0 A=3 2 -4 6 ;8 7 6 5 ;4 9 7 -6;-3 4 6 8A=3 2 -4 6 8 7 6 5 4 9 7 -6 -3 4 6 8 det(A)ans=-56062.5 矩 陣 分 解矩陣的分解主要包括矩陣的三角

39、分解、矩陣的正交分解、矩陣的根分解。MATLAB為矩陣的分解提供了簡(jiǎn)單好用的命令函數(shù),可以快速實(shí)現(xiàn)矩陣的分解,大大提高運(yùn)算速度。2.5.1 矩陣的三角分解三角分解又稱LU分解、Gauss消去分解,可以將任何方陣表示為一個(gè)下三角陣L和一個(gè)上三角陣U的乘積,即A=LU。LU分解的命令為L(zhǎng),U=lu(A)。具體為:L,U=lu(A)。即將方陣A分解為交換下三角矩陣L和上三角矩陣U,使A=LU。L,U,P=lu(A)。即將方陣A分解為變換形式下的三角矩陣L和上三角矩陣U,使PA=LU。例如:A*X=b變成L*U*X=b,所以X=U(Lb),這樣可以大大提高運(yùn)算速度。【例2.32】LU分解3階幻方矩陣。

40、解 在MATLAB命令提示符下輸入: clear A=magic(3); L,U=lu(A); L=1.0000 0 0 0.3750 0.5441 1.0000 0.5000 1.0000 0 U=8.0000 1.0000 6.0000 0 8.5000 1.0000 0 0 5.2942.5.2 矩陣的正交分解正交分解,即QR分解,就是將矩陣分解為一個(gè)正交陣或者酉矩陣和一個(gè)上三角陣的乘積。其中R為上三角陣,Q為酉矩陣。E為置換矩陣,使得A*E=Q*R。對(duì)矩陣A進(jìn)行QR分解的函數(shù)是Q,R=qr(A),根據(jù)方陣A,求一個(gè)正交矩陣Q和一個(gè)上三角矩陣R,使A=Q*R。命令為:Q,R=qr(A)Q

41、,R,E=qr(A)Q,R=qr(A,0)Q,R,E=qr(A,0)2.5.3 矩陣的平方根分解應(yīng)用MATLAB函數(shù)C=chol(A)可以實(shí)現(xiàn)矩陣A的平方根分解。如果矩陣A是正定矩陣,那么存在唯一的對(duì)角線元素為正數(shù)的下三角矩陣L,讓A=LL。平方根分解的目的就是找出這個(gè)矩陣L?!纠?.35】用平方根分解法分解矩陣A和a。解 在MATLAB命令提示符下輸入: a=6 3 1; 6 4 2;2 2 2a=6 3 1 6 4 2 2 2 2 c=chol(a)c=2.4495 1.2247 0.4082 0 1.5811 0.9487 0 0 0.9661 c*cans=6.0000 3.0000

42、1.0000 3.0000 4.0000 2.0000 1.0000 2.0000 2.0000 A=1 1 1;1 2 3; 1 3 6A=1 1 1 1 2 3 1 3 6 c=chol(A)c=1 1 1 0 1 2 0 0 1 c*cans=1 1 1 1 2 3 1 3 62.6 稀 疏 矩 陣稀疏矩陣指的是矩陣中只包含個(gè)別非零元素,非零元素僅占總元素的1%甚至更少。對(duì)于那些非零元素很少的大矩陣來(lái)說(shuō),按照行列進(jìn)行存儲(chǔ),會(huì)造成計(jì)算機(jī)資源的很大浪費(fèi)。因此MATLAB對(duì)稀疏矩陣采取了特殊的處理,但運(yùn)算規(guī)則和滿陣一樣。2.6.1 稀疏矩陣的創(chuàng)建1調(diào)用函數(shù)創(chuàng)建稀疏矩陣sparse()調(diào)用函數(shù)s

43、parse()可以創(chuàng)建稀疏矩陣。調(diào)用格式:S=sparse(A)將矩陣A轉(zhuǎn)化為稀疏矩陣形式,即由A的非零元素和下標(biāo)構(gòu)成稀疏矩陣S,若A本身為稀疏矩陣,則返回A本身;S=sparse(m,n)生成一個(gè)mn的所有元素都是0的稀疏矩陣。 2將滿矩陣轉(zhuǎn)化為稀疏矩陣full()將滿矩陣轉(zhuǎn)化為稀疏矩陣的函數(shù)為full()。調(diào)用格式為:A=full(S)其中,S為稀疏矩陣,A為滿矩陣。2.6.2 查看稀疏矩陣1使用find()函數(shù)查看稀疏矩陣find()函數(shù)可以用來(lái)查看所有矩陣,調(diào)用格式為:i,j,s=find(A)其中,i、j、s為返回值,i為非零元素的行下標(biāo)向量,j為非零元素的列下標(biāo)向量,s為非零元素值

44、向量。2查看稀疏矩陣非零元素的分布圖形調(diào)用函數(shù)spy()可以查看稀疏矩陣中非零元素的分布圖形。調(diào)用格式為:spy(S)畫(huà)出稀疏矩陣S中非零元素的分布圖形。S也可以是滿矩陣。spy(S,markersize)markersize為整數(shù),指定點(diǎn)陣大小。spy(S,LineSpec)LineSpec指定繪圖標(biāo)記和顏色。spy(S,LineSpec,markersize)參數(shù)含義與上面相同。2.6.3 稀疏矩陣的運(yùn)算1稀疏矩陣的基本運(yùn)算計(jì)算稀疏矩陣中非零元素的個(gè)數(shù):計(jì)算稀疏矩陣中非零元素個(gè)數(shù)的函數(shù)為nnz()。調(diào)用格式為:n=nnz(X)返回矩陣X中非零元素的個(gè)數(shù)。2稀疏矩陣的排序(1)列最小度排序:

45、對(duì)矩陣排序常用的方法是列最小度排序法。列最小度排序函數(shù)為:B=colmmd(A)返回一個(gè)稀疏矩陣S的列最小度排序向量B。按B排列后的矩陣為S(: , B)。(2)稀疏矩陣逆Cuthill-McKee排序:稀疏矩陣逆Cuthill-McKee排序函數(shù)為symrcm()。調(diào)用格式為:r=symrcm(S)返回S的對(duì)稱逆Cuthill-McKee排序r,使S的非0元素集中在主對(duì)角線附近。3稀疏矩陣的置換對(duì)稀疏矩陣置換分為行置換和列置換。假定B是一個(gè)置換矩陣,對(duì)稀疏矩陣A的行置換表示為BA,對(duì)稀疏矩陣A的列置換表示為AB。4稀疏矩陣的排列稀疏矩陣對(duì)稱最小度排列:稀疏矩陣對(duì)稱最小度排列函數(shù)為symamd

46、()。調(diào)用格式為:p=symamd(S)返回S的對(duì)稱最小度排列向量p,S為對(duì)稱正定矩陣。2.7 矩陣的初等變換在線性代數(shù)中,常把矩陣通過(guò)行變換化為行最簡(jiǎn)形,即非零行向量的第一個(gè)元素為1,且包含這些元素的列的其他元素都為0。利用矩陣的行最簡(jiǎn)形,可以求出矩陣的秩、矩陣的逆、向量的最大無(wú)關(guān)組,在MATLAB中調(diào)用函數(shù)rref()就可以把矩陣化為行最簡(jiǎn)形,其格式為:R=rref(A) 給出矩陣的行最簡(jiǎn)形。R, jb=rref(A) jb是一個(gè)向量,r=length(jb) 是矩陣A的秩,A(:,jb)為矩陣的列向量基,jb表示列向量基的所在列數(shù)。2.8 MATLAB的數(shù)組運(yùn)算 矩陣與數(shù)組都是指含有M行

47、N列數(shù)字的矩形結(jié)構(gòu)。它們的外觀相同,但是代表不同的變量。數(shù)組有行與列的概念,數(shù)組運(yùn)算是兩矩陣對(duì)應(yīng)元素進(jìn)行相關(guān)運(yùn)算,要求兩矩陣的維數(shù)相同。而矩陣運(yùn)算則采用線性代數(shù)的運(yùn)算方式。2.8.1 創(chuàng)建數(shù)組創(chuàng)建數(shù)組與創(chuàng)建矩陣的方法相同?!纠?.49】創(chuàng)建一個(gè)數(shù)組A。解 在MATLAB命令提示符下輸入: clear A=1:6A=1 2 3 4 5 62.8.2 數(shù)組的算術(shù)運(yùn)算1數(shù)組的加減運(yùn)算【例2.50】求數(shù)組A+B,A-B。解 在MATLAB命令提示符下輸入: clear A=1:6A=1 2 3 4 5 6 B=7:12B=7 8 9 10 11 12 A+Bans=8 10 12 14 16 18 A

48、-Bans=-6 -6 -6 -6 -6 -62數(shù)組的標(biāo)量運(yùn)算【例2.51】求數(shù)組A4。解 在MATLAB命令提示符下輸入: clear A=1:6A=1 2 3 4 5 6 A*4ans=4 8 12 16 20 243數(shù)組的乘法運(yùn)算【例2.52】求數(shù)組AB。解 在MATLAB命令提示符下輸入: clear A=1:6A=1 2 3 4 5 6 B=7:12B=7 8 9 10 11 12 A.*Bans=7 16 27 40 55 72 B.*Aans=7 16 27 40 55 724數(shù)組的除法運(yùn)算【例2.53】求數(shù)組A/B、B/A。解 在MATLAB命令提示符下輸入: clear A=

49、1:6A=1 2 3 4 5 6 B=7:12B=7 8 9 10 11 12 A./Bans=0.1429 0.2500 0.3333 0.4000 0.4545 0.5000 B./Aans=7.0000 4.0000 3.0000 2.5000 2.2000 2.0000 A.Bans=7.0000 4.0000 3.0000 2.5000 2.2000 2.0000 B.Aans=0.1429 0.2500 0.3333 0.4000 0.4545 0.50005數(shù)組的乘方運(yùn)算 【例2.54】求數(shù)組的乘方運(yùn)算。解 在MATLAB命令提示符下輸入: clear A=1:6A=1 2 3

50、4 5 6 B=0:5B=0 1 2 3 4 5 A.*2ans=2 4 6 8 10 12 A.2ans=1 4 9 16 25 36 A.Bans = Columns 1 through 5 1 2 9 64 625 Column 6 7776 A.*Bans=0 2 6 12 20 30小 結(jié)本章重點(diǎn)為矩陣的建立,其中包括利用相關(guān)函數(shù)命令建立矩陣和直接建立矩陣兩種方法矩陣的算術(shù)運(yùn)算,包括:(加)、(減)、*(乘)、/(右除)、(左除)及(乘方)運(yùn)算矩陣的線性運(yùn)算,包括矩陣的特征值與特征向量的求法、正交基、二次型、秩和線性相關(guān)性等運(yùn)算矩陣分析包括矩陣的結(jié)構(gòu)變換、矩陣的逆與偽逆、方陣的行列式

51、矩陣分解包括矩陣的三角分解、正交分解、平方根分解;稀疏矩陣的相關(guān)運(yùn)算以及MATLAB數(shù)組的相關(guān)運(yùn)算第3章 MATLAB數(shù)值計(jì)算學(xué)習(xí)目標(biāo)了解傅里葉變換、數(shù)據(jù)的數(shù)值運(yùn)算;理解曲線的擬合與插值;掌握線性方程和線性方程組的數(shù)值求解、多項(xiàng)式的數(shù)值運(yùn)算、數(shù)值的微分與積分及其微分方程的求解。第3章MATLAB數(shù)值計(jì)算3.1 線性方程與線性方程組的數(shù)值求解MATLAB可以很迅速地求出線性方程和線性方程組的數(shù)值解求解方法大致分為兩大類(lèi)直接法疊代法3.1.1 線性方程數(shù)值求解線性方程的求根運(yùn)算可以直接通過(guò)調(diào)用求根函數(shù)roots()來(lái)求解?!纠?.1】求解的根。解 在MATLAB命令提示符下輸入: clear p=

52、1 -1 -6; roots(p)ans=3 -23.1.2 線性方程組數(shù)值求解1直接法求解方程AX=B,只需輸入A、B,然后做矩陣左除X=AB,即可輸出X為方程組的解?!纠?.2】用直接法線性方程組ax=b的解。解 在MATLAB命令提示符下輸入: clear a=1 1 1 1;1 2 1 1;1 1 1 3;1 1 4 1a=1 1 1 1 1 2 1 1 1 1 1 3 1 1 4 1 b=1 1 1 1b=1 1 1 1 x=abx=1 0 0 02利用矩陣三角分解LU、正交分解QR和特征值分解求線性方程組的解矩陣的三角分解LU分解、正交分解QR分解和特征值分解已經(jīng)在第2章講過(guò),在此

53、不再細(xì)講。例如經(jīng)過(guò)LU分解,方程組AX=B的系數(shù)矩陣A可以化為A=LU,則方程組的解為:X= U-1(L-1B) 【例3.3】用矩陣的三角分解求線性方程組ax=b的數(shù)值解。解 在MATLAB命令提示符下輸入: clear a=4 5 8 7;8 2 1 3;9 1 0 2;6 5 7 3a=4 5 8 7 8 2 1 3 9 1 0 2 6 5 7 3 l,u=lu(a)l=0.4444 1.0000 0 0 0.8889 0.2439 1.0000 0 1.0000 0 0 0 0.6667 0.9512 0.6410 1.0000u=9.0000 1.0000 0 2.0000 0 4.5

54、556 8.0000 6.1111 0 0 -0.9512 -0.2683 0 0 0 -3.9744 b= 7 6 2 1b=7 6 2 1 x=inv(u)*(inv(l)*b)x=-0.7419 4.7032 -3.4323 1.9871 x=abx=-0.7419 4.7032 -3.4323 1.9871由上例可以看出inv(u)*(inv(l)*b) 和ab計(jì)算的結(jié)果是一樣的。3.2 非線性方程與非線性方程組的數(shù)值求解 與線性方程和線性方程組的求解相比,非線性方程與非線性方程組的求解情況要復(fù)雜很多。通過(guò)調(diào)用函數(shù)solve()和fsolve()可以分別實(shí)現(xiàn)非線性方程與非線性方程組的數(shù)

55、值求解。3.2.1 非線性方程數(shù)值求解通過(guò)調(diào)用函數(shù)solve()可以對(duì)非線性方程進(jìn)行數(shù)值求解。【例3.4】求解方程。解 在MATLAB命令提示符下輸入: clear solve(x-sin(x)-cos(x)=0)ans=1.25872817749267645863913916596523.2.2 非線性方程組數(shù)值求解非線性方程組數(shù)值求解函數(shù)為fsolve()。調(diào)用格式為:X=fsolve(fun,x0)即求函數(shù)fun()在x0處(或x0附近)的解?!纠?.5】求圓 和直線 的兩個(gè)交點(diǎn)。建立方程組函數(shù)文件fxyz2.m:function F=F(X)x=X(1);y=X(2);z=X(3);F

56、(1)=x2+y2+z2-12;F(2)=6*x+2*y+z;F(3)=2*x-5*y-z-3;解 在MATLAB命令提示符下輸入: clear X1=fsolve(fxyz2,2,1,-1) X2=fsolve(fxyz2,1,2,1) X1=0.4782 0.2753 -3.4199X2=-0.1072 -1.2858 3.21483.3 多項(xiàng)式數(shù)值計(jì)算多項(xiàng)式是一種基本數(shù)值分析工具,很多復(fù)雜的函數(shù)都可以用多項(xiàng)式逼近 3.3.1 多項(xiàng)式的建立已知一個(gè)多項(xiàng)式的全部根X,求多項(xiàng)式系數(shù)的函數(shù)是poly(X)。該函數(shù)返回以X為全部根的一個(gè)多項(xiàng)式P,當(dāng)X是一個(gè)長(zhǎng)度為m的向量時(shí),則P是一個(gè)長(zhǎng)度為m+1的

57、向量。在MATLAB中,多項(xiàng)式由一個(gè)行向量表示,它的系數(shù)按降序排列。3.3.1 多項(xiàng)式的建立多項(xiàng)式用以下的方法定義:可以表示成系數(shù)向量 。除了用系數(shù)向量的方法表示外,還可以通過(guò)poly()函數(shù)創(chuàng)建多項(xiàng)式。命令格式為:poly(A)當(dāng)A是矩陣時(shí),創(chuàng)建矩陣A的特征多項(xiàng)式;當(dāng)A為向量時(shí),創(chuàng)建以向量中元素為根的多項(xiàng)式的系數(shù)向量,即設(shè) ,則生成的多項(xiàng)式的系數(shù)向量為 的展開(kāi)式對(duì)應(yīng)項(xiàng)的系數(shù)。3.3.2 多項(xiàng)式求根求A多項(xiàng)式p(x)的根的函數(shù)是roots(P),這里,P是p(x)的系數(shù)向量,該函數(shù)返回方程p(x)=0的全部根(含重根,復(fù)根)?!纠?.6】求多項(xiàng)式p的根。解 在MATLAB命令提示符下輸入: c

58、lear p=poly(1 2 3 4)p=1 -10 35 -50 24 roots(p)ans=4.0000 3.0000 2.0000 1.00003.3.3 多項(xiàng)式求值求多項(xiàng)式p(x)在某點(diǎn)或某些點(diǎn)的函數(shù)值的函數(shù)是polyval()和polyvalm()。若x為一數(shù)值,則求多項(xiàng)式在該點(diǎn)的值。若x為向量或矩陣,則對(duì)向量或矩陣中的每個(gè)元素求其多項(xiàng)式的值。當(dāng)a為標(biāo)量時(shí),函數(shù)的命令格式如下:polyval(p,a)用該函數(shù)求多項(xiàng)式p在x=a的值;當(dāng)a為向量時(shí),求x分別等于a(i)時(shí)多項(xiàng)式的值。polyvalm(p,m)其中,m為方陣。 【例3.7】使用多項(xiàng)式求值,結(jié)合plot()函數(shù)繪制多項(xiàng)式

59、函數(shù)的曲線。解 在MATLAB命令提示符下輸入: clear p=1 3 6p=1 3 6 x=-5:5x=-5 -4 -3 -2 -1 0 1 2 3 4 5 y=polyval(p,x)y=16 10 6 4 4 6 10 16 24 34 46 plot(x,y)運(yùn)行結(jié)果如下圖所示。3.3.4 多項(xiàng)式的四則運(yùn)算1多項(xiàng)式的加減法對(duì)于多項(xiàng)式加減法,沒(méi)有直接的函數(shù),直接用+、-符號(hào)就行了。需要注意的是,兩個(gè)多項(xiàng)式向量大小必須相同。 2多項(xiàng)式的乘法conv()多項(xiàng)式的乘法函數(shù)為conv()。調(diào)用格式為:conv(f1,f2)表示求多項(xiàng)式f1和f2的乘積。3多項(xiàng)式的除法多項(xiàng)式的除法函數(shù)為decon

60、v()。調(diào)用格式為:q,r=deconv(f1,f2)用于對(duì)多項(xiàng)式f1和f2進(jìn)行除法運(yùn)算。其中q返回多項(xiàng)式P1除以P1的商式,r返回P1除以P2的余式。 3.3.5 多項(xiàng)式的導(dǎo)函數(shù)對(duì)多項(xiàng)式求導(dǎo)數(shù)的函數(shù)是polyder()。調(diào)用格式為:dp=polyder(P)它的功能是求多項(xiàng)式P的導(dǎo)函數(shù)。dp=polyder(P,Q)用于求P*Q的導(dǎo)函數(shù)。p,q=polyder(P,Q)是求P/Q的導(dǎo)函數(shù),導(dǎo)函數(shù)的分子存入p,分母存入q。【例3.11】求有理分式g(x)=4x2+7的導(dǎo)函數(shù)。解 在MATLAB命令提示符下輸入: clear f=4 0 7; df=polyder(f)df=8 03.4 數(shù)據(jù)的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論