




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章 matlab軟件應(yīng)用§1.1 MATLAB簡介當(dāng)你要計算時,你可能有兩種選擇,第一用計算器,第二找張草稿紙手算;當(dāng)你要計算矩陣與向量 相乘時,你現(xiàn)在可能會以為沒有別的辦法了,只能手算了;而當(dāng)你要計算sin(t+)dt時,你可能會告訴我說:“這個問題只有編程才能解決”?,F(xiàn)在揭曉謎底,MATLAB可以求解上面提出的3個計算式,而做到這一點并不需要草稿紙,也不需要編程。那么MATLAB是一種什么東西呢?MATLAB實際上是一種面向未來的科學(xué)計算語言,是MATrix LABratory的簡稱,即矩陣實驗室。這種語言最初的發(fā)明原意是要專門求解矩陣計算問題,后來隨著推向市場,MATLAB
2、不僅保持了強(qiáng)大數(shù)值計算功能,而且隨著版本升級,逐漸具有了數(shù)據(jù)圖形功能,符號計算功能。§1.1.1 MATLAB的發(fā)展簡史LINPACK和EISPACK是美國科學(xué)界在六,七十年代發(fā)展起來的FORTRAN程序庫,LINPACK用于解線性方程,EISPACK用于求解特征值問題。七十年代中期Cleve Moler和他的同事在美國國家科學(xué)基金資助下研究開發(fā)了調(diào)用LINPACK和EISPACK的FORTRAN子程序庫。這兩個程序庫代表著矩陣計算軟件的最高水平。七十年代后期Cleve Moler成為新墨西哥大學(xué)計算機(jī)科學(xué)系主任,他為他的學(xué)生開設(shè)線性代數(shù)課程時,想讓學(xué)生能夠充分利用LINPACK和E
3、ISPACK的程序庫,但是面臨著學(xué)生必須花時間學(xué)習(xí)FORTRAN編程,而這不是他的教學(xué)目的的兩難困境。為了解決這一難題,他動手用業(yè)余時間為學(xué)生們編寫出使用方便,不需要FORTRAN背景的LINPACK,EISPACK接口程序。Cleve Moler把這一接口程序命名為MATLAB,意思就是“矩陣實驗室”。這一接口程序被學(xué)生應(yīng)用后獲得歡迎,取得了意料之中的成功。Cleve Moler隨后幾年把這一程序傳播到其他大學(xué),大家都逐漸認(rèn)識到它的價值,并成為應(yīng)用數(shù)學(xué)界的術(shù)語。1983年早春,身為工程師的John Little在Cleve Moler對斯坦福大學(xué)訪問時接觸到MATLAB,他眼光獨到地認(rèn)識到M
4、ATLAB在工程領(lǐng)域有極大的潛在應(yīng)用天地。因此在這一年,他與Moler、Steve Bangert一起合作開發(fā)出第二代專業(yè)版MATLAB,這一版不再使用FORTRAN語言作為編程核心,而是全部在C語言下重建。這一代不僅保持了MATLAB以前具有的全部數(shù)值計算能力,而且增加了數(shù)據(jù)圖形功能。1984年以MATLAB為依托成立了Mathworks公司,大力把此產(chǎn)品推向市場,并不斷推進(jìn)MATLAB的研究與開發(fā)。1993年,MATLAB有了第一個Windows版本MATLAB3.5K,同年,又接連推出了在Windows3.X架構(gòu)下的MATLAB4.0版和4.1版本,這兩個版本與以前版本相比增加了多種廣受
5、歡迎的工具箱,在4.1版本中首次引入了符號計算工具箱。1997年MATLAB5.0版問世,這一版本以windows95為平臺,實現(xiàn)了真正的32位運算。在隨后的幾年里隨著個人計算機(jī)操作系統(tǒng)的升級換代,MATLAB也相應(yīng)的進(jìn)行了一系列的版本升級。在總結(jié)MATLAB計算語言發(fā)展歷程時,最成功的一點是MATLAB把自身建成了一個解釋系統(tǒng),對其中的函數(shù)程序執(zhí)行采用一種解釋執(zhí)行方式,這樣MATLAB就成為一個完全開放的系統(tǒng),用戶可以方便地看到其函數(shù)的源程序,也可以利用它開發(fā)自己的程序,甚至可以針對自己的需要創(chuàng)建自己的“庫”,這一點就使MATLAB可以聚集全球眾多MATLAB應(yīng)用人員的智慧,不斷增加MATL
6、AB工具箱涉及的應(yīng)用領(lǐng)域,也就可以不斷增強(qiáng)自身的競爭力,從而使自身成為數(shù)值型軟件市場的霸主。§1.1.2 MATLAB語言的主要特點1 功能強(qiáng)大 MATLAB語言具有極強(qiáng)的數(shù)值計算功能和數(shù)據(jù)可視化功能,同時還擁有很強(qiáng)的符號計算功能,可以很方便地解決線性代數(shù)和數(shù)據(jù)分析處理方面所遇到的多種難題,MATLAB語言所提供的動畫功能和用戶交互界面對多媒體套件的開發(fā)也有不小的好處。2.Windows界面簡單易用 當(dāng)前計算機(jī)中使用的軟件普遍都采用微軟公司建立的Windows操作界面行業(yè)標(biāo)準(zhǔn),MATLAB也不例外,統(tǒng)一的Windows操作界面,使新接觸到MATLAB的人也不會有很大的應(yīng)用困難,可以做
7、到快速入門。MATLAB自身使用的數(shù)學(xué)符號和表達(dá)式等,與人們慣常的思維定式相符合,很易掌握。MATLAB還提供強(qiáng)大的用戶幫助系統(tǒng),用戶在遇到難題時可以利用它來解決。3編程簡單,擴(kuò)展方便 MATLAB所提供的功能以函數(shù)形式完成,完全不必接觸算法和內(nèi)核,編程語法自然、簡單,程序設(shè)計簡易、方便。程序代碼開放,用戶可以隨意擴(kuò)展。4專用工具箱眾多 MATLAB經(jīng)過多年發(fā)展形成了一系列各具特色的專用工具箱,涉及到科學(xué)研究和工程應(yīng)用的諸多領(lǐng)域,有進(jìn)行自動控制研究的,有進(jìn)行仿真實驗的,有進(jìn)行信號處理的,有進(jìn)行振動分析的,有進(jìn)行工程規(guī)劃的,還有的是進(jìn)行金融管理的,眾多的專用工具箱把科學(xué)工作者從繁復(fù)的編程工作中解
8、放出來,可以全身心地研究本領(lǐng)域的未解之謎。§1.1.3 MATLAB的安裝及操作界面簡介MATLAB的安裝方式與一般的商業(yè)軟件相似,把光盤放入光驅(qū),系統(tǒng)會自動運行安裝程序,進(jìn)入安裝界面,按照安裝向?qū)б徊揭徊降倪M(jìn)行,完成軟件認(rèn)證,選擇安裝方式和安裝路徑,選擇所需安裝的工具箱,經(jīng)過安裝等待,最終完成安裝過程。MATLAB安裝程序在Windows桌面上創(chuàng)建運行程序的快捷方式,在開始菜單中創(chuàng)建了程序組。啟動MATLAB主程序的方法有兩種,第一種方法是用鼠標(biāo)點擊Windows桌面上創(chuàng)建的MATLAB圖標(biāo)表示的快捷方式,第二種方法是從開始菜單開始,找到程序組,再找到MATLAB程序組,最后點擊M
9、ATLAB圖標(biāo),從而進(jìn)入MATLAB操作界面。圖1-1 MATLAB操作界面圖1-1就是MATLAB主程序啟動后在計算機(jī)顯示器上出現(xiàn)的操作界面。MATLAB操作界面在默認(rèn)設(shè)置下由四部分組成,從上到下分別是菜單欄,工具欄,工作窗口和狀態(tài)顯示欄。工作窗口又由五個不同的窗口組成,默認(rèn)設(shè)置狀態(tài)下在工作窗口左側(cè)顯示出上下兩個窗口,右側(cè)有一個窗口。下面分別介紹各部分功能。1.菜單欄菜單欄由六個下拉式菜單組成。第一個是文件菜單,可以實現(xiàn)新建、打開工作文件的功能,還有首選項和打印方面的設(shè)置選項,并設(shè)置了退出主程序的方法。這里重點介紹“set path”展開式菜單。當(dāng)我們安裝MATLAB完畢后,由于MATLAB
10、是一種解釋執(zhí)行的函數(shù)式語言,有大量的工具箱,因此安裝程序自動設(shè)置了程序執(zhí)行時所需要進(jìn)行搜索的路徑,以其盡快尋找到程序中使用的函數(shù)文件。我們在使用MATLAB的過程中,有可能需要創(chuàng)建自己的函數(shù)庫和工具箱,但這些程序可能不會存入安裝程序預(yù)先指定的搜索路徑,這時我們就要使用“set path”這一展開式菜單,選擇添加路徑命令尋找到你存儲文件所在目錄,選擇并確定,你所需目錄就被指定為搜索路徑,可以方便使用了。正是基于上述原因,本書建議大家在使用MATLAB前,在硬盤上建立自己的工作目錄,并將其設(shè)置在搜索路徑中,以利于今后程序的調(diào)用和執(zhí)行。第二個下拉式菜單是編輯菜單,可以實現(xiàn)剪切、復(fù)制、粘貼、選擇和刪除
11、等文本操作所必須的功能,還提供清空指令窗口和內(nèi)存變量的命令。第三個下拉式菜單是顯示菜單,可以改變操作界面的布置形式,可以改變工作目錄中可顯示出的文件類型,可以指定內(nèi)存變量顯示內(nèi)容。第四個下拉式菜單是網(wǎng)絡(luò)菜單,給出了MATLAB出品廠商的網(wǎng)址,給出了產(chǎn)品介紹等。第五個菜單是窗口菜單,可以對當(dāng)前打開的各種窗口發(fā)出顯示和關(guān)閉的命令。第六個菜單是幫助菜單,這是一個對初學(xué)者有很大幫助的菜單,其中提供了完整的產(chǎn)品系列幫助,MATLAB自身的使用幫助,還為使用者提供了一個演示程序,可以使初學(xué)者在很短的時間內(nèi)了解MATLAB所具有的強(qiáng)大功能。2.工具欄在工具欄中,MATLAB提供了9個常用的工具按鈕和1個縮減
12、的工作目錄窗口,用來執(zhí)行最常使用的功能。9個工具按鈕又分為四類:第一類對應(yīng)于文件菜單,提供了創(chuàng)建和打開文件兩個按鈕;第二類對應(yīng)與編輯菜單,提供了剪切、復(fù)制、粘貼,撤消和重做五個按鈕;第三類是用于啟動Simulink動態(tài)仿真集成環(huán)境一個按鈕;第四類對應(yīng)于幫助菜單,提供了用于啟動幫助文檔的一個按鈕。3.工作窗口在默認(rèn)狀態(tài)下右側(cè)窗口是指令窗口,顯示人機(jī)交互指令和命令執(zhí)行結(jié)果,左側(cè)兩個窗口,上面一個顯示工作目錄,下面一個顯示指令窗口中發(fā)出的各種指令。通過切換窗口夾,上面窗口可以轉(zhuǎn)為內(nèi)存空間瀏覽窗口,下面窗口可以轉(zhuǎn)為當(dāng)前工作目錄窗口。4.狀態(tài)顯示欄在操作界面最下面,有一個狀態(tài)顯示欄,當(dāng)我們把鼠標(biāo)放在某個
13、窗口夾上時,這個顯示欄就會告訴你執(zhí)行結(jié)果。要退出MATLAB,方法有三種:點擊操作界面右上角的號,用文件菜單下的退出命令,或者可以直接在指令窗口中鍵入quit后回車。操作界面是MATLAB提供給用戶的工作空間,MATLAB所有功能都是通過這一空間來完成,所以初學(xué)者應(yīng)該熟悉操作界面內(nèi)的各組成單位的操作。§1.1.4幫助指南MATLAB提供了強(qiáng)大的幫助功能,可以進(jìn)行在線查詢,這一功能不僅可以使新接觸到MATLAB的人盡快熟悉此軟件,而且對老用戶開發(fā)某一方面的使用也有很多的益處。用戶在學(xué)習(xí)MATLAB的過程中,應(yīng)重視查詢系統(tǒng)和其他幫助功能,力爭做到理解,掌握和熟悉應(yīng)用。打開MATLAB查詢
14、系統(tǒng)的方法有兩種:l 可以利用工具欄中“幫助”按鈕。l 可以利用“幫助”下拉式菜單中的選項。MATLAB還提供了在指令窗口中直接輸入命令進(jìn)行查詢的方法。由于打開查詢系統(tǒng)方式較易掌握,這里就不贅述了。下面介紹幾個可以在指令窗口中使用的幫助命令的用法。1.help命令help命令可以單獨使用,輸入help回車,你可以得到下面內(nèi)容。HELP topics:matlabgeneral - General purpose commands.matlabops - Operators and special characters.vrvrdemos - Virtual Reality Toolbox ex
15、amples.MATLAB6p5work - (No table of contents file)For more help on directory/topic, type "help topic".For command syntax information, type "help syntax".它為你提供了整個在線幫助架構(gòu)。但如果你想具體了解某一函數(shù)類或某一函數(shù)的功能時,單獨使用help命令就不夠了,可以采用下面形式:help+函數(shù)類名例如help elfun(下面顯示基本函數(shù)類的組成及功能)Elementary math functions.
16、 Trigonometric. sin - Sine. sinh - Hyperbolic sine. Exponential. exp - Exponential. log - Natural logarithm. . Complex. abs - Absolute value. angle - Phase angle. Rounding and remainder. fix - Round towards zero. floor - Round towards minus infinity. help+函數(shù)名例如help besselj(下面顯示第一類貝塞爾函數(shù)的功能和使用方法) BESS
17、ELJ Bessel function of the first kind. J = BESSELJ(NU,Z) is the Bessel function of the first kind, J_nu(Z). See also BESSELY, BESSELI, BESSELK, BESSELH.Overloaded methods help sym/besselj.m2.lookfor 命令當(dāng)我們知道某函數(shù)的函數(shù)名而不知道其用法時,help命令可以幫助你準(zhǔn)確了解此函數(shù)的用法,但如果我們不知道函數(shù)的確切名字,想找到與之有關(guān)的信息時,help命令就無能為力了。這時,可以使用lookfor命
18、令來根據(jù)用戶提供的關(guān)鍵字搜索與之相關(guān)的函數(shù)。例如 lookfor diff(下面顯示與關(guān)鍵字“diff”有關(guān)的函數(shù))SETDIFF Set difference.DIFF Difference and approximate derivative.POLYDER Differentiate polynomial.DDE23 Solve delay differential equations (DDEs) with constant delays.從上面的例子,可以看出lookfor命令相當(dāng)于一般軟件中模糊查詢功能。3.其他幫助命令MATLAB還為用戶提供了其他一些幫助命令,包括l exist
19、 查詢用戶指定的變量或函數(shù)文件存在與否。l what 列出目錄中的文件名l who 列出工作內(nèi)存的變量名。l whos 列出工作內(nèi)存變量詳細(xì)信息。l which 確定指定名字的文件具體位置。為方便用戶使用MATLAB,系統(tǒng)還提供了一系列通用命令。表1-1給出了最常用的幾個通用命令。表1-1 通用命令表命令功能命令功能dir顯示目錄文件cd轉(zhuǎn)換工作目錄clc清除指令窗口內(nèi)容clf清除圖形窗口內(nèi)容clear釋放工作內(nèi)存quit退出MATLABpath顯示搜索路徑type顯示文件內(nèi)容pack收集工作內(nèi)存碎片!調(diào)用DOS命令§1.1.5從MATLAB“入門演示”開始真正認(rèn)識MATLAB圖1-
20、2 演示界面在前面的講述中我們已經(jīng)對MATLAB軟件有了初步了解,知道它是一種科學(xué)計算語言,知道了它的界面布置,知道了它的一些功能,但我們對MATLAB到底有多么強(qiáng)大的計算能力,多么方便的操作方法仍然一無所知,好在MATLAB為我們準(zhǔn)備了強(qiáng)大的“入門演示”,下面就從“入門演示”開始我們真正的MATLAB之旅。從“幫助”下拉式菜單中找到“Demos”,點擊并打開它,進(jìn)入了如圖1-2所示的演示界面。依次展開“Matrices”、“Numerics”等項目,就可以對這些項目的功能有初步了解。這里建議大家打開“basic matrix operation”的演示程序,來了解基本矩陣操作。§1
21、.2數(shù)值計算功能MATLAB數(shù)值計算功能極其強(qiáng)大,這是使其在眾多的數(shù)學(xué)軟件中脫穎而出的決定性因數(shù)。本節(jié)將為大家介紹常用的數(shù)值計算功能。§1.2.1MATLAB基本輸入輸出方法MATLAB要求表達(dá)式在使用變量以前要先對其進(jìn)行賦值操作。對變量賦值的操作程序是,先輸入變量名和等號,然后輸入變量數(shù)值并按回車鍵結(jié)束。例如要實現(xiàn)p=2.0,a=6.43的式子,必須在MATLAB的指令窗口中進(jìn)行如下信息交互:>> p=2.0 (用戶輸入)p = 2 (系統(tǒng)響應(yīng))>> a=6.43 (用戶輸入)a = 6.4300 (系統(tǒng)響應(yīng))在表達(dá)式后加分號“;”,可以省略系統(tǒng)的響應(yīng)信息,
22、加快運算速度。§1.2.2 數(shù)據(jù)、變量名、運算符與表達(dá)式下面介紹數(shù)據(jù)、變量名、運算符與表達(dá)式的基本語法規(guī)則。1. 數(shù)據(jù)格式MATLAB使用常規(guī)的十進(jìn)制表示法,可以用加號與減號表示正負(fù)數(shù),10的冪次用e后面帶上正負(fù)數(shù)字來表示。虛數(shù)單位是i和j,數(shù)字后面直接寫上i 或j系數(shù)就認(rèn)為該數(shù)為虛數(shù)。以下是一些合法的數(shù)值表示方法:24 -36 0.1234596.2345 4.06e-20 5.96e995+0.6i -5.6i 3.6e4i從上面的例子大家不難想到這些規(guī)則與C語言類似,MATLAB的數(shù)據(jù)輸入格式完全采用了C語言的風(fēng)格和規(guī)則。數(shù)據(jù)輸入后,在MATLAB的后臺,數(shù)據(jù)的存儲與運算都是以
23、雙精度進(jìn)行的,但是在MATLAB指令窗口中的顯示輸出格式卻有不同的表示形式,控制數(shù)據(jù)顯示格式的命令是format,具體格式類型和運算方法如表1-2所示。表1-2 format命令格式類型Format short五位定點小數(shù)形式Format long十五位定點小數(shù)形式Format short e五位浮點小數(shù)形式Format long e十五位浮點小數(shù)形式Format bank銀行單位形式Format rat分?jǐn)?shù)近似形式Format +顯示正負(fù)號2. 變量名在MATLAB中可以用字母(即變量名)來表示具體的數(shù)據(jù),也就是對變量進(jìn)行賦值操作。變量名必須用字母打頭,后面可以跟字母、數(shù)字、下劃線,長度不限
24、,但系統(tǒng)只對變量名的前31個符號識別。要查看一個變量的內(nèi)容,只需要鍵入其名稱回車即可。在MATLAB操作界面窗口中有一個工作內(nèi)存空間窗口,變量的名稱,維數(shù),所占空間大小及類型都列在其中了。點擊變量名稱就會打開一個矩陣編輯器窗口,變量的元以表格的形式排列其中,可以方便的查看和修改,也可以用它來輸入大型矩陣。在MATLAB中有八個常用的固定變量,它們代表特殊的常用數(shù)值或有特殊的意義,用戶可以直接調(diào)用。 表1-3 常駐變量表變量符號所代表的數(shù)值或意義pii或jInfNaNepsrealminrealmax代表圓周率3.14159265358979代表復(fù)數(shù)單位代表無窮大數(shù)1/0代表不定值(0/0或In
25、f-Inf)代表2.2204e-016代表最小浮點數(shù)2.2251e-308代表最大浮點數(shù)1.7977e+3083.運算符MATLAB使用人們所熟悉的運算符,如下面表1-4至表1-6所示。 表1-4 算術(shù)運算符算符使用實例+(加)-(減)*(乘)/(除)(冪)()(括號)26+376593-342111*22263/923413*(63-21)此表運算符適用于標(biāo)量,向量和矩陣操作。表1-5 關(guān)系運算算符算符使用實例<(小于)<=(小于等于)>(大于)>=(大于等于)=(等于)=(不等于)x<yx<=yx>yx>=yx=yx=y此表運算符同樣適用于標(biāo)
26、量,向量和矩陣的操作。有下面三點法則:(1)當(dāng)標(biāo)量進(jìn)行比較時,如果關(guān)系成立,則關(guān)系運算結(jié)果為“1”,如果關(guān)系不成立,則關(guān)系運算結(jié)果為“0”。(2)當(dāng)參與比較的是兩個具有相同維數(shù)的數(shù)組時,則對兩數(shù)組相同位置的元素按數(shù)值大小進(jìn)行比較,并按關(guān)系成立與否給出“1”或“0”,最終的運算結(jié)果是一個和比較數(shù)組維數(shù)相同的數(shù)組。(3)當(dāng)一個標(biāo)量與數(shù)組進(jìn)行比較時,則把標(biāo)量與數(shù)組每一個元素進(jìn)行數(shù)值大小比較,得到“1”或“0”的結(jié)果,最終形成與數(shù)組維數(shù)相同的數(shù)組。 表1-6 邏輯運算符算符使用實例&(與)(或)(非)A&BABA邏輯運算符對標(biāo)量與標(biāo)量,標(biāo)量與數(shù)組,數(shù)組與數(shù)組之間的運算規(guī)則采用與關(guān)系運算
27、符相類似的形式。在算術(shù)、關(guān)系和邏輯運算三種運算組合中,算術(shù)運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。4.表達(dá)式用運算符把數(shù)字、變量和函數(shù)組合在一起,就建立了一個表達(dá)式。由于MATLAB是以矩陣為基本運算目標(biāo)的,因而數(shù)學(xué)表達(dá)式可以對整個矩陣進(jìn)行運算。表達(dá)式中的運算是自左向右進(jìn)行,指數(shù)運算優(yōu)先,其次乘除,最后是加減操作,遇到括號則改變運算順序。§1.2.3向量的生成與運算MATLAB作為一門語言,它的運算指令和語法是基于一系列基本的矩陣運算以及它們的擴(kuò)展運算。因而,為了利用好MATLAB語言,首先要了解向量和矩陣的生成和運算規(guī)則。這節(jié)先介紹向量的生成與運算。向量運算是矢量運算的基礎(chǔ),向量也是組
28、成矩陣的基本元素之一,因而先了解向量的有關(guān)操作可以使大家更好地了解矩陣的操作。1.向量的生成生成向量的最直接的方法就是在指令窗口中建立。向量元素需要用“ ”括起來,MATLAB的規(guī)則是元素之間用空格、逗號分隔開表示并列的一行元素,用分號分隔開表示不同行的元素,因而向量生成時注意:用空格或逗號分隔可以生成行向量,用分號分割開生成的是列向量。如果元素之間有一定的遞增遞減規(guī)律性,那么可以利用冒號表達(dá)式生成向量,基本形式為: x=x0 : step :xnx0、step、xn分別表示向量的第一個元素數(shù)值,元素數(shù)值增量步長,向量最后一個元素數(shù)值。大家可以利用Fortran語言編程中的循環(huán)控制語句表達(dá)式對
29、照理解本文表達(dá)式。在MATLAB中還提供了線性等分功能函數(shù)linspace來生成線性等分向量,和對數(shù)等分功能函數(shù)logspace來生成對數(shù)等分向量,關(guān)于兩種函數(shù)的具體用法,大家可以使用help指令來了解。2.向量的運算向量的加減法要求參與運算的向量具有相同的維數(shù),而向量與數(shù)的加減法則要求向量的每一個元素與數(shù)字相加減。向量與數(shù)值乘法運算要求向量每一個元素和該數(shù)值相乘。例如:a=1 2 3 4 5a-1ans=0 1 2 3 4a2ans=2 4 6 8 10向量與向量的乘積運算有三種形式:點積、叉積和混合積。向量的點積由函數(shù)dot來實現(xiàn): A、B為兩向量,要求維數(shù)相同,dot是向量點積函數(shù),點積
30、運算規(guī)則遵從高等數(shù)學(xué)有關(guān)規(guī)定。向量的叉積由函數(shù)cross來實現(xiàn): A、B為兩向量,cross為向量叉積函數(shù),運算規(guī)則也服從高等數(shù)學(xué)有關(guān)規(guī)定。向量的混合積由以上兩個函數(shù)的嵌套來實現(xiàn)。例如:a=1 2 3;b=4 5 6;dot(a,b)ans = 32c=cross(a,b)c = -3 6 -3d=1 1 1;dot(a,cross(b,d)ans = 0§1.2.4矩陣的生成及運算MATLAB提供了強(qiáng)大的矩陣運算功能,本節(jié)將從矩陣的創(chuàng)建,矩陣運算及函數(shù)應(yīng)用等幾方面進(jìn)行闡述。1.矩陣的創(chuàng)建對于簡單的矩陣,創(chuàng)建的最快捷方法是從鍵盤直接輸入到指令窗口中。在直接創(chuàng)建矩陣時,也應(yīng)采取與向量建
31、立時同樣的規(guī)則,即要注意矩陣元素前后以方括號“ ”包圍,元素之間的逗號,空格與分號的區(qū)別。例如:創(chuàng)建一個三維數(shù)值矩陣 a=1 2 3;4 5 6;7 8 9a = 1 2 3 4 5 6 7 8 9對于矩陣內(nèi)部元素包含運算表達(dá)式的情況,MATLAB也認(rèn)可,并以運算結(jié)果作為矩陣元素內(nèi)容。例如:創(chuàng)建一帶有運算表達(dá)式的矩陣。a=sin(pi/4),63;log(2),sqrt(3)a = 0.7071 216.0000 0.6931 1.7321對于大規(guī)模的矩陣,在指令窗口中直接輸入費事費力,風(fēng)險高,不可控。這時可以利用MATLAB提供的文本編輯功能,新建一個M文件。這里M文件是一種可以在MATLA
32、B指令窗口下運行的文本文件,只要在指令窗口下鍵入M文件的文件名,即可以運行此文件,我們下面要利用其命令式文件的形式,它還可以有函數(shù)式文件的形式,我們在后面將看到其強(qiáng)大的功能。在文件菜單下找到新建子菜單,點擊M-文件,就打開了M文件編輯窗口,輸入想要建立的矩陣,將此文件以m為擴(kuò)展名保存,然后在指令窗口下輸入M文件名,所要建立的大型矩陣就輸入到了內(nèi)存中。例如:用M文件創(chuàng)建大矩陣,文件名為example.mexm=456 468 873 2 579 55 21 657 54 488 8 13 65 4567 88 98 21 5 456 68 4589 654 5 2在MATLAB指令窗口中輸入:e
33、xample;size(exm)ans =4 6實際上本例并不算大型矩陣,這里只是給大家一個直觀的感受,一般來說,這種方法大多應(yīng)用于對其他語言程序所得結(jié)果的利用上。2.矩陣的基本數(shù)學(xué)運算矩陣的基本數(shù)學(xué)運算包括矩陣的四則運算,矩陣與常數(shù)的運算,矩陣的逆運算,矩陣的行列式求值,矩陣的冪運算、指數(shù)運算和對數(shù)運算等。下面逐一加以介紹:(1)矩陣的四則運算 矩陣的加減法運算格式與數(shù)值及向量的運算格式相似,使用“+”和“-”運算符,但要求進(jìn)行運算的兩矩陣必須是同維的。例如:a=1 2 3;4 5 6;7 8 9 b=1 1 1;2 2 2;3 3 3 c=a+b c= 2 3 4 6 7 8 10 11
34、12矩陣的乘法使用“*”作為運算符,采用與線性代數(shù)中矩陣乘法運算相同的運算規(guī)則,對相乘矩陣維數(shù)的要求是要有相鄰公共維。例如: x=1 2 3 4;5 6 7 8y=1 1;2 2;3 3;4 4z=xyz=30 3070 70矩陣的除法包括兩種運算形式:左除()和右除(/)。一般情況下,x=ab是方程ax=b的解,而x=b/a則是方程xa=b的解。通常右除的計算速度要快一點,而左除則可以避免被除矩陣的奇異所帶來的麻煩。例如: 已知方程組 ,求解x,y,z。求解這個方程組,我們可以設(shè)a=1 2 3;4 2 6;7 4 9b=4;1;2x=abx= - 1.5000 2.0000 0.5000&g
35、t;> a=1 4 7;2 2 4;3 6 9a = 1 4 7 2 2 4 3 6 9>> b=4 1 2b = 4 1 2>> x=b/ax = -1.5000 2.0000 0.5000>>這樣方程組的解就可以得到了。(2)矩陣與常數(shù)的運算一個常數(shù)與矩陣的運算也就是常數(shù)和矩陣中各個元素之間的進(jìn)行運算。但這里注意一點,當(dāng)進(jìn)行矩陣與常數(shù)的除法運算時,常數(shù)只能做除數(shù)。(3)矩陣的逆運算對一個矩陣求逆是線性代數(shù)和數(shù)值分析中的重要內(nèi)容,MATLAB為其提供了一個強(qiáng)有力的命令:inv。例如:求解矩陣A=的逆陣。解:A=2 2 3;4 5 6;7 8 9;B=
36、inv(A)B= 1.0000 -2.0000 1.0000 -2.0000 1.0000 0 1.0000 0.6667 -0.6667(4) 矩陣的行列式求值 矩陣的行列式求值在MATLAB中是由det函數(shù)來完成的。例如:求解上例中矩陣A和矩陣B的行列式的值。AA=det(A)AA= -3BB=det(B)BB= -0.3333(5)矩陣的冪指數(shù)運算和對數(shù)運算有矩陣A,對其進(jìn)行冪運算,求A的3次冪,則運算表達(dá)式可以寫為A3,從這一點可以看出矩陣的冪運算與數(shù)字冪運算形式相同。矩陣的指數(shù)運算一般采用函數(shù)expm,和其同類的函數(shù)還有expm1,expm2和expm3。expm1,expm2和ex
37、pm3的主要區(qū)別在于算法不同,具體情況可參看幫助文件。矩陣的對數(shù)運算采用函數(shù)logm進(jìn)行。 (6)矩陣的開方運算矩陣的開方運算由函數(shù)sqrtm完成。這里強(qiáng)調(diào)一點,上述幾種函數(shù)都是針對矩陣的,是視矩陣為一個操作數(shù)整體來進(jìn)行運算的,和下面要講到的數(shù)組運算中針對矩陣中每一個元素進(jìn)行運算的方式不同。例如: A=1,2;3,4B=A2B=7 1015 22C=sqrtm(B)C= 1.5667 1.7408 2.6112 4.1779 (不等于A)D=C2D=7 1015 22 3.矩陣的基本函數(shù)運算 矩陣的基本函數(shù)運算是與線性代數(shù)和數(shù)值分析兩門課程的有關(guān)應(yīng)用有密切聯(lián)系的。例如與線性代數(shù)相對應(yīng)的,有特征
38、值運算,矩陣求秩,矩陣求跡等運算;與數(shù)值分析相對應(yīng)的,有奇異值函數(shù),條件數(shù)運算,范數(shù)運算等。(1)特征值函數(shù)一個矩陣可以利用函數(shù)eig和eigs計算出其特征值。例如:計算矩陣A=的特征值和特征向量。A=3 -1 0;-1 2 -1;0 -1 3;X,Y=eig(A)X = 0.4082 -0.7071 -0.5774 0.8165 -0.0000 0.5774 0.4082 0.7071 -0.5774Y = 1.0000 0 0 0 3.0000 0 0 0 4.0000其中X為特陣向量矩陣,Y為特征值矩陣。(2)秩函數(shù)對一個矩陣的秩的求解可以利用函數(shù)rank來計算。例如:e=1 2 3 4
39、 1 1 2 3 2 2 4 6;rank(e)ans = 2(3) 跡函數(shù)矩陣對角線上元素求和,可以利用trace函數(shù)來計算。例如:求A=的跡。 trace(A) ans= 15(4) 奇異值函數(shù)矩陣的奇異值函數(shù)有兩種svd和svds.例如:A=magic(5); (魔方陣 最小3階)S=svd(A)'S= 65.0000 22.5471 21.6874 13.4036 11.9008(5)條件數(shù)函數(shù) 在MATLAB中可以利用cond函數(shù)來計算反映矩陣“病態(tài)”程度的條件數(shù)值。(6)范數(shù)函數(shù)矩陣范數(shù)運算是對矩陣的一種度量,在MATLAB中分為1范數(shù),2范數(shù),無窮范數(shù)和F-范數(shù)。norm
40、(A,1)為求A陣的1范數(shù),norm(A)為求A陣的2范數(shù),norm(A,inf)為求A陣的無窮范數(shù),norm(A,fro)為求A陣的F-范數(shù)。4與數(shù)值分析有關(guān)的一些特殊函數(shù)MATLAB為數(shù)值分析的應(yīng)用準(zhǔn)備了除前面介紹的普通函數(shù)外的一些特殊函數(shù),應(yīng)用這些函數(shù),可以很大程度上降低數(shù)值分析方法的理解難度。(1)LU分解LU分解在數(shù)值分析的矩陣分解內(nèi)容中是一種比較重要的方法,對直接求解線性方程有重要的作用。在MATLAB中,利用lu函數(shù)可以實現(xiàn)本功能。例如:對a=1 2 3;4 5 6;7 8 9進(jìn)行LU分解。a=1 2 3;4 5 6;7 8 9;l,u=lu(a)l = 0.1429 1.000
41、0 0 0.5714 0.5000 1.0000 1.0000 0 0u = 7.0000 8.0000 9.0000 0 0.8571 1.7143 0 0 0.0000(2)QR分解將一個矩陣分解為一個正交矩陣和一個上三角矩陣的乘積時,可以應(yīng)用QR分解函數(shù)來實現(xiàn)。一般的應(yīng)用格式為:Q,R=qr(A)例如:對a=1 2 3;4 5 6;7 8 9進(jìn)行QR分解。a=1 2 3;4 5 6;7 8 9;q,r=qr(a)q = -0.1231 0.9045 0.4082 -0.4924 0.3015 -0.8165 -0.8616 -0.3015 0.4082r = -8.1240 -9.601
42、1 -11.0782 0 0.9045 1.8091 0 0 -0.0000(3)特征值問題的QZ分解QZ分解的調(diào)用格式為:AA,BB,Q,Z,V=qz(A,B)。要求A,B為方陣,產(chǎn)生上三角陣AA和BB,正交矩陣Q,Z或其列變換形式,V為特征向量陣,滿足QAZ=AA和QBZ=BB。(4)海森伯格形式的分解MATLAB通過函數(shù)hess可以把普通矩陣轉(zhuǎn)換成海森伯格矩陣。§1.2.5 數(shù)組與多項式運算矩陣運算時MATLAB是把矩陣當(dāng)成一個整體來處理,但有時我們還需要對矩陣中的每個元素進(jìn)行操作,這時就需要采用不同的運算形式才能達(dá)到此目的,這種與矩陣運算相區(qū)別的運算形式就被稱為數(shù)組運算。數(shù)組
43、的加減法運算與矩陣完全相同,但乘法與除法運算則大不相同,不論乘還是除,都要求在被操作數(shù)后加“.”號以表明是數(shù)組運算,從而保證對應(yīng)元素之間的乘除運算。乘法運算符變?yōu)椤?*”,除法運算符變?yōu)椤?”。例如: aa=1 2 3;4 5 6;7 8 9;bb=7 8 9;4 5 6;1 2 3; aabbans =-17.0000 -26.0000 -27.0000 24.0000 41.0000 42.0000 -8.0000 -16.0000 -16.0000 aa.bbans = 7.0000 4.0000 3.0000 1.0000 1.0000 1.0000 0.1429 0.2500 0.3
44、333數(shù)組與常數(shù)的加減乘法運算時與一般運算無區(qū)別,但除法運算時常數(shù)只能做除數(shù)。數(shù)組的冪運算也必須在被操作數(shù)后加“.”號,使運算符變?yōu)椤?”。例如: a=1 2 3;4 5 6;7 8 9;a.2ans = 1 4 9 16 25 36 49 64 81對矩陣每個元素進(jìn)行指數(shù)運算、對數(shù)運算和開方運算時,運算符分別變?yōu)椤癳xp”、“l(fā)og”、和“sqrt”。在MATLAB中形如的多項式,可以用如下的行向量來表示:這樣一個多項式問題就被轉(zhuǎn)化為一個向量問題。(1)多項式的直接創(chuàng)建方法正因為多項式可以用一個行向量的形式來表示和儲存,因而最簡單的多項式創(chuàng)建方法就是直接建立一個行向量,以此代表一個多項式。例
45、如: a=2 -3 4 -5; poly2sym(a) ans = 2*x3-3*x2+4*x-5poly2sym是符號工具箱中的一個函數(shù),我們應(yīng)用此函數(shù)的目的是把用向量表示的多項式轉(zhuǎn)換成為標(biāo)準(zhǔn)的符號形式。(2)利用矩陣特征值派生出多項式我們在處理多自由度振動問題時,可以利用矩陣行列式展開求其特征值,同時我們也可以得到一個與特征值相對應(yīng)的特征多項式。在MATLAB中,我們可以利用函數(shù)poly來實現(xiàn)此功能。例如:有矩陣a=1 2 3;3 4 5;5 6 7,求其特征多項式。a=1 2 3;3 4 5;5 6 7;a1=poly(a)a1 = 1.0000 -12.0000 -12.0000 0.
46、0000(3)利用已知的特征根構(gòu)造多項式如果我們已經(jīng)得到了矩陣的特征根,那么也可以由這些特征根來求與其相對應(yīng)的多項式,也是用函數(shù)poly 來實現(xiàn)。利用構(gòu)造出來的多項式可以進(jìn)行一系列的操作,可以代入變量值,來求出多項式的值,可以利用多項式求根,可以對多個多項式求乘除,也可以對多項式求微分。(1)多項式代入求值通過對多項式的變量賦值可以求得整個多項式的值,這一功能通過函數(shù)polyval和polyvalm來實現(xiàn)。例如: a=1 2 3 4; polyval(a,1)ans = 10 a1=1 1;1 1a1 = 1 1 1 1 polyvalm(a,a1) 對矩陣的操作ans = 15 11 11
47、15這里polyval是對變量賦值矩陣的每個值進(jìn)行多項式求值,而polyvalm是把變量賦值矩陣看作一個整體來進(jìn)行求值。(2)多項式求根根據(jù)用向量表示的多項式,可以直接用MATLAB提供的函數(shù)roots,求出多項式的各個根,這實際上與由特征根創(chuàng)建多項式是互逆操作。例如:求的根。a=1 -2 1 -1;roots(a)ans = 1.7549 0.1226 + 0.7449i 0.1226 - 0.7449i(3)多項式之間的乘除操作利用函數(shù)conv可以實現(xiàn)兩個多項式之間的乘法操作,利用deconv可以實現(xiàn)兩個多項式之間的除法操作。例如:a=1 2 3 4;b=1 1 1 1;ab=conv(a
48、,b)ab = 1 3 6 10 9 7 4aba=deconv(ab,b)aba = 1 2 3 4(4)多項式微分利用函數(shù)polyder可以實現(xiàn)對多項式的微分操作。例如:a=1 2 3 4;da=polyder(a)da = 3 4 3§1.2.6數(shù)學(xué)函數(shù)簡介MATLAB提供了強(qiáng)大的數(shù)學(xué)函數(shù)功能。除了必備的三角函數(shù)和反三角函數(shù)外,MATLAB還提供了大量的基本函數(shù)和特殊函數(shù),列表如下:表1-7基本函數(shù)表函數(shù)名功能函數(shù)名功能exp指數(shù)函數(shù)log自然對數(shù)函數(shù)log10以10為底對數(shù)函數(shù)log2以2為底對數(shù)函數(shù)pow2以2為底冪函數(shù)sqrt平方根函數(shù)abs模函數(shù)angle相角函數(shù)con
49、j復(fù)共軛函數(shù)imag虛部函數(shù)real實部函數(shù)round四舍五入函數(shù)mod求余函數(shù)sign符號函數(shù)表1-8特殊函數(shù)表函數(shù)名功能函數(shù)名功能airyAiry函數(shù)besselj貝塞爾函數(shù)bessely諾依曼函數(shù)besselh漢克爾函數(shù)betaBeta函數(shù)ellipj橢圓函數(shù)ellipke完全橢圓積分erf誤差函數(shù)expint冪積分函數(shù)gammaGamma函數(shù)在應(yīng)用數(shù)學(xué)函數(shù)時,如果是針對矩陣進(jìn)行操作,那么可以采用通過函數(shù)調(diào)用格式:funm(A,funname),其中A為輸入矩陣變量,funname 為調(diào)用的函數(shù)名。而在針對數(shù)組進(jìn)行操作時,就可以直接應(yīng)用數(shù)學(xué)函數(shù)名進(jìn)行計算,這是需要注意的一點。§
50、1.3符號運算功能簡介MATLAB雖然從起步就具有強(qiáng)大的數(shù)值計算功能,但最初的版本并不包含符號運算方面的應(yīng)用,但在工程實際應(yīng)用中很多情況下又需要有這方面的功能,因而MATLAB在之后的版本中加入了Maple的內(nèi)核,構(gòu)建了符號計算工具箱(Symbolic Toolbox)。只要你在安裝時選擇一并安裝此工具箱,你就可以應(yīng)用本功能了。§1.3.1符號表達(dá)式的創(chuàng)建要使用符號運算功能,就應(yīng)該首先了解如何創(chuàng)建符號表達(dá)式,因為這是符號運算中的操作數(shù),符號運算只針對符號變量,它不能處理普通數(shù)值量。符號表達(dá)式包括符號函數(shù)和符號方程兩種形式,下面分別介紹如何創(chuàng)建這兩類對象。(1)創(chuàng)建符號函數(shù)f=x2在M
51、ATLAB中符號函數(shù)必須用單引號括起來,才表明這是一個符號函數(shù),否則如果x在此之前曾經(jīng)賦過值,則MATLAB就會認(rèn)為x是一個變量,從而計算x2,并將結(jié)果賦給f。例如:x=2;f=x2f = 4ff='x2'ff =x2(2)創(chuàng)建符號方程eqation=a*x2+b*x+c=0;符號方程與符號函數(shù)的區(qū)別在于符號方程中包括等號,即是一個方程式的形式。當(dāng)然我們也可以采用另外一種創(chuàng)建符號表達(dá)式的方法,其思路是首先指定使用什么字母或單詞來代表一個確定性的符號,接著在表達(dá)式中就可以直接引用而無須使用引號就可以表明是一個符號表達(dá)式了。可以完成這一思路的命令為syms。例如:syms xf=x2+x+1f =x2+x+1§1.3.2符號矩陣的創(chuàng)建在MATLAB中創(chuàng)建符號矩陣的方法和創(chuàng)建數(shù)值矩陣的方法相似,但與之區(qū)別之處是創(chuàng)建符號矩陣時必須使用符號定義函數(shù)sym,或在創(chuàng)建矩陣時,在矩陣中的對象必須用
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字化供應(yīng)鏈優(yōu)化升級合作協(xié)議
- 幼兒園親子故事征文猜猜我有多愛你
- 品牌發(fā)展及合作策略表
- 農(nóng)業(yè)智能裝備技術(shù)應(yīng)用知識試題
- 物業(yè)轉(zhuǎn)讓協(xié)議書錦集
- 農(nóng)業(yè)種植基地生產(chǎn)安全管理協(xié)議
- 數(shù)學(xué)故事書奇妙的世界之旅解讀
- 企業(yè)內(nèi)部管理軟件推廣協(xié)議
- 杜甫詩風(fēng)探究:高中語文深度解析教案
- 三農(nóng)田機(jī)械作業(yè)技術(shù)標(biāo)準(zhǔn)及規(guī)范
- 生日宴快閃開場模板6
- 責(zé)任護(hù)理組長競選
- 管護(hù)員考勤管理制度
- DB61T 5097-2024 強(qiáng)夯法處理濕陷性黃土地基技術(shù)規(guī)程
- 國家級自然保護(hù)區(qū)不可避讓論證報告-概述說明以及解釋
- 新教材統(tǒng)編版高中語文古代詩歌閱讀講與練 22 從七大常見題材入手把握詩歌內(nèi)容情感
- 2024-2025學(xué)年天津市和平區(qū)天津一中高三綜合測試英語試題試卷含解析
- 2024-2030年中國地鐵廣告行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2024年水利安全員(B證)考試題庫-上(單選題)
- 輻射防護(hù)試題庫+答案
- DWI高信號常見疾病的鑒別診斷課件-2
評論
0/150
提交評論