版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章matlab軟件應(yīng)用
§1.1MATLAB簡介
當(dāng)你要計算3660x5428時,你可能有兩種選擇,第一用計算器,第二找張草稿
(5+1),51T
紙手算;當(dāng)你要計算矩陣與向量[(S+l)(S+2)‘相乘
0,(S+1.5)S(S+2)
時,你現(xiàn)在可能會以為沒有別的辦法了,只能手算了;而當(dāng)你要計算
「e-0"sin(t+X)dt時,你可能會告訴我說:“這個問題只有編程才能解決”。
6
現(xiàn)在揭曉謎底,MATLAB可以求解上面提出的3個計算式,而做到這一點并不需
要草稿紙,也不需要編程。那么MATLAB是一種什么東西呢?MATLAB實際上是一種
面向未來的科學(xué)計算語言,是MATrixLABratory的簡稱,即矩陣實驗室。這種語
言最初的發(fā)明原意是要專門求解矩陣計算問題,后來隨著推向市場,MATLAB不僅保
持了強大數(shù)值計算功能,而且隨著版本升級,逐漸具有了數(shù)據(jù)圖形功能,符號計算
功能。
§1.1.1MATLAB的發(fā)展簡史
UNPACK和EISPACK是美國科學(xué)界在六,七十年代發(fā)展起來的FORTRAN程
序庫,UNPACK用于解線性方程,EISPACK用于求解特征值問題。七十年代中期
CleveMoler和他的同事在美國國家科學(xué)基金資助下研究開發(fā)了調(diào)用LINPACK,和
EISPACK的FORTRAN子程序庫。這兩個程序庫代表著矩陣計算軟件的最高水平。
七十年代后期CleveMoler成為新墨西哥大學(xué)計算機科學(xué)系主任,他為他的學(xué)
生開設(shè)線性代數(shù)課程時,想讓學(xué)生能夠充分利用LINPACK和EISPACK的程序庫,
但是面臨著學(xué)生必須花時間學(xué)習(xí)FORTRAN編程,而這不是他的教學(xué)目的的兩難困
境。為了解決這一難題,他動手用業(yè)余時間為學(xué)生們編寫出使用方便,不需要
FORTRAN背景的LINPACK,EISPACK接口程序。CleveMoler把這一接口程序命
名為MATLAB,意思就是“矩陣實驗室”。這一接口程序被學(xué)生應(yīng)用后獲得歡迎,取
得了意料之中的成功。CleveMoler隨后幾年把這一程序傳播到其他大學(xué),大家都逐
漸認(rèn)識到它的價值,并成為應(yīng)用數(shù)學(xué)界的術(shù)語。
1983年早春,身為工程師的JohnLittle在CleveMoler對斯坦福大學(xué)訪問時接
觸到MATLAB,他眼光獨到地認(rèn)識到MATLAB在工程領(lǐng)域有極大的潛在應(yīng)用天地。
因此在這一年,他與Moler>SteveBangert一起合作開發(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
版本,這兩個版本與以前版本相比增加了多種廣受歡迎的工具箱,在4.1版本中首
次引入了符號計算工具箱。1997年MATLAB5.0版問世,這一版本以windows95為
平臺,實現(xiàn)了真正的32位運算。在隨后的幾年里隨著個人計算機操作系統(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)用人員的智慧,不斷增加MATLAB工具箱涉及的應(yīng)
用領(lǐng)域,也就可以不斷增強自身的競爭力,從而使自身成為數(shù)值型軟件市場的霸主。
§1.1.2MATLAB語言的主要特點
1.功能強大
MATLAB語言具有極強的數(shù)值計算功能和數(shù)據(jù)可視化功能,同時還擁有很強
的符號計算功能,可以很方便地解決線性代數(shù)和數(shù)據(jù)分析處理方面所遇到的多種難
題,MATLAB語言所提供的動畫功能和用戶交互界面對多媒體套件的開發(fā)也有不小
的好處。
2.Windows界面簡單易用
當(dāng)前計算機中使用的軟件普遍都采用微軟公司建立的Windows操作界面行業(yè)
標(biāo)準(zhǔn),MATLAB也不例外,統(tǒng)一的Windows操作界面,使新接觸到MATLAB的人
也不會有很大的應(yīng)用困難,可以做到快速入門。MATLAB自身使用的數(shù)學(xué)符號和表
達(dá)式等,與人們慣常的思維定式相符合,很易掌握。MATLAB還提供強大的用戶幫
助系統(tǒng),用戶在遇到難題時可以利用它來解決。
3.編程簡單,擴展方便
MATLAB所提供的功能以函數(shù)形式完成,完全不必接觸算法和內(nèi)核,編程語法
自然、簡單,程序設(shè)計簡易、方便。程序代碼開放,用戶可以隨意擴展。
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ù)的編程工作中解放出來,可以全身心地研究本領(lǐng)
域的未解之謎。
§1.1.3MATLAB的安裝及操作界面簡介
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程序組,最后點擊MATLAB圖標(biāo),從而進(jìn)入MATLAB操
作界面。
圖1-1MATLAB操作界面
圖1-1就是MATLAB主程序啟動后在計算機顯示器上出現(xiàn)的操作界面。
MATLAB操作界面在默認(rèn)設(shè)置下由四部分組成,從上到下分別是菜單欄,工具欄,
工作窗口和狀態(tài)顯示欄。工作窗口又由五個不同的窗口組成,默認(rèn)設(shè)置狀態(tài)下在工
作窗口左側(cè)顯示出上下兩個窗口,右側(cè)有一個窗口。下面分別介紹各部分功能。
1.菜單欄
菜單欄由六個下拉式菜單組成。第一個是文件菜單,可以實現(xiàn)新建、打開工作
文件的功能,還有首選項和打印方面的設(shè)置選項,并設(shè)置了退出主程序的方法。這
里重點介紹“setpath”展開式菜單。當(dāng)我們安裝MATLAB完畢后,由于MATLAB
是一種解釋執(zhí)行的函數(shù)式語言,有大量的工具箱,因此安裝程序自動設(shè)置了程序執(zhí)
行時所需要進(jìn)行搜索的路徑,以其盡快尋找到程序中使用的函數(shù)文件。我們在使用
MATLAB的過程中,有可能需要創(chuàng)建自己的函數(shù)庫和工具箱,但這些程序可能不會
存入安裝程序預(yù)先指定的搜索路徑,這時我們就要使用“setpath”這一展開式菜單,
選擇添加路徑命令尋找到你存儲文件所在目錄,選擇并確定,你所需目錄就被指定
為搜索路徑,可以方便使用了。
正是基于上述原因,本書建議大家在使用MATLAB前,在硬盤上建立自己的
工作目錄,并將其設(shè)置在搜索路徑中,以利于今后程序的調(diào)用和執(zhí)行。第二個下拉
式菜單是編輯菜單,可以實現(xiàn)剪切、復(fù)制、粘貼、選擇和刪除等文本操作所必須的
功能,還提供清空指令窗口和內(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所具有的強大功能。
2.工具欄
在工具欄中,MATLAB提供了9個常用的工具按鈕和1個縮減的工作目錄窗口,
用來執(zhí)行最常使用的功能。9個工具按鈕又分為四類:第一類對應(yīng)于文件菜單,提
供了創(chuàng)建和打開文件兩個按鈕;第二類對應(yīng)與編輯菜單,提供了剪切、復(fù)制、粘貼,
撤消和重做五個按鈕;第三類是用于啟動Simulink動態(tài)仿真集成環(huán)境一個按鈕;第
四類對應(yīng)于幫助菜單,提供了用于啟動幫助文檔的一個按鈕。
3.工作窗口
在默認(rèn)狀態(tài)下右側(cè)窗口是指令窗口,顯示人機交互指令和命令執(zhí)行結(jié)果,左側(cè)
兩個窗口,上面一個顯示工作目錄,下面一個顯示指令窗口中發(fā)出的各種指令。通
過切換窗口夾,上面窗口可以轉(zhuǎn)為內(nèi)存空間瀏覽窗口,下面窗口可以轉(zhuǎn)為當(dāng)前工作
目錄窗口。
4.狀態(tài)顯示欄
在操作界面最下面,有一個狀態(tài)顯示欄,當(dāng)我們把鼠標(biāo)放在某個窗口夾上忖,
這個顯示欄就會告訴你執(zhí)行結(jié)果。
要退出MATLAB,方法有三種:點擊操作界面右上角的X號,用文件菜單下的
退出命令,或者可以直接在指令窗口中鍵入quit后回車。
操作界面是MATLAB提供給用戶的工作空間,MATLAB所有功能都是通過這
-空間來完成,所以初學(xué)者應(yīng)該熟悉操作界面內(nèi)的各組成單位的操作。
§1.1.4幫助指南
MATLAB提供了強大的幫助功能,可以進(jìn)行在線查詢,這一功能不僅可以使新
接觸到MATLAB的人盡快熟悉此軟件,而且對老用戶開發(fā)某一方面的使用也有很
多的益處。用戶在學(xué)習(xí)MATLAB的過程中,應(yīng)重視查詢系統(tǒng)和其他幫助功能,力
爭做到理解,掌握和熟悉應(yīng)用。
打開MATLAB查詢系統(tǒng)的方法有兩種:
?可以利用工具欄中“幫助”按鈕。
?可以利用“幫助”下拉式菜單中的選項。
MATLAB還提供了在指令窗口中直接輸入命令進(jìn)行查詢的方法。由于打開查詢
系統(tǒng)方式較易掌握,這里就不贅述了。下面介紹幾個可以在指令窗口中使用的幫助
命令的用法。
l.help命令
help命令可以單獨使用,輸入help回車,你可以得到下面內(nèi)容。
HELPtopics:
matlab\generalGeneralpurposecommands.
matlab\opsOperatorsandspecialcharacters.
vr\vrdemos-VirtualRealityToolboxexamples.
MATLAB6p5\work-(Notableofcontentsfile)
Formorehelpondirectory/topic,type"helptopic”.
Forcommandsyntaxinformation,type"helpsyntax".
它為你提供了整個在線幫助架構(gòu)。
但如果你想具體了解某一函數(shù)類或某一函數(shù)的功能時,單獨使用help命令就不
夠了,可以采用下面形式:
help+函數(shù)類名
例如helpelfun(下面顯示基本函數(shù)類的組成及功能)
Elementarymathfunctions.
Trigonometric.
sin-Sine.
sinh-Hyperbolicsine.
Exponential.
exp-Exponential.
log-Naturallogarithm.
Complex.
abs-Absolutevalue.
angle-Phaseangle.
Roundingandremainder.
fix-Roundtowardszero.
floor-Roundtowardsminusinfinity.
help+函數(shù)名
例如helpbesselj(下面顯示第一類貝塞爾函數(shù)的功能和使用方法)
BESSELJBesselfunctionofthefirstkind.
J=BESSELJ(NU,Z)istheBesselfunctionofthefirstkind,J_nu(Z).
SeealsoBESSELY,BESSELI,BESSELK,BESSELH.
Overloadedmethodshelpsym/besselj.m
2.lookfor命令
當(dāng)我們知道某函數(shù)的函數(shù)名而不知道其用法時,help命令可以幫助你準(zhǔn)確了解
此函數(shù)的用法,但如果我們不知道函數(shù)的確切名字,想找到與之有關(guān)的信息時,help
命令就無能為力了。這時,可以使用lookfor命令來根據(jù)用戶提供的關(guān)鍵字搜索與之
相關(guān)的函數(shù)。
例如lookfordiff(下面顯示與關(guān)鍵字“diff”有關(guān)的函數(shù))
SETDIFFSetdifference.
DIFFDifferenceandapproximatederivative.
POLYDERDifferentiatepolynomial.
DDE23Solvedelaydifferentialequations(DDEs)withconstantdelays.
從上面的例子,可以看出lookfor命令相當(dāng)于一般軟件中模糊查詢功能。
3.其他幫助命令
MATLAB還為用戶提供了其他一些幫助命令,包括
?exist查詢用戶指定的變量或函數(shù)文件存在與否。
?what列出目錄中的文件名
?who列出工作內(nèi)存的變量名。
?whos列出工作內(nèi)存變量詳細(xì)信息。
?which確定指定名字的文件具體位置。
為方便用戶使用MATLAB,系統(tǒng)還提供了一系列通用命令。表1-1給出了最常
用的幾個通用命令。
表1-1通用命令表
命令功能命令功能
dir顯示目錄文件cd轉(zhuǎn)換工作目錄
clc清除指令窗口內(nèi)容elf清除圖形窗口內(nèi)容
clear釋放工作內(nèi)存quit退出MATLAB
path顯示搜索路徑type顯示文件內(nèi)容
pack收集工作內(nèi)存碎片I調(diào)用DOS命令
§1.1.5從MATLAB“入門演示”開始真正認(rèn)識MATLAB
圖1-2演示界面
在前面的講述中我們已經(jīng)對MATLAB軟件有了初步了解,知道它是一-種科學(xué)計
算語言,知道了它的界面布置,知道了它的一些功能,但我們對MATLAB到底有
多么強大的計算能力,多么方便的操作方法仍然一無所知,好在MATLAB為我們
準(zhǔn)備了強大的“入門演示”,下面就從“入門演示”開始我們真正的MATLAB之旅。
從“幫助”下拉式菜單中找到“Demos”,點擊并打開它,進(jìn)入了如圖1-2所示
的演示界面。依次展開“Matrices"、“Numerics”等項目,就可以對這些項目的功能
有初步了解。這里建議大家打開"basicmatrixoperation”的演示程序,來了解基本
矩陣操作。
§1.2數(shù)值計算功能
MATLAB數(shù)值計算功能極其強大,這是使其在眾多的數(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)信息,加快運算速度。
§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-360.12345
96.23454.06e-205.96e99
5+0.6i-5.6i3.6e4i
從上面的例子大家不難想到這些規(guī)則與C語言類似,MATLAB的數(shù)據(jù)輸入格式
完全采用了C語言的風(fēng)格和規(guī)則。
數(shù)據(jù)輸入后,在MATLAB的后臺,數(shù)據(jù)的存儲與運算都是以雙精度進(jìn)行的,但
是在MATLAB指令窗口中的顯示輸出格式卻有不同的表示形式,控制數(shù)據(jù)顯示格
式的命令是format,具體格式類型和運算方法如表1-2所示。
表1-2format命令格式類型
Formatshort五位定點小數(shù)形式
Formatlong十五位定點小數(shù)形式
Formatshorte五位浮點小數(shù)形式
Formatlonge十五位浮點小數(shù)形式
Formatbank銀行單位形式
Formatrat分?jǐn)?shù)近似形式
Format+顯示正負(fù)號
2.變量名
在MATLAB中可以用字母(即變量名)來表示具體的數(shù)據(jù),也就是對變量進(jìn)
行賦值操作。變量名必須用字母打頭,后面可以跟字母、數(shù)字、下劃線,長度不限,
但系統(tǒng)只對變量名的前31個符號識別。要查看一個變量的內(nèi)容,只需要鍵入其名稱
回車即可。在MATLAB操作界面窗口中有一個工作內(nèi)存空間窗口,變量的名稱,
維數(shù),所占空間大小及類型都列在其中了。點擊變量名稱就會打開一個矩陣編輯器
窗口,變量的元以表格的形式排列其中,可以方便的查看和修改,也可以用它來輸
入大型矩陣。
在MATLAB中有八個常用的固定變量,它們代表特殊的常用數(shù)值或有特殊的
意義,用戶可以直接調(diào)用。
表1-3常駐變量表
變量符號所代表的數(shù)值或意義
Pi代表圓周率3.14159265358979.......
i或j代表復(fù)數(shù)單位Q
Inf代表無窮大數(shù)I/O
NaN代表不定值(0/0或Inf-Inf)
eps代表2.2204e-016
realmin代表最小浮點數(shù)2.2251e-308
realmax代表最大浮點數(shù)1.7977e+308
3.運算符
MATLAB使用人們所熟悉的運算符,如下面表1-4至表1-6所示。
表1-4算術(shù)運算符
算符使用實例
+(加)26+376
-(減)593-342
*(乘)111*222
/(除)63/92
A(幕)3A41
()(括號)3*(63-21)
此表運算符適用于標(biāo)量,向量和矩陣操作。
表1-5關(guān)系運算算符
算符使用實例
〈(小于)x<y
<=(小于等于)x<=y
>(大于)x>y
>=(大于等于)x>=y
==(等于)x==y
?=(不等于)x~=y
此表運算符同樣適用于標(biāo)量,向量和矩陣的操作。有下面三點法則:
(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&B
1(或)A|B
~(非)?A
邏輯運算符對標(biāo)量與標(biāo)量,標(biāo)量與數(shù)組,數(shù)組與數(shù)組之間的運算規(guī)則采用與關(guān)
系運算符相類似的形式。
在算術(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作為--門語言,它的運算指令和語法是基于一系列基本的矩陣運算以
及它們的擴展運算。因而,為了利用好MATLAB語言,首先要了解向量和矩陣的
生成和運算規(guī)則。這節(jié)先介紹向量的生成與運算。向量運算是矢量運算的基礎(chǔ),向
量也是組成矩陣的基本元素之一,因而先了解向量的有關(guān)操作可以使大家更好地了
解矩陣的操作。
1.向量的生成
生成向量的最直接的方法就是在指令窗口中建立。向量元素需要用“[]”括起
來,MATLAB的規(guī)則是元素之間用空格、逗號分隔開表示并列的一行元素,用分號
分隔開表示不同行的元素,因而向量生成時注意:用空格或逗號分隔可以生成行向
量,用分號分割開生成的是列向量。
如果元素之間有一定的遞增遞減規(guī)律性,那么可以利用冒號表達(dá)式生成向量,
基本形式為:
x=x0:step:xn
x0、step、xn分別表示向量的第一個元素數(shù)值,元素數(shù)值增量步長,向量最后
一個元素數(shù)值。大家可以利用Fortran語言編程中的循環(huán)控制語句表達(dá)式對照理解本
文表達(dá)式。
在MATLAB中還提供了線性等分功能函數(shù)linspace來生成線性等分向量,和對
數(shù)等分功能函數(shù)logspace來生成對數(shù)等分向量,關(guān)于兩種函數(shù)的具體用法,大家可
以使用help指令來了解。
2.向量的運算
向量的加減法要求參與運算的向量具有相同的維數(shù),而向量與數(shù)的加減法則要
求向量的每一個元素與數(shù)字相加減。
向量與數(shù)值乘法運算要求向量每一個元素和該數(shù)值相乘。
例如:
a=[l2345]
a-1
ans=
01234
a*2
ans=
246810
向量與向量的乘積運算有三種形式:點積、叉積和混合積。
向量的點積由函數(shù)dot來實現(xiàn):
C=dot(A.B)A、B為兩向量,要求維數(shù)相同,dot是向量點積函數(shù),點積
運算規(guī)則遵從高等數(shù)學(xué)有關(guān)規(guī)定。
向量的叉枳由函數(shù)cross來實現(xiàn):
C=cross(A,B)A、B為兩向量,cross為向量叉積函數(shù),運算規(guī)則也服從高
等數(shù)學(xué)有關(guān)規(guī)定。
向量的混合積山以上兩個函數(shù)的嵌套來實現(xiàn)。
例如:a=[l23];
b=[456];
dot(a,b)
ans=
32
c=cross(a,b)
c=
-36-3
d=[l11];
dot(a,cross(b,d))
ans=
0
§1.2.4矩陣的生成及運算
MATLAB提供了強大的矩陣運算功能,本節(jié)將從矩陣的創(chuàng)建,矩陣運算及函數(shù)
應(yīng)用等幾方面進(jìn)行闡述。
1.矩陣的創(chuàng)建
對于簡單的矩陣,創(chuàng)建的最快捷方法是從鍵盤直接輸入到指令窗口中。在直接
創(chuàng)建矩陣時,也應(yīng)采取與向量建立時同樣的規(guī)則,即要注意矩陣元素前后以方括號
“口”包圍,元素之間的逗號,空格與分號的區(qū)別。
例如:創(chuàng)建一個三維數(shù)值矩陣
a=[l23;456;789]
a=
123
456
789
對于矩陣內(nèi)部元素包含運算表達(dá)式的情況,MATLAB也認(rèn)可,并以運算結(jié)果作
為矩陣元素內(nèi)容。
例如:創(chuàng)建一帶有運算表達(dá)式的矩陣。
a=[sin(pi/4),6A3;log(2),sqrt(3)]
a=
0.7071216.0000
0.69311.7321
對于大規(guī)模的矩陣,在指令窗口中直接輸入費事費力,風(fēng)險高,不可控。這時
可以利用MATLAB提供的文本編輯功能,新建一個M文件。這里M文件是一種可
以在MATLAB指令窗口下運行的文本文件,只要在指令窗U下鍵入M文件的文件
名,即可以運行此文件,我們下面要利用其命令式文件的形式,它還可以有函數(shù)式
文件的形式,我們在后面將看到其強大的功能。
在文件菜單下找到新建子菜單,點擊M-文件,就打開了M文件編輯窗口,輸
入想要建立的矩陣,將此文件以m為擴展名保存,然后在指令窗口下輸入M文件
名,所要建立的大型矩陣就輸入到了內(nèi)存中。
例如:用M文件創(chuàng)建大矩陣,文件名為example.m
exm=[456468873257955
2165754488813
6545678898215
45668458965452]
在MATLAB指令窗口中輸入:
example;
size(exm)
ans=
46
實際上本例并不算大型矩陣,這里只是給大家?個直觀的感受,?般來說,這
種方法大多應(yīng)用于對其他語言程序所得結(jié)果的利用上。
2.矩陣的基本數(shù)學(xué)運算
矩陣的基本數(shù)學(xué)運算包括矩陣的四則運算,矩陣與常數(shù)的運算,矩陣的逆運算,
矩陣的行列式求值,矩陣的幕運算、指數(shù)運算和對數(shù)運算等。下面逐一加以介紹:
(1)矩陣的四則運算
矩陣的加減法運算格式與數(shù)值及向量的運算格式相似,使用“+”和運算符,
但要求進(jìn)行運算的兩矩陣必須是同維的。
例如:a=[l23;456;789]
b=[l11;222;333]
c=a+b
c=
234
678
101112
矩陣的乘法使用"”作為運算符,采用與線性代數(shù)中矩陣乘法運算相同的運
算規(guī)則,對相乘矩陣維數(shù)的要求是要有相鄰公共維。
例如:x=[l234;5678]
y=[l1;22;33;44]
z=x*y
z=
3030
7070
矩陣的除法包括兩種運算形式:左除(\)和右除(/)o一般情況下,x=a\b是
方程a*x=b的解,而*=1)用則是方程x*a=b的解。通常右除的計算速度要快一點,
而左除則可以避免被除矩陣的奇異所帶來的麻煩。
x+2y+3z=4
例如:已知方程組<4x+2y+6z=l,求解x,y,z。
7x+4y+9z=2
求解這個方程組,我們可以設(shè)
a=[l23;426;749]
b=[4;l;2]
x=a\b
-1.5000
2.0000
0.5000
?a=[l47;224;369]
a=
147
224
369
?b=[412]
b=
412
?x=b/a
x=
-1.50002.00000.5000
?
這樣方程組的解就可以得到了。
(2)矩陣與常數(shù)的運算
一個常數(shù)與矩陣的運算也就是常數(shù)和矩陣中各個元素之間的進(jìn)行運算。但這里
注意一點,當(dāng)進(jìn)行矩陣與常數(shù)的除法運算時,常數(shù)只能做除數(shù)。
(3)矩陣的逆運算
對一個矩陣求逆是線性代數(shù)和數(shù)值分析中的重要內(nèi)容,MATLAB為其提供了一
個強有力的命令:inv。
-2,2,3'
例如:求解矩陣A=4,5,6的逆陣。
_7,8,9_
解:A=[223;456;789];
B=inv(A)
B=
1.0000-2.00001.0000
-2.00001.00000
1.00000.6667-0.6667
(4)矩陣的行列式求值
矩陣的行列式求值在MATLAB中是由det函數(shù)來完成的。
例如:求解上例中矩陣A和矩陣B的行列式的值。
AA=det(A)
AA=
BB=det(B)
BB=
?0.3333
(5)矩陣的褰指數(shù)運算和對數(shù)運算
有矩陣A,對其進(jìn)行嘉運算,求A的3次嘉,則運算表達(dá)式可以寫為A八3,從這
一點可以看出矩陣的塞運算與數(shù)字基運算形式相同。
矩陣的指數(shù)運算一般采用函數(shù)expm,和其同類的函數(shù)還有expml,expm2和
expm3。expml,expm2和expm3的主要區(qū)別在于算法不同,具體情況可參看幫助文
件。
矩陣的對數(shù)運算采用函數(shù)logm進(jìn)行。
(6)矩陣的開方運算
矩陣的開方運算山函數(shù)sqrtm完成。
這里強調(diào)一點,上述幾種函數(shù)都是針對矩陣的,是視矩陣為一個操作數(shù)整體來
進(jìn)行運算的,和下面要講到的數(shù)組運算中針對矩陣中每一個元素進(jìn)行運算的方式不
同。
例如:A=[l,2;3,4]
B=AA2
B=
710
1522
C=sqrtm(B)
C=
1.56671.7408
2.61124.1779(不等于A)
D=CA2
D=
710
1522
3.矩陣的基本函數(shù)運算
矩陣的基本函數(shù)運算是與線性代數(shù)和數(shù)值分析兩門課程的有關(guān)應(yīng)用有密切聯(lián)系
的。例如與線性代數(shù)相對應(yīng)的,有特征值運算,矩陣求秩,矩陣求跡等運算;與數(shù)
值分析相對應(yīng)的,有奇異值函數(shù),條件數(shù)運算,范數(shù)運算等。
(1)特征值函數(shù)
一個矩陣可以利用函數(shù)eig和eigs計算出其特征值。
3-1,0
例如:計算矩陣人=-1,2-1的特征值和特征向量。
0,-1,3
A=[3-10;-12-l;0-13];
[X,Y]=eig(A)
X=
0.4082-0.7071-0.5774
0.8165-0.00000.5774
0.40820.7071-0.5774
1.000000
03.00000
004.0000
其中X為特陣向量矩陣,Y為特征值矩陣。
(2)秩函數(shù)
對一個矩陣的秩的求解可以利用函數(shù)rank來計算。
例如:e=[l234
1123
2246];
rank(e)
ans=
2
(3)跡函數(shù)
矩陣對角線上元素求和,可以利用trace函數(shù)來計算。
-1,2,3'
例如:求A=4,5,6的跡。
_7,8,9_
trace(A)
ans=
15
(4)奇異值函數(shù)
矩陣的奇異值函數(shù)有兩種——svd和svds.
例如:A=magic⑸;(魔方陣最小3階)
S=svd(A),
S=
65.000022.547121.687413.403611.9008
(5)條件數(shù)函數(shù)
在MATLAB中可以利用cond函數(shù)來計算反映矩陣“病態(tài)”程度的條件數(shù)值。
(6)范數(shù)函數(shù)
矩陣范數(shù)運算是對矩陣的一種度量,在MATLAB中分為1范數(shù),2范數(shù),無窮
范數(shù)和F-范數(shù)。norm(A,l)為求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中
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB37T 4791-2024煤礦井下超大斷面硐室施工技術(shù)規(guī)范
- 江西省豐城市第九中學(xué)2025屆高三(復(fù)讀班)上學(xué)期第三次段考政治試卷(含答案)
- 讀書社團活動策劃(9篇)
- 歌頌教師主題演講稿三分鐘歌頌教師的主題集合4篇
- 光船租賃合同(2篇)
- 《職場溝通》電子教案 項目五 職場溝通中的禮儀準(zhǔn)備
- 2025年紫外光固化油墨合作協(xié)議書
- 2025年付里葉紅外分光光度計項目合作計劃書
- 2025年低溫超導(dǎo)材料項目發(fā)展計劃
- 賣車場地租賃協(xié)議
- 危險源辨識及分級管控管理制度
- GB/T 19752-2024混合動力電動汽車動力性能試驗方法
- 和員工簽股權(quán)合同范本
- 07FD02 防空地下室電氣設(shè)備安裝
- 《工程倫理》題集
- 江蘇2024年江蘇省新聞出版學(xué)校招聘人員筆試歷年典型考題及考點附答案解析
- 四川省成都市2023-2024學(xué)年高二歷史上學(xué)期期末聯(lián)考試題
- 河北省2024屆高三大數(shù)據(jù)應(yīng)用調(diào)研聯(lián)合測評(Ⅵ)英語試題含答案
- 成人手術(shù)后疼痛評估與護(hù)理-中華護(hù)理學(xué)會團體標(biāo)準(zhǔn)(2023)課件
- 《金屬基增容導(dǎo)線技術(shù)條件+第2部分:鋁包殷鋼芯耐熱鋁合金絞線》
- 園藝植物栽培學(xué)智慧樹知到期末考試答案章節(jié)答案2024年浙江農(nóng)林大學(xué)
評論
0/150
提交評論