matlab和ansys基礎(chǔ)教程資料_第1頁
matlab和ansys基礎(chǔ)教程資料_第2頁
matlab和ansys基礎(chǔ)教程資料_第3頁
matlab和ansys基礎(chǔ)教程資料_第4頁
matlab和ansys基礎(chǔ)教程資料_第5頁
已閱讀5頁,還剩131頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論