MATLAB實(shí)用教程-課件_第1頁
MATLAB實(shí)用教程-課件_第2頁
MATLAB實(shí)用教程-課件_第3頁
MATLAB實(shí)用教程-課件_第4頁
MATLAB實(shí)用教程-課件_第5頁
已閱讀5頁,還剩286頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

MATLAB實(shí)用教程

電子教案1.0下載更新:1MATLAB實(shí)用教程

電子教案1.0下載更新:1本書的主要內(nèi)容和結(jié)構(gòu)2本書的主要內(nèi)容和結(jié)構(gòu)2精品資料精品資料3你怎么稱呼老師?如果老師最后沒有總結(jié)一節(jié)課的重點(diǎn)的難點(diǎn),你是否會認(rèn)為老師的教學(xué)方法需要改進(jìn)?你所經(jīng)歷的課堂,是講座式還是討論式?教師的教鞭“不怕太陽曬,也不怕那風(fēng)雨狂,只怕先生罵我笨,沒有學(xué)問無顏見爹娘……”“太陽當(dāng)空照,花兒對我笑,小鳥說早早早……”MATLAB實(shí)用教程-ppt課件4第1章MATLAB簡介MATLAB的主要特點(diǎn)

MATLAB的桌面環(huán)境

MATLAB的幫助系統(tǒng)5第1章MATLAB簡介MATLAB的主要特點(diǎn)5MATLAB的主要特點(diǎn)簡單易學(xué)代碼短小高效計算功能強(qiáng)大繪圖功能強(qiáng)大可擴(kuò)展性能6MATLAB的主要特點(diǎn)簡單易學(xué)6MATLAB的桌面環(huán)境啟動按鈕命令窗口命令歷史窗口工作空間窗口當(dāng)前目錄瀏覽器7MATLAB的桌面環(huán)境啟動按鈕7主界面當(dāng)前目錄瀏覽工具命令窗口啟動按鈕命令歷史窗口工作空間窗口8主界面當(dāng)前目錄瀏覽工具命令窗口啟動按鈕命令歷史窗口工作空間窗MATLAB的幫助系統(tǒng)幫助瀏覽工具h(yuǎn)elp函數(shù)和doc函數(shù)9MATLAB的幫助系統(tǒng)幫助瀏覽工具9第2章數(shù)據(jù)類型

常數(shù)和變量數(shù)組和矩陣字符串多維數(shù)組結(jié)構(gòu)單元數(shù)組函數(shù)句柄10第2章數(shù)據(jù)類型常數(shù)和變量10常數(shù)常數(shù)返回值ans默認(rèn)變量名,保存最近的結(jié)果。如果不給表達(dá)式指定一個輸出變量,MATLAB會自動將結(jié)果保存到ans變量中

eps浮點(diǎn)相對精度。是MATLAB用于計算的容限

realmax計算機(jī)可以表示的最大浮點(diǎn)數(shù)

realmin計算機(jī)可以表示的最小浮點(diǎn)數(shù)

pi圓周率

i,j虛數(shù)單位

inf無限值。類似n/0的表達(dá)式生成的結(jié)果為inf,其中n為非0實(shí)數(shù)

NaN表示不合法的數(shù)值值,非數(shù)值。類似0/0和inf/inf的表達(dá)式生成的結(jié)果,與NaN有關(guān)的算術(shù)運(yùn)算結(jié)果,以及n/0,n為復(fù)數(shù)時的計算結(jié)果都是NaNcomputer計算機(jī)類型

versionMATLAB版本字符串

下表列出了MATLAB提供的一些內(nèi)部函數(shù)。11常數(shù)常數(shù)返回值ans默認(rèn)變量名,保存最近的結(jié)果。如果不給表達(dá)變量變量名

MATLAB變量名的第1個字符必須是字母,后面可以跟字母、數(shù)字和下劃線的任何組合。

注意:MATLAB中變量名有大小寫區(qū)分,所以A和a是不同的變量。

創(chuàng)建變量在MATLAB中創(chuàng)建變量很簡單,不必聲明變量的數(shù)據(jù)類型。例如在命令窗口鍵入下面的命令行就可以創(chuàng)建一個A變量。

A=9A=9

12變量變量名12變量的數(shù)據(jù)類型數(shù)組邏輯型字符型數(shù)值型單元數(shù)組結(jié)構(gòu)數(shù)組函數(shù)句柄Java類定制類int8,uint8int16,uint16int32,uint32SingleDouble13變量的數(shù)據(jù)類型數(shù)組邏輯型字符型數(shù)值型單元數(shù)組結(jié)構(gòu)數(shù)組函數(shù)數(shù)組和矩陣MATLAB中,所有數(shù)據(jù)都用數(shù)組或矩陣形式進(jìn)行保存。數(shù)組矩陣14數(shù)組和矩陣MATLAB中,所有數(shù)據(jù)都用數(shù)組或矩陣形式數(shù)組構(gòu)造數(shù)組的方法:直接構(gòu)造法增量法linspace函數(shù)法15數(shù)組構(gòu)造數(shù)組的方法:15直接構(gòu)造數(shù)組

在MATLAB中構(gòu)造數(shù)組,只需要用空格或逗號間隔數(shù)組元素,然后用方括號括起來就行了。如

x=[023678]

x=[0,2,3,6,7,8]就構(gòu)造了一個有6個元素的數(shù)組x。

16直接構(gòu)造數(shù)組在MATLAB中構(gòu)造數(shù)組,只需要用空格用增量法構(gòu)造數(shù)組

利用MATLAB提供的冒號運(yùn)算符(first:step:last)可以生成數(shù)組。數(shù)組中的元素按順序從first一直到last,增量為step。(2:3:14)如果不指定增量step,則按升序生成數(shù)組,后面的數(shù)比它前面第一個數(shù)大1。(2:13)

如果要求生成降序排列的數(shù)組,指定一個負(fù)的增量。增量可以是整數(shù),也可以是小數(shù)。17用增量法構(gòu)造數(shù)組利用MATLAB提供的冒號運(yùn)算符(fi用linspace函數(shù)構(gòu)造數(shù)組

用linspace函數(shù)構(gòu)造數(shù)組,需要指定首尾值和元素總個數(shù)?;拘问绞牵?/p>

x=linspace(first,last,num)其中,first,last和num分別為x數(shù)組的首尾元素和元素個數(shù)。如

x=linspace(0,10,5)x=02.50005.00007.500010.000018用linspace函數(shù)構(gòu)造數(shù)組用linspace函矩陣構(gòu)造矩陣的方法:簡單的創(chuàng)建方法構(gòu)造特殊矩陣聚合矩陣組合不同類型的數(shù)據(jù)19矩陣構(gòu)造矩陣的方法:19用簡單方法構(gòu)造矩陣MATLAB中創(chuàng)建矩陣最簡單的方法是使用符號[]。在方括號內(nèi)輸入多個元素可以創(chuàng)建矩陣的一個行。用逗號或空格把每個元素間隔開。如果想開始一個新行,用分號終止當(dāng)前行:

A=[row1;row2;...;rown]

下面創(chuàng)建一個3行5列的數(shù)值矩陣。

A=[126293-822;162874391;-417-72956]A=126293-822162874391-417-7295620用簡單方法構(gòu)造矩陣MATLAB中創(chuàng)建矩陣最簡單的方法構(gòu)造特殊矩陣MATLAB提供了多個創(chuàng)建不同矩陣的函數(shù),如下表所示。

函數(shù)功能ones創(chuàng)建一個所有元素都為1的矩陣

zeros創(chuàng)建一個所有元素都為0的矩陣

eye創(chuàng)建對角線元素為1,其他元素為0的矩陣

accumarray將輸入矩陣的元素分配到輸出矩陣中的指定位置

diag根據(jù)矢量創(chuàng)建對角矩陣

magic創(chuàng)建一個方形矩陣,其中行、列和對角線上元素的和相等

rand創(chuàng)建一個矩陣或數(shù)組,其中的元素為服從均勻分布的隨機(jī)數(shù)

randn創(chuàng)建一個矩陣或數(shù)組,其中的元素為服從正態(tài)分布的隨機(jī)數(shù)

randperm創(chuàng)建一個矢量(1×n的矩陣)21構(gòu)造特殊矩陣MATLAB提供了多個創(chuàng)建不同矩陣的函數(shù),如聚合矩陣

矩陣聚合是通過連接一個或多個矩陣來形成新的矩陣。符號[]不僅是矩陣構(gòu)造符,它還是MATLAB聚合運(yùn)算符。表達(dá)式C=[AB]在水平方向上聚合矩陣A和B,表達(dá)式C=[A;B]在垂向上聚合它們。本例通過在垂向上聚合矩陣A和B來構(gòu)造新矩陣C:

A=ones(2,5)*6;%2×5的矩陣,元素為6B=rand(3,5);%3×5的矩陣,元素為隨機(jī)數(shù)

C=[A;B]%垂向聚合A和B注意:在每一條程序后面,有分號“;”,則該語句求出的內(nèi)容不顯示在屏幕上;若沒有分號,則所求內(nèi)容會顯示出來

22聚合矩陣矩陣聚合是通過連接一個或多個矩陣來形成新的矩陣組合不同類型的數(shù)據(jù)

構(gòu)造矩陣時,如果矩陣的數(shù)據(jù)類型不同,則MATLAB會自動對某些元素進(jìn)行類型轉(zhuǎn)換,然后生成的矩陣具有相同的類型。用一個高精度的矩陣和一個低精度的矩陣構(gòu)造新矩陣時,新矩陣是低精度型的。例如,聚合double型和single型的矩陣時,總是生成single型的矩陣。MATLAB會先將double型元素轉(zhuǎn)換為single型。

23組合不同類型的數(shù)據(jù)構(gòu)造矩陣時,如果矩陣的數(shù)據(jù)類型聚合矩陣的特殊函數(shù)下表列出了聚合矩陣的一些特殊函數(shù)。函數(shù)描述cat沿指定的維聚合矩陣

horzcat水平聚合矩陣

vertcat垂向聚合矩陣

repmat通過復(fù)制和疊置矩陣來創(chuàng)建新矩陣

blkdiag用已有矩陣創(chuàng)建塊對角矩陣

24聚合矩陣的特殊函數(shù)下表列出了聚合矩陣的一些特殊函數(shù)。函數(shù)獲取矩陣的元素使用編號索引使用線性索引使用冒號使用end關(guān)鍵字25獲取矩陣的元素使用編號索引25使用編號索引獲取矩陣的元素

利用編號和索引,可以獲取MATLAB矩陣的元素。要引用矩陣中的特殊元素,用下面的語法指定它的行號和列號,其中A是矩陣變量。按先行后列的順序指定。

A(row,column)26使用編號索引獲取矩陣的元素利用編號和索引,可以獲取M使用線性索引獲取矩陣的元素MATLAB保存矩陣中的數(shù)據(jù)時是作為一個元素列保存。這個元素列又是由矩陣中的所有列組成的,后一列元素按先后順序添加到前一列元素的最后。所以,矩陣AA=[269;428;301]A=269428351

在內(nèi)存中是按下面的序列保存的:

2,4,3,6,2,5,9,8,1

矩陣A第3行第2列的元素可以看作實(shí)際保存序列中的第6個元素。要獲取這個元素,可以使用標(biāo)準(zhǔn)語法A(3,2)或使用A(6)。27使用線性索引獲取矩陣的元素MATLAB保存矩陣中的使用冒號獲取矩陣的元素

利用冒號本身可以引用矩陣某行或列的所有元素。使用下面的語法,可以計算4×4的魔方矩陣A中所有元素的和。

sum(A(:,2))ans=34

將冒號進(jìn)行索引,可以引用整個矩陣中的所有元素。本例顯示矩陣A中的所有元素,按列序返回它們:

A(:)28使用冒號獲取矩陣的元素利用冒號本身可以引用矩陣某行或使用end關(guān)鍵字獲取矩陣的元素

利用end關(guān)鍵字可以指定矩陣某維的最后一個元素。它適用于不知道矩陣有多少行或多少列的情況。例如,可以用下面的語句進(jìn)行值的替換:

B(1:3:end)=-10

29使用end關(guān)鍵字獲取矩陣的元素利用end關(guān)鍵字可以指字符串字符串的創(chuàng)建類型轉(zhuǎn)換字符串的比較字符串的聚合字符串的搜索和替換30字符串字符串的創(chuàng)建30創(chuàng)建字符串通過把字符放到單引號中來指定字符數(shù)據(jù)。如,下面創(chuàng)建一個1×5的字符串country。

country='China';

創(chuàng)建一個二維字符串時,確定每行具有相同的長度,例如,下面兩個字符串都有5個字符,用它們組合起來的二維字符串是合法的。

name=['LiYi';'HuXu']name=LiYiHuXu

根據(jù)不同長度的字符串創(chuàng)建字符串時,將短的那些字符串后面用空格補(bǔ)齊,使所有字符串的長度相同。

31創(chuàng)建字符串通過把字符放到單引號中來指定字符數(shù)據(jù)。如,下面創(chuàng)建類型轉(zhuǎn)換用char函數(shù)把單元數(shù)組轉(zhuǎn)換為標(biāo)準(zhǔn)字符串?dāng)?shù)組。

str2double函數(shù)把一個字符串單元數(shù)組轉(zhuǎn)換為字符串表示的雙精度值。

int2str函數(shù)將整型數(shù)據(jù)轉(zhuǎn)換為字符串型數(shù)據(jù)。

num2str函數(shù)對輸出字符串的格式提供了更多控制,該函數(shù)的第2個變量是可選的,它設(shè)置輸出字符串的位數(shù),或指定一個實(shí)際的格式。

mat2str函數(shù)將數(shù)組轉(zhuǎn)換為字符串。

mat2str函數(shù)將返回一個包含文本的字符串,該文本在命令行中輸入,用于創(chuàng)建矩陣。

32類型轉(zhuǎn)換用char函數(shù)把單元數(shù)組轉(zhuǎn)換為標(biāo)準(zhǔn)字符串?dāng)?shù)組。32字符串的比較用strcmp函數(shù)比較字符串,字符串不相等時,返回false??梢允褂肕ATLAB的關(guān)系運(yùn)算符,如,可以用(==)確定兩個字符串中的相同字符。所有關(guān)系運(yùn)算符(>,>=,<,<=,==,!=)比較對應(yīng)字符的值。33字符串的比較用strcmp函數(shù)比較字符串,字符串不相等時,返字符串的聚合字符串通??梢杂筛〉脑鼐酆隙伞蓚€通用的聚合方法是使用MATLAB聚合運(yùn)算符([])或sprintf函數(shù)。用strcat函數(shù)也可以把兩個或更多字符串組合在一起。

34字符串的聚合字符串通??梢杂筛〉脑鼐酆隙?。兩個通用的聚字符串的搜索和替換strrep函數(shù)進(jìn)行標(biāo)準(zhǔn)的搜索和替代操作。findstr函數(shù)把子字符串的起始位置返回到一個更長的字符串中。

strtok函數(shù)在輸入字符串中第一次發(fā)現(xiàn)間隔符時返回間隔符前面的字符,可用該函數(shù)把句子分離成單詞。

strmatch函數(shù)在字符串或字符串單元數(shù)組的整個行中進(jìn)行查找,看有沒有以給定字符序列打頭的字符串,它返回以該字符串打頭的行的行號。

35字符串的搜索和替換strrep函數(shù)進(jìn)行標(biāo)準(zhǔn)的搜索和替代操作。多維數(shù)組用索引生成多維數(shù)組用特殊函數(shù)生成多維數(shù)組用cat函數(shù)生成多維數(shù)組36多維數(shù)組用索引生成多維數(shù)組36用索引生成多維數(shù)組

創(chuàng)建多維數(shù)組的方法之一是先創(chuàng)建一個二維數(shù)組,然后擴(kuò)展它。如:

A=[578;019;436];A是一個3×3的數(shù)值,即它的行維和列維都是3。給A添加第三維。

A(:,:,2)=[104;356;987]

37用索引生成多維數(shù)組創(chuàng)建多維數(shù)組的方法之一是先創(chuàng)建一個用特殊函數(shù)生成多維數(shù)組

可以使用與生成二維數(shù)組相同的方式,用randn,ones和zeros函數(shù)等生成多維數(shù)組。提供的每個變量表示生成的數(shù)組中對應(yīng)維的大小。如:要創(chuàng)建一個正態(tài)分布隨機(jī)數(shù)的4×3×2的數(shù)組,可以輸入:

B=randn(4,3,2)

要生成一個元素均為同一常數(shù)的數(shù)組,使用repmat函數(shù)。如:

B=repmat(5,[342])

38用特殊函數(shù)生成多維數(shù)組可以使用與生成二維數(shù)組相同的方用cat函數(shù)生成多維數(shù)組cat函數(shù)是創(chuàng)建多維數(shù)組的一種簡單方式,它按指定的維數(shù)將多個數(shù)組聚合到一起,其調(diào)用格式為:

B=cat(dim,A1,A2...)

其中A1,A2等是進(jìn)行聚合的數(shù)組,dim是維數(shù)。

39用cat函數(shù)生成多維數(shù)組cat函數(shù)是創(chuàng)建多維數(shù)組的一結(jié)構(gòu)創(chuàng)建結(jié)構(gòu)數(shù)組獲取結(jié)構(gòu)數(shù)組中的數(shù)據(jù)數(shù)組的大小操作字段結(jié)構(gòu)的嵌套40結(jié)構(gòu)創(chuàng)建結(jié)構(gòu)數(shù)組40創(chuàng)建結(jié)構(gòu)數(shù)組使用賦值語句可以通過將數(shù)據(jù)賦給單獨(dú)的字段來生成一個簡單的1×1結(jié)構(gòu)數(shù)組。

使用struct函數(shù)可以用struct函數(shù)預(yù)分配一個結(jié)構(gòu)數(shù)組。其基本形式為:

str_array=struct('field1',val1,'field2',val2,...)

其中,變量為字段名和它們的對應(yīng)值。

41創(chuàng)建結(jié)構(gòu)數(shù)組使用賦值語句41單元數(shù)組創(chuàng)建單元數(shù)組獲取單元數(shù)組的數(shù)據(jù)刪除單元和重塑單元數(shù)組42單元數(shù)組創(chuàng)建單元數(shù)組42創(chuàng)建單元數(shù)組用賦值語句創(chuàng)建單元數(shù)組可以使用單元索引和內(nèi)容索引兩種方式創(chuàng)建單元數(shù)組。用cell函數(shù)創(chuàng)建單元數(shù)組使用cell函數(shù),可以預(yù)分配指定大小的空單元數(shù)組,如,下面的語句創(chuàng)建一個空的單元數(shù)組:

B=cell(2,3);

然后可以用賦值語句填充B單元。

43創(chuàng)建單元數(shù)組用賦值語句創(chuàng)建單元數(shù)組43函數(shù)句柄

函數(shù)句柄是一種MATLAB數(shù)據(jù)類型,它包含用于引用函數(shù)的信息。創(chuàng)建函數(shù)句柄時,MATLAB在句柄中保存所有與要運(yùn)行的函數(shù)有關(guān)的信息。

第3章將對函數(shù)句柄進(jìn)行比較詳細(xì)的介紹。44函數(shù)句柄函數(shù)句柄是一種MATLAB數(shù)據(jù)類型,它包含用第3章M文件設(shè)計

變量表達(dá)式流程控制函數(shù)

M文件程序調(diào)試與錯誤處理編程技巧45第3章M文件設(shè)計變量45變量變量的作用范圍局部變量:局部變量的作用范圍僅限于本函數(shù)。全局變量:全局變量用global關(guān)鍵字進(jìn)行聲明,其作用范圍為整個M文件。

變量的存活期

變量的存活期代表變量保持其值的能力。

用persistent關(guān)鍵字聲明固定變量,可以保持變量的值。46變量變量的作用范圍46表達(dá)式數(shù)值表示運(yùn)算符處理字符串表達(dá)式47表達(dá)式數(shù)值表示47數(shù)值表示MATLAB使用傳統(tǒng)的數(shù)值表示方法。對于比較長的數(shù),使用科學(xué)計數(shù)法,用字母e指定以10為底的冪次。虛數(shù)用i或j作為后綴。下面是一些合法的數(shù)值表示:3-990.00019.63972381.60210e-206.02252e231i-3.14159j3e5i

48數(shù)值表示MATLAB使用傳統(tǒng)的數(shù)值表示方法。對于比較運(yùn)算符算術(shù)運(yùn)算符比較運(yùn)算符邏輯運(yùn)算符運(yùn)算符的優(yōu)先級49運(yùn)算符算術(shù)運(yùn)算符49運(yùn)算符的優(yōu)先級按照優(yōu)先級別,各種運(yùn)算符有下面的先后次序。小括號()轉(zhuǎn)置(.')、冪(.^)、復(fù)數(shù)共軛轉(zhuǎn)置(')、矩陣的冪(^)一元的加(+)、一元的減(-)、邏輯否(~)乘(.*)、右除(./)、左除(.\)、矩陣乘(*)、矩陣右除(/)、矩陣左除(\)加(+)、減(-)冒號操作符(:)小于(<)、小于或等于(<=)、大于(>)、大于或等于(>=)、等于(==)、不等于(~=)逐元素AND(&)逐元素OR(|)&&||50運(yùn)算符的優(yōu)先級按照優(yōu)先級別,各種運(yùn)算符有下面的先后次序。50處理字符串表達(dá)式

處理字符串表達(dá)式需要使用eval函數(shù)和feval函數(shù)。

eval函數(shù)可以處理包含MATLAB表達(dá)式、語句或函數(shù)調(diào)用的字符串。

feval函數(shù)與eval函數(shù)的區(qū)別在于,該函數(shù)執(zhí)行函數(shù)而不是MATLAB表達(dá)式。

注意:盡量少用eval函數(shù),因?yàn)槭褂胑val函數(shù)的代碼通常不好讀,不易調(diào)試。

51處理字符串表達(dá)式處理字符串表達(dá)式需要使用eval函數(shù)和fe流程控制條件控制循環(huán)控制錯誤控制程序終止控制52流程控制條件控制52條件控制if/elseif語句switch/case語句比較上面兩種語句,switch/case語句的可讀性更強(qiáng),并且可以比較不同長度的字符串。53條件控制if/elseif語句53循環(huán)控制for循環(huán)while循環(huán)continue命令break命令54循環(huán)控制for循環(huán)54錯誤控制try…catch語句進(jìn)行錯誤捕獲,它把有可能引起異常的語句放在try控制塊中,這樣當(dāng)try控制塊中statement語句引起異常時,catch控制塊就可以捕獲它,并針對不同的錯誤類型,進(jìn)行不同的處理。

55錯誤控制try…catch語句進(jìn)行錯誤捕獲,它把有可能引起異程序終止控制return命令能使當(dāng)前正在運(yùn)行的函數(shù)正常退出,并返回調(diào)用它的函數(shù),繼續(xù)運(yùn)行。

下表比較break,continue和return命令。命令用在何處描述breakfor或while循環(huán)

它出現(xiàn)時,退出循環(huán),在嵌套的循環(huán)中,進(jìn)入相鄰的外層循環(huán)

continuefor或while循環(huán)

在本循環(huán)中跳過剩余的語句,進(jìn)入本循環(huán)的下一次迭代

return任意位置

它出現(xiàn)時,立即退出函數(shù),進(jìn)入函數(shù)的調(diào)用函數(shù)中

56程序終止控制return命令能使當(dāng)前正在運(yùn)行函數(shù)主函數(shù)子函數(shù)匿名函數(shù)嵌套函數(shù)私有函數(shù)重載函數(shù)57函數(shù)主函數(shù)57主函數(shù)任何M文件中的第1個函數(shù)稱為主函數(shù)。

注意:一般使主函數(shù)的名稱與M文件的相同。如果函數(shù)名與文件名不同,必須用文件名調(diào)用函數(shù)。

58主函數(shù)任何M文件中的第1個函數(shù)稱為主函數(shù)。58子函數(shù)M文件中可以包含一個以上的函數(shù)。文件中除主函數(shù)以外的其他函數(shù)稱為子函數(shù),并且它們只對主函數(shù)或同一文件中的其他子函數(shù)可見。

59子函數(shù)M文件中可以包含一個以上的函數(shù)。文件中除主函數(shù)以外的其匿名函數(shù)

使用匿名函數(shù),可以在不必創(chuàng)建M文件的情況下快速創(chuàng)建簡單函數(shù)??梢栽贛ATLAB命令行或任何M文件函數(shù)或腳本中創(chuàng)建匿名函數(shù)。創(chuàng)建匿名函數(shù)的語法格式為:

fhandle=@(arglist)expr

其中,expr表示函數(shù)體,即函數(shù)要完成主要工作的代碼;arglist為要傳遞給函數(shù)的逗號間隔的輸入?yún)?shù)列表。

60匿名函數(shù)使用匿名函數(shù),可以在不必創(chuàng)建M文件的情況下嵌套函數(shù)

可以在一個函數(shù)中嵌套定義一個或多個函數(shù)。嵌套函數(shù)具有類似下面的形式:

functionx=A(p1,p2)…functiony=B(p3)…end…end61嵌套函數(shù)可以在一個函數(shù)中嵌套定義一個或多個函數(shù)。嵌私有函數(shù)

私有函數(shù)是private子目錄中的函數(shù)。它們只對父目錄中的函數(shù)可見。

62私有函數(shù)私有函數(shù)是private子目錄中的函數(shù)。它們重載函數(shù)

有時候同一個函數(shù)可以用于多種情況,對應(yīng)地有不同的輸入?yún)?shù),此時要用到重載函數(shù)。比如繪制二維線形圖的plot函數(shù)就有多種重載形式,下面是其中兩種。

plot(Y)plot(X1,Y1,...)

這兩個函數(shù)具有相同的函數(shù)名,不同的參數(shù)。調(diào)用plot函數(shù)時MATLAB會根據(jù)函數(shù)的參數(shù)自動選擇使用。

63重載函數(shù)有時候同一個函數(shù)可以用于多種情況,對應(yīng)地有不M文件腳本式M文件和函數(shù)式M文件M文件的基本結(jié)構(gòu)函數(shù)的參數(shù)函數(shù)句柄64M文件腳本式M文件和函數(shù)式M文件64腳本式M文件和函數(shù)式M文件腳本式M文件和函數(shù)式M文件的區(qū)別如下表所示。腳本式M文件函數(shù)式M文件不接受輸入?yún)?shù),沒有返回值可以接受輸入?yún)?shù),可以有返回值基于工作空間中的數(shù)據(jù)進(jìn)行操作默認(rèn)時,文件中參數(shù)的作用范圍只限于函數(shù)內(nèi)部

自動完成需要花費(fèi)很多時間的多步操作時使用

擴(kuò)展MATLAB語言功能時使用

65腳本式M文件和函數(shù)式M文件腳本式M文件和函數(shù)式M文件的區(qū)別如M文件的基本結(jié)構(gòu)

一個完整的函數(shù)式M文件應(yīng)該包括函數(shù)定義行、H1行、幫助文本、函數(shù)體、注釋和函數(shù)代碼等方面的內(nèi)容,其中函數(shù)定義行和函數(shù)代碼是必需的。如

function[x,y]=myfun(a,b,c)

函數(shù)定義行

%H1行

–用一行文字來綜述函數(shù)的功能

%幫助文本

–用一行或多行文本解釋如何使用函數(shù),

%在命令行中鍵入"help<functionname>"時可以使用它

%函數(shù)體一般從第一個空白行后開始

%注釋

–描述函數(shù)的行為,輸入輸出的類型等,

%在命令行中鍵入"help<functionname>"時不會顯示這些文本

x=prod(a,b);%開始編寫函數(shù)代碼66M文件的基本結(jié)構(gòu)一個完整的函數(shù)式M文件應(yīng)該包括函數(shù)定義行函數(shù)的參數(shù)檢查輸入?yún)?shù)的個數(shù)傳遞參數(shù)解包varargin中的內(nèi)容打包varargout參數(shù)列表中的varargin和varargout返回輸出參數(shù)67函數(shù)的參數(shù)檢查輸入?yún)?shù)的個數(shù)67檢查輸入?yún)?shù)的個數(shù)

利用nargin和nargout函數(shù)可以確定函數(shù)輸入?yún)?shù)和輸出參數(shù)的個數(shù)。然后可以根據(jù)參數(shù)個數(shù)用條件語句完成不同的任務(wù),例如

functionc=testarg1(a,b)if(nargin==1)c=a.^2;elseif(nargin==2)c=a+b;end

給定一個輸入?yún)?shù)時,函數(shù)計算輸入值的平方;給定兩個輸入?yún)?shù)時,求它們的和。

68檢查輸入?yún)?shù)的個數(shù)利用nargin和narg傳遞參數(shù)

使用varargin和varargout函數(shù)可以傳遞任意個數(shù)的輸入?yún)?shù)或者返回任意個數(shù)的輸出參數(shù)給函數(shù)。

MATLAB把所有指定的輸入?yún)?shù)指定到一個單元數(shù)組中。每個單元可以包含任意大小或類型的數(shù)據(jù)。對于輸出參數(shù),函數(shù)代碼必須把它們打包到一個單元數(shù)組中,這樣,MATLAB就可以把參數(shù)返回給調(diào)用函數(shù)。

69傳遞參數(shù)使用varargin和varargout函數(shù)解包varargin中的內(nèi)容

因?yàn)関arargin將所有輸入?yún)?shù)包含在一個單元數(shù)組中,所以有必要使用單元數(shù)組索引來提取數(shù)據(jù)。例如y(n)=varargin{n}(2);

其中,索引表達(dá)式{n}獲取varargin的第n個單元。表達(dá)式(2)表示單元內(nèi)容的第二個元素。

70解包varargin中的內(nèi)容因?yàn)関ararg打包varargout當(dāng)允許有任意多個輸出參數(shù)時,必須將所有輸出打包到varargout單元數(shù)組中。使用nargout確定輸出參數(shù)的個數(shù)。

71打包varargout當(dāng)允許有任意多個輸出參數(shù)時,必須將所有參數(shù)列表中的varargin和varargoutvarargin或varargout必須出現(xiàn)在參數(shù)列表的最后,即函數(shù)調(diào)用必須首先指定必要的參數(shù)。

72參數(shù)列表中的varargin和varargoutvararg返回輸出參數(shù)放在函數(shù)定義行中等號左側(cè)的任何參數(shù)都是調(diào)用函數(shù)的返回值。如果傳遞任何函數(shù)可以修改的輸入?yún)?shù),需要把相同的參數(shù)作為輸出參數(shù),這樣,調(diào)用函數(shù)可以獲得更新后的值。

73返回輸出參數(shù)放在函數(shù)定義行中等號左側(cè)的任何參數(shù)都是調(diào)用函數(shù)的函數(shù)句柄在MATLAB中,在函數(shù)名前用@符號創(chuàng)建一個函數(shù)句柄。下面的例子為humps函數(shù)創(chuàng)建一個函數(shù)句柄并將它指定給變量fhandle。

fhandle=@humps;

可以像傳遞其它變量一樣將句柄傳遞給另一個函數(shù)。

用MATLAB的feval命令運(yùn)行函數(shù)句柄的目標(biāo)函數(shù)。用函數(shù)句柄使用本命令的語法為:

feval(fhandle,arg1,arg2,...,argn)

74函數(shù)句柄在MATLAB中,在函數(shù)名前用@符號創(chuàng)建一個函數(shù)句柄程序調(diào)試和錯誤處理用try-catch語句檢查錯誤錯誤和警告信息用Debug菜單進(jìn)行調(diào)試75程序調(diào)試和錯誤處理用try-catch語句檢查錯誤75編程技巧矢量化預(yù)分配內(nèi)存空間程序運(yùn)行情況監(jiān)測--Profiler76編程技巧矢量化76第4章圖形繪制

創(chuàng)建二維圖形創(chuàng)建三維圖形77第4章圖形繪制創(chuàng)建二維圖形77創(chuàng)建二維圖形線形圖、條形圖和面積圖餅圖誤差條圖散點(diǎn)圖直方圖對數(shù)坐標(biāo)圖和半對數(shù)坐標(biāo)圖多軸圖極坐標(biāo)圖帕累托圖火柴桿圖階梯圖玫瑰花圖函數(shù)的圖形動畫78創(chuàng)建二維圖形線形圖、條形圖和面積圖極坐標(biāo)圖78函數(shù)的圖形可以用fplot函數(shù)在指定范圍內(nèi)繪函數(shù)的圖形。函數(shù)必須是y=f(x)形式的,其中,x是矢量,為自變量;y為矢量,為因變量。

創(chuàng)建一個M文件myfun,它返回一個兩列矩陣。

functionY=myfun(x)Y(:,1)=200*sin(x(:))./x(:);Y(:,2)=x(:).^2;創(chuàng)建一個指向myfun的函數(shù)句柄。

fh=@myfun;用下面的語句繪圖。

fplot(fh,[-2020])

生成右圖。

79函數(shù)的圖形可以用fplot函數(shù)在指定范圍內(nèi)繪函數(shù)的圖形。函數(shù)創(chuàng)建動畫在MATLAB中,可以用兩種方法創(chuàng)建動畫序列:·

保存很多不同的圖片,然后以電影的形式進(jìn)行顯示;·

在屏幕上連續(xù)擦除和重畫對象。每次重畫都作遞增式的改變。80創(chuàng)建動畫在MATLAB中,可以用兩種方法創(chuàng)建動畫序列:80繪制三維圖形用給定數(shù)據(jù)繪三維線形圖用給定數(shù)據(jù)繪三維表面圖表面圖繪制的數(shù)據(jù)格式問題函數(shù)的曲線和曲面二次曲面樣條曲線和曲面多邊形對象模型消隱控制三維圖形的場景效果設(shè)置81繪制三維圖形用給定數(shù)據(jù)繪三維線形圖81用給定數(shù)據(jù)繪三維線形圖利用plot3函數(shù)可以繪制三維線形圖。用plot3函數(shù)繪圖時,需要指定線條穿過的點(diǎn)的坐標(biāo)。假設(shè)X,Y和Z是3個矢量,分別表示一系列點(diǎn)的x坐標(biāo)、y坐標(biāo)和z坐標(biāo),則下面的命令創(chuàng)建一條經(jīng)過這些點(diǎn)的三維曲線。

plot3(X,Y,Z)82用給定數(shù)據(jù)繪三維線形圖利用plot3函數(shù)可以繪制三維線形圖。用給定數(shù)據(jù)繪三維表面圖

當(dāng)繪圖數(shù)據(jù)已知時,可以用mesh,surf和surfl等函數(shù)直接繪制網(wǎng)格圖、刻面圖和曲面圖。網(wǎng)格圖和刻面圖又分三角形和四邊形兩種。83用給定數(shù)據(jù)繪三維表面圖當(dāng)繪圖數(shù)據(jù)已知時,可以用mesh,表面圖繪制的數(shù)據(jù)格式問題MATLAB繪制表面圖時數(shù)據(jù)格式是矩陣格式的,而我們通常得到的采樣數(shù)據(jù)或數(shù)值計算數(shù)據(jù)是點(diǎn)坐標(biāo)格式的。所以,用MATLAB函數(shù)繪表面圖以前,需要先轉(zhuǎn)換數(shù)據(jù)格式。xyzx(1,1)y(1,1)z(1,1)x(1,2)y(1,2)z(1,2)……x(1,n)y(1,n)z(1,n)x(2,1)y(2,1)z(2,1)……x(m,n)y(m,n)z(m,n)X矩陣x(1,1)x(1,2)…x(1,n)x(2,1)x(2,2)…x(2,n)……x(m,1)x(m,2)…x(m,n)同上構(gòu)造Y矩陣和Z矩陣84表面圖繪制的數(shù)據(jù)格式問題MATLAB繪制表面圖時數(shù)據(jù)格式是矩函數(shù)的曲線和曲面使用ezplot函數(shù)和ezplot3函數(shù),可以很方便地繪制二維和三維參數(shù)曲線;使用ezpolar函數(shù),可以在極坐標(biāo)中繪制參數(shù)曲線。

用ezmesh函數(shù)繪制函數(shù)表示的網(wǎng)格。函數(shù)形式可以是一般形式,也可以是參數(shù)形式。用ezsurf函數(shù)繪制函數(shù)表示的曲面。

85函數(shù)的曲線和曲面使用ezplot函數(shù)和ezplot3函數(shù),可二次曲面用cylinder函數(shù)生成柱面。

用sphere函數(shù)生成球面。

86二次曲面用cylinder函數(shù)生成柱面。86樣條曲線和曲面利用MATLAB的樣條工具箱,可以繪制多種樣條曲線和曲面。

利用MATLAB樣條工具箱,可以繪制樣條曲面,包括三次樣條曲面、B樣條曲面和有理樣條曲面等。

87樣條曲線和曲面利用MATLAB的樣條工具箱,可以繪制多種樣條多邊形對象模型

由一個或多個相連或不相連的多邊形組成的對象稱為面片圖形對象,也常稱為多邊形對象模型。

創(chuàng)建多邊形對象,需要定義面片。只需要指定頂點(diǎn)坐標(biāo)和某種形式的顏色數(shù)據(jù)就可以定義面片了。面片支持多種著色方式,這一點(diǎn)對于用幾何形體進(jìn)行數(shù)據(jù)可視化很有用。定義面片主要有兩種方式:指定每個多邊形的頂點(diǎn)坐標(biāo),MATLAB按順序連接這些頂點(diǎn),形成面片。指定每個頂點(diǎn)的坐標(biāo)值和一個指定如何把這些點(diǎn)連成面的矩陣。

88多邊形對象模型由一個或多個相連或不相連的多邊形組成的消隱處理

默認(rèn)時,MATLAB繪制三維圖形時會進(jìn)行消隱處理。利用下面的命令,可以取消消隱:

hiddenoff89消隱處理默認(rèn)時,MATLAB繪制三維圖形時會進(jìn)行消隱三維圖形的場景效果設(shè)置

繪制三維圖以后,可以對它進(jìn)行著色,添加光照,設(shè)置材質(zhì)、紋理、透明性并進(jìn)行交互操作。

90三維圖形的場景效果設(shè)置繪制三維圖以后,可以對它進(jìn)行著第5章圖形編程

句柄圖形對象基本圖形元素的繪制圖形的著色圖形變換定制圖形交互繪圖91第5章圖形編程句柄圖形對象91句柄圖形對象句柄圖形對象簡介Figure對象Root對象對象的屬性92句柄圖形對象句柄圖形對象簡介92句柄圖形對象的組織結(jié)構(gòu)句柄圖形對象的層次體系如下圖所示。RootFigureUI對象Axes隱藏的AnnotationAxes對象核心對象繪圖對象組對象Annotation對象93句柄圖形對象的組織結(jié)構(gòu)句柄圖形對象的層次體系如下圖所示。RoFigure對象Figure對象是MATLAB顯示圖形的窗口。圖形窗口包括菜單、工具條、用戶界面對象、上下文菜單、坐標(biāo)系和坐標(biāo)系的子對象等。

94Figure對象Figure對象是MATLAB顯示圖形的窗口Root對象Root對象是Figure對象的父對象。不能實(shí)例化Root對象,因?yàn)樗淖饔弥皇潜4嫘畔?,它保存MATLAB狀態(tài)、計算機(jī)系統(tǒng)和MATLAB默認(rèn)設(shè)置等信息。

95Root對象Root對象是Figure對象的父對象。不能實(shí)例對象的屬性圖形對象的屬性控制它外觀和行為的很多方面。屬性包括了諸如對象類型、父對象、子對象、可見性之類的一般信息,也包括該對象類型的獨(dú)有信息。例如,在任何給定的Figure對象上,可以知道最后按下的是哪個鍵、鼠標(biāo)光標(biāo)的位置或者最近選擇的菜單的句柄等。

96對象的屬性圖形對象的屬性控制它外觀和行為的很多方面。屬性包括基本圖形元素的繪制繪制直線段、多義線和曲線—line函數(shù)繪制矩形、圓角矩形、橢圓、圓及對應(yīng)的區(qū)域圖形—rectangle函數(shù)繪制多邊形—patch函數(shù)繪制文本—text函數(shù)97基本圖形元素的繪制繪制直線段、多義線和曲線—line函數(shù)97繪制直線段和多義線MATLAB中的直線段和多義線用Line對象表示。用line函數(shù)創(chuàng)建直線段對象。按照直線逼近的思路,還可以用該函數(shù)創(chuàng)建曲線。

下面利用line函數(shù)生成多義線:

X2=[192028];Y2=[1251032];line(X2,Y2,'LineWidth',2,'Marker','+')

98繪制直線段和多義線MATLAB中的直線段和多義線用Line對繪制曲線按照直線逼近的思路,可以用line函數(shù)創(chuàng)建曲線。下面用多條直線段逼近余弦曲線,左圖用10條直線段逼近,右圖用20條直線段逼近。99繪制曲線按照直線逼近的思路,可以用line函數(shù)創(chuàng)建曲線。下面繪制矩形、圓角矩形、橢圓、圓及對應(yīng)的區(qū)域圖形MATLAB中,矩形、圓角矩形、橢圓、圓及對應(yīng)的區(qū)域圖形都用Rectangle對象表示。用rectangle函數(shù)可以創(chuàng)建Rectangle對象。

在同一個坐標(biāo)系中創(chuàng)建矩形、圓角矩形、橢圓和圓各一個,使用了不同的線型和線寬。

rectangle('Position',[1,1,20,10],'LineWidth',3);rectangle('Position',[5,3,10,15],'Curvature',[11]);rectangle('Position',[5,3,10,10],'Curvature',[11],'LineWidth',3);rectangle('Position',[4,5,12,8],'Curvature',.4,'LineStyle','--');axisequal100繪制矩形、圓角矩形、橢圓、圓及對應(yīng)的區(qū)域圖形MATLAB中,繪制多邊形任意多邊形及多邊形區(qū)域是用Patch對象表示的,該對象由patch函數(shù)創(chuàng)建。

使用patch函數(shù)生成面片,有兩種方法,一種是頂點(diǎn)/顏色法,通過指定每個小面的頂點(diǎn)坐標(biāo)和顏色來創(chuàng)建;另一種是頂點(diǎn)/小面法,通過指定所有頂點(diǎn)的坐標(biāo)和各小面的頂點(diǎn)和顏色來創(chuàng)建。

101繪制多邊形任意多邊形及多邊形區(qū)域是用Patch對象表示的,該繪制文本文本用Text對象表示,該對象由text函數(shù)創(chuàng)建,text函數(shù)是創(chuàng)建文本圖形對象的低級函數(shù)。使用它將文本字符串放在指定的位置上。

下面創(chuàng)建多種形式的文本:

text(10,30,'添加文本1');text(10,25,'添加文本2','FontSize',20,'FontAngle','Italic');text(10,20,'添加文本3','FontName','黑體','FontWeight','bold');text(10,10,'添加文本4','Rotation',45);axis([520835])

102繪制文本文本用Text對象表示,該對象由text函數(shù)創(chuàng)建,t圖形的著色多邊形的單色填充多邊形的插值著色對同一個多邊形,左圖為單色填充效果,右圖為插值著色效果。103圖形的著色多邊形的單色填充103圖形變換在MATLAB中實(shí)現(xiàn)圖形變換,需要用到hgtransform對象,使用該對象的Matrix屬性可以給hgtransform對象的所有子對象應(yīng)用一個變換。典型的變換包括旋轉(zhuǎn)、平移和縮放。

用hgtransform函數(shù)創(chuàng)建hgtransform圖形對象。使用makehgtform函數(shù)創(chuàng)建4×4的變換矩陣。

104圖形變換在MATLAB中實(shí)現(xiàn)圖形變換,需要用到hgtrans定制圖形前面介紹了在MATLAB中創(chuàng)建基本圖形元素的方法。有了基本圖形元素,就可以靈活運(yùn)用它們,形成更復(fù)雜的圖形。

105定制圖形前面介紹了在MATLAB中創(chuàng)建基本圖形元素的方法。有第6章高等數(shù)學(xué)計算

函數(shù)和極限導(dǎo)數(shù)極限和導(dǎo)數(shù)的應(yīng)用不定積分和定積分空間解析幾何與向量代數(shù)多元函數(shù)的極限和求導(dǎo)級數(shù)微分方程106第6章高等數(shù)學(xué)計算函數(shù)和極限106函數(shù)復(fù)合函數(shù)運(yùn)算符號表達(dá)式的復(fù)合函數(shù)運(yùn)算主要是通過函數(shù)compose來實(shí)現(xiàn)的。

反函數(shù)符號表達(dá)式的反函數(shù)運(yùn)算主要是通過函數(shù)finverse來實(shí)現(xiàn)的。函數(shù)的圖形

107函數(shù)復(fù)合函數(shù)運(yùn)算107極限符號極限由函數(shù)limit來實(shí)現(xiàn)。

例:求數(shù)列的極限。解:在命令窗口鍵入下面的命令行:

symsn;limit((n+(-1)^(n-1))/n,n,inf)得

ans=1108極限符號極限由函數(shù)limit來實(shí)現(xiàn)。108導(dǎo)數(shù)求函數(shù)的導(dǎo)數(shù)求隱函數(shù)的導(dǎo)數(shù)求參數(shù)方程確定的函數(shù)的導(dǎo)數(shù)109導(dǎo)數(shù)求函數(shù)的導(dǎo)數(shù)109求函數(shù)的導(dǎo)數(shù)用diff函數(shù)進(jìn)行函數(shù)求導(dǎo)。例:求函數(shù)的導(dǎo)數(shù)。解:在命令窗口鍵入下面的命令行:symsx;f=sym('(x-1)^3/(x+1)');B=diff(f)得B=3*(x-1)^2/(x+1)-(x-1)^3/(x+1)^2

110求函數(shù)的導(dǎo)數(shù)用diff函數(shù)進(jìn)行函數(shù)求導(dǎo)。110求隱函數(shù)的導(dǎo)數(shù)對于隱函數(shù)F(x,y)=0,導(dǎo)數(shù)

111求隱函數(shù)的導(dǎo)數(shù)對于隱函數(shù)F(x,y)=0,導(dǎo)數(shù)111求參數(shù)方程確定的函數(shù)的導(dǎo)數(shù)對于參數(shù)方程

導(dǎo)數(shù)

112求參數(shù)方程確定的函數(shù)的導(dǎo)數(shù)對于參數(shù)方程112極限和導(dǎo)數(shù)的應(yīng)用漸近線極值拐點(diǎn)113極限和導(dǎo)數(shù)的應(yīng)用漸近線113不定積分和定積分不定積分求定積分定積分的近似計算定積分的應(yīng)用多重積分114不定積分和定積分不定積分114不定積分MATLAB中,用符號工具箱中的int函數(shù)求函數(shù)的不定積分和定積分。用int函數(shù)的前兩種調(diào)用格式求不定積分。

例:求不定積分。解:在命令窗口鍵入symsxnint(x^n)或symsxnint(x^n,x)得ans=x^(n+1)/(n+1)115不定積分MATLAB中,用符號工具箱中的int函數(shù)求函數(shù)的不求定積分用int函數(shù)的后兩種調(diào)用格式求定積分。

例:求定積分。解:在命令窗口鍵入symsxint(x^7,0,1)

得ans=1/8116求定積分用int函數(shù)的后兩種調(diào)用格式求定積分。116定積分的近似計算用MATLAB提供的trapz函數(shù)可以用梯形法近似求取定積分的值。

例:積分的精確值為2,下面用trapz函數(shù)在均勻間隔的網(wǎng)格上求該積分的數(shù)值近似。

X=0:pi/100:pi;Y=sin(X);Z=trapz(X,Y)Z=1.9998117定積分的近似計算用MATLAB提供的trapz函數(shù)可以用梯形定積分的應(yīng)用使用定積分,可以解決幾何和物理中的很多實(shí)際問題,比如求平面圖形的面積、求曲面圍成的體積、求曲線的弧長、求功等。

118定積分的應(yīng)用使用定積分,可以解決幾何和物理中的很多實(shí)際問題,多重積分可以用int函數(shù)求函數(shù)的多重積分。

例:求二重積分。解:在命令窗口鍵入symsxy;int(int(x*y,y,2),y,1,2)得

ans=9/8

119多重積分可以用int函數(shù)求函數(shù)的多重積分。119空間解析幾何與向量代數(shù)空間向量運(yùn)算曲面及其方程120空間解析幾何與向量代數(shù)空間向量運(yùn)算120空間向量運(yùn)算已知向量a={2,1,-1},b={1,-1,2},計算a+b,a-b,2a,a·b,a×b。解:在命令窗口鍵入下面的命令行:a=[21-1];b=[1-12];c=a+bd=a-be=2*af=dot(a,b)g=cross(a,b)得

c=301d=

12-3e=42-2f=-1g=1-5-3上面分別用dot和cross函數(shù)計算向量的點(diǎn)積和叉積121空間向量運(yùn)算已知向量a={2,1,-1},b={1,-1,2曲面及其方程利用MATLAB提供的繪圖函數(shù),可以繪制給定函數(shù)的曲面和二次曲面。相關(guān)內(nèi)容,請參見6.2.4和6.2.5小節(jié)的介紹。

122曲面及其方程利用MATLAB提供的繪圖函數(shù),可以繪制給定函數(shù)多元函數(shù)的極限和求導(dǎo)求多元函數(shù)的極限求多元函數(shù)的導(dǎo)數(shù)求二元隱函數(shù)的導(dǎo)數(shù)123多元函數(shù)的極限和求導(dǎo)求多元函數(shù)的極限123求多元函數(shù)的極限例:求極限。解:在命令行鍵入symsxy;limit((sin(x+y)-sin(x))/y,y,0)ans=cos(x)124求多元函數(shù)的極限例:求極限求多元函數(shù)的導(dǎo)數(shù)用diff函數(shù)計算多元函數(shù)的偏導(dǎo)數(shù),需要指定相對于哪個變量求偏導(dǎo)數(shù)。

例:求函數(shù)f=sin(st)的偏導(dǎo)數(shù)。解:在命令窗口鍵入下面的命令行

symsstf=sin(s*t)diff(f,t)ans=cos(s*t)*s

125求多元函數(shù)的導(dǎo)數(shù)用diff函數(shù)計算多元函數(shù)的偏導(dǎo)數(shù),需要指定求二元隱函數(shù)的導(dǎo)數(shù)對于隱函數(shù)F(x,y,z)=0,導(dǎo)數(shù)

126求二元隱函數(shù)的導(dǎo)數(shù)對于隱函數(shù)F(x,y,z)=0,導(dǎo)數(shù)12級數(shù)級數(shù)求和泰勒級數(shù)展開傅立葉級數(shù)展開127級數(shù)級數(shù)求和127級數(shù)求和可以用symsum函數(shù)求級數(shù)的和。例:求級數(shù)和。解:在命令窗口鍵入

symsxks1=symsum(1/k^2,1,inf)s2=symsum(x^k,k,0,inf)s1=1/6*pi^2s2=-1/(x-1)

128級數(shù)求和可以用symsum函數(shù)求級數(shù)的和。128泰勒級數(shù)展開用taylor函數(shù)進(jìn)行泰勒級數(shù)展開。

例:求函數(shù)的泰勒級數(shù)展開,取前7項(xiàng)。解:在命令窗口鍵入下面的代碼

symsxf=1/(5+4*cos(x))T=taylor(f,8)返回

T=1/9+2/81*x^2+5/1458*x^4+49/131220*x^6

129泰勒級數(shù)展開用taylor函數(shù)進(jìn)行泰勒級數(shù)展開。129傅立葉級數(shù)展開通過編寫程序,可以實(shí)現(xiàn)函數(shù)的傅立葉級數(shù)展開。130傅立葉級數(shù)展開通過編寫程序,可以實(shí)現(xiàn)函數(shù)的傅立葉級數(shù)展開。1微分方程微分方程可以通過函數(shù)dsolve求解。例:求微分方程的通解,y為應(yīng)變量,t為默認(rèn)的自變量。解:輸入下面的命令行

dsolve('Dy=1+y^2')返回

ans=tan(t+C1)即為所求的通解。下面指定初始條件y|x=0=1。

y=dsolve('Dy=1+y^2','y(0)=1')生成

y=

tan(t+1/4*pi)131微分方程微分方程可以通過函數(shù)dsolve求解。131第7章線性代數(shù)

矩陣分析矩陣的分解線性方程組的求解矩陣的特征值和特征向量符號矩陣稀疏矩陣132第7章線性代數(shù)矩陣分析132矩陣分析矩陣的行列式矩陣的四則運(yùn)算矩陣的冪和平方根矩陣的指數(shù)和對數(shù)矩陣的翻轉(zhuǎn)矩陣的逆運(yùn)算矩陣的跡矩陣的范數(shù)矩陣的條件數(shù)矩陣的重塑矩陣的邏輯運(yùn)算矩陣的初等變換矩陣的秩133矩陣分析矩陣的行列式矩陣的范數(shù)133矩陣的行列式可用函數(shù)det求矩陣的行列式大小。

例:a=[120;25-1;410-1];b=det(a)b=1134矩陣的行列式可用函數(shù)det求矩陣的行列式大小。134矩陣的四則運(yùn)算數(shù)組和矩陣的加減運(yùn)算使用加號和減號,即“+”和“-”。

矩陣相乘使用“*”運(yùn)算符。如果只是將兩個矩陣中相同位置的元素相乘,使用“.*”運(yùn)算符。

矩陣除法有左除和右除的區(qū)別,分別使用“\”和“/”運(yùn)算符。

與“\”和“/”運(yùn)算符相對應(yīng),也有“.\”和“./”運(yùn)算符,分別用于將兩個矩陣中的對應(yīng)元素相除。

矩陣與常數(shù)的代數(shù)運(yùn)算,可以直接使用上面的各種運(yùn)算符。

135矩陣的四則運(yùn)算數(shù)組和矩陣的加減運(yùn)算使用加號和減號,即“+”和矩陣的冪和平方根矩陣的冪運(yùn)算使用運(yùn)算符“^”,冪運(yùn)算具有類似X^p的形式。如果p是整數(shù),則冪通過重復(fù)求平方來計算;如果該整數(shù)為負(fù)值,則首先計算X的逆;如果p取其他值,則計算需要用到特征值和特征矢量,即如果[V,D]=eig(X),則X^p=V*D.^p/V。用sqrtm函數(shù)求矩陣的平方根。

136矩陣的冪和平方根矩陣的冪運(yùn)算使用運(yùn)算符“^”,冪運(yùn)算具有類似矩陣的指數(shù)和對數(shù)矩陣的指數(shù)運(yùn)算用expm函數(shù)實(shí)現(xiàn)。矩陣的對數(shù)運(yùn)算用logm函數(shù)實(shí)現(xiàn)。

137矩陣的指數(shù)和對數(shù)矩陣的指數(shù)運(yùn)算用expm函數(shù)實(shí)現(xiàn)。137矩陣的翻轉(zhuǎn)用fliplr函數(shù)左右翻轉(zhuǎn)矩陣;用flipud函數(shù)上下翻轉(zhuǎn)矩陣;用flipdim函數(shù)沿指定方向翻轉(zhuǎn)矩陣;用transpose函數(shù)沿主對角線翻轉(zhuǎn)矩陣。

138矩陣的翻轉(zhuǎn)用fliplr函數(shù)左右翻轉(zhuǎn)矩陣;138矩陣的逆運(yùn)算用函數(shù)inv實(shí)現(xiàn)矩陣的逆運(yùn)算。

由函數(shù)pinv實(shí)現(xiàn)矩陣的偽逆運(yùn)算。。

139矩陣的逆運(yùn)算用函數(shù)inv實(shí)現(xiàn)矩陣的逆運(yùn)算。139矩陣的跡矩陣的跡是指矩陣所有對角線元素的和。在MATLAB中,矩陣的跡可由函數(shù)trace計算得到。

140矩陣的跡矩陣的跡是指矩陣所有對角線元素的和。在MATLAB中矩陣的范數(shù)矩陣的范數(shù)運(yùn)算可由函數(shù)norm來實(shí)現(xiàn),具有norm(A),norm(A,1),norm(A,2),norm(A,inf),norm(A,’fro’)等形式,分別代表矩陣的范數(shù)運(yùn)算、1-范數(shù)運(yùn)算、7-范數(shù)運(yùn)算、無窮大范數(shù)運(yùn)算和F-范數(shù)運(yùn)算。

141矩陣的范數(shù)矩陣的范數(shù)運(yùn)算可由函數(shù)norm來實(shí)現(xiàn),具有norm矩陣的條件數(shù)條件數(shù)的值代表矩陣“病態(tài)”程度的大小。在MATLAB中,矩陣的條件數(shù)可分別由函數(shù)cond(A),condest(A)或rcond(A)計算得到,它們分別計算矩陣的條件數(shù)值、1-范數(shù)矩陣條件數(shù)值和矩陣的逆條件數(shù)值。

142矩陣的條件數(shù)條件數(shù)的值代表矩陣“病態(tài)”程度的大小。在MATL矩陣的重塑用reshape函數(shù)進(jìn)行矩陣重塑。下面將一個3×4的矩陣重塑為2×6的。例:

A=[14710;25811;36912]A=147102581136912B=reshape(A,2,6)B=1357911

24681012143矩陣的重塑用reshape函數(shù)進(jìn)行矩陣重塑。下面將一個3×4矩陣的邏輯運(yùn)算使用邏輯運(yùn)算符,可以直接對數(shù)組或矩陣進(jìn)行邏輯運(yùn)算,包括邏輯非、邏輯或、邏輯與和邏輯異或運(yùn)算。144矩陣的邏輯運(yùn)算使用邏輯運(yùn)算符,可以直接對數(shù)組或矩陣進(jìn)行邏輯運(yùn)矩陣的初等變換用rref函數(shù)進(jìn)行矩陣的初等行變換。例:A=[1218;12310;23113;1229]A=121812310231131229B=rref(A)B=1003010200110000

145矩陣的初等變換用rref函數(shù)進(jìn)行矩陣的初等行變換。145矩陣的秩用函數(shù)rank求矩陣的秩。

例:a=[120;25-1;410-1];b=rank(a)b=3

146矩陣的秩用函數(shù)rank求矩陣的秩。146矩陣的分解矩陣的LU分解矩陣的QR分解矩陣的QZ分解矩陣的喬累斯基分解矩陣的奇異值分解矩陣的特征值分解矩陣的Schur分解147矩陣的分解矩陣的LU分解147矩陣的LU分解矩陣的LU分解是線性方程組求解方法中高斯消去法的基礎(chǔ),在MATLAB中由函數(shù)lu來實(shí)現(xiàn)。

148矩陣的LU分解矩陣的LU分解是線性方程組求解方法中高斯消去法矩陣的QR分解在MATLAB中,QR分解可由函數(shù)qr實(shí)現(xiàn)。常用的調(diào)用格式如下:

[B,C]=qr(A)返回的矩陣C為上三角矩陣,矩陣B為滿秩矩陣。

[Q,R,E]=qr(A)

返回的矩陣E是置換矩陣,矩陣R是上三角矩陣,矩陣Q是滿秩矩陣。上述矩陣滿足關(guān)系A(chǔ)*E=Q*R。

149矩陣的QR分解在MATLAB中,QR分解可由函數(shù)qr實(shí)現(xiàn)。常矩陣的QZ分解在MATLAB中,QZ分解可由函數(shù)qz來實(shí)現(xiàn)。qz函數(shù)常用的調(diào)用格式如下:

[AA,BB,Q,Z,V]=qz(A,B)要求矩陣A,B是方陣。產(chǎn)生的矩陣AA,BB是上三角矩陣,Q,Z是正交矩陣,矩陣V是特征矢量矩陣。其中,滿足Q*A*Z=AA與Q*B*Z=BB。

[AA,BB,Q,Z,V]=qz(A,B,flag)

對于方陣A,B的QZ分解取決于參數(shù)flag。參數(shù)flag可取'complex'與'real'。

150矩陣的QZ分解在MATLAB中,QZ分解可由函數(shù)qz來實(shí)現(xiàn)。矩陣的喬累斯基分解設(shè)矩陣A為n階對稱正定矩陣,則A矩陣可分解為LL

,即A=LL

。其中,矩陣L是上三角矩陣。此時,這種分解就稱為喬累斯基分解。在MATLAB中,喬累斯基分解由函數(shù)chol實(shí)現(xiàn)。

151矩陣的喬累斯基分解設(shè)矩陣A為n階對稱正定矩陣,則A矩陣可分解矩陣的奇異值分解在MATLAB中,矩陣的奇異值分解由函數(shù)svd來實(shí)現(xiàn),其調(diào)用格式為

[b,c,d]=svd(A)152矩陣的奇異值分解在MATLAB中,矩陣的奇異值分解由函數(shù)sv矩陣的特征值分解在線性代數(shù)中,很多情況下需要求矩陣的特征值。MATLAB中求矩陣特征值的函數(shù)是eig和eigs。其中函數(shù)eigs主要應(yīng)用于稀疏矩陣。

153矩陣的特征值分解在線性代數(shù)中,很多情況下需要求矩陣的特征值。矩陣的Schur分解在MATLAB中,矩陣的Schur分解由Schur函數(shù)來實(shí)現(xiàn),其調(diào)用格式為

[b,c]=schur(A)其中c矩陣為Schur矩陣。

154矩陣的Schur分解在MATLAB中,矩陣的Schur分解由線性方程組的求解方形系統(tǒng)超定系統(tǒng)不定系統(tǒng)155線性方程組的求解方形系統(tǒng)155矩陣的特征值和特征向量在MATLAB中,矩陣的特征值運(yùn)算用函數(shù)eig或eigs實(shí)現(xiàn)。其中,eigs函數(shù)主要針對矩陣為稀疏矩陣的情況。

156矩陣的特征值和特征向量在MATLAB中,矩陣的特征值運(yùn)算用函符號矩陣符號矩陣的四則運(yùn)算符號矩陣的轉(zhuǎn)置運(yùn)算符號矩陣的行列式運(yùn)算符號矩陣的求逆運(yùn)算符號矩陣的求秩運(yùn)算符號矩陣的常用函數(shù)運(yùn)算符號矩陣常用線性方程(組)的求解157符號矩陣符號矩陣的四則運(yùn)算157稀疏矩陣MATLAB中,創(chuàng)建稀疏矩陣一般用函數(shù)sparse或spdiags來實(shí)現(xiàn)。

稀疏矩陣由于存儲空間變小,而且MATLAB專門開發(fā)了針對它的算法,因此對稀疏矩陣的運(yùn)算速度也非???。

158稀疏矩陣MATLAB中,創(chuàng)建稀疏矩陣一般用函數(shù)sparse或第8章概率論與數(shù)理統(tǒng)計的MATLAB實(shí)現(xiàn)

隨機(jī)變量及其分布多維隨機(jī)變量及其分布隨機(jī)變量的數(shù)字特征樣本描述參數(shù)估計假設(shè)檢驗(yàn)方差分析一元線性回歸159第8章概率論與數(shù)理統(tǒng)計的MATLAB實(shí)現(xiàn)隨機(jī)變量隨機(jī)變量及其分布離散型隨機(jī)變量及其分布律

連續(xù)型隨機(jī)變量及其概率密度

分布函數(shù)

逆累加分布函數(shù)

160隨機(jī)變量及其分布離散型隨機(jī)變量及其分布律160離散型隨機(jī)變量及其分布二項(xiàng)分布泊松分布離散均勻分布幾何分布超幾何分布161離散型隨機(jī)變量及其分布二項(xiàng)分布161連續(xù)型隨機(jī)變量及其概率密度連續(xù)型均勻分布指數(shù)分布正態(tài)分布162連續(xù)型隨機(jī)變量及其概率密度連續(xù)型均勻分布162分布函數(shù)對于離散型隨機(jī)變量X,設(shè)x為任意實(shí)數(shù),X的分布函數(shù)為對于連續(xù)型隨機(jī)變量X,假設(shè)其概率密度為f(x),則其分布函數(shù)為163分布函數(shù)對于離散型隨機(jī)變量X,設(shè)x為任意實(shí)數(shù),X的分布函數(shù)為逆累加分布函數(shù)逆累加分布函數(shù)是累加分布函數(shù)的逆函數(shù)。利用逆累加分布函數(shù),可以求得滿足給定概率時隨機(jī)變量對應(yīng)的置信區(qū)間的最小值和最大值。

164逆累加分布函數(shù)逆累加分布函數(shù)是累加分布函數(shù)的逆函數(shù)。利用逆累多維隨機(jī)變量及其分布用mvnpdf和mvncdf函數(shù)可以計算二維正態(tài)分布隨機(jī)變量在指定位置處的概率和累積分布函數(shù)值。下面左圖和右圖分別為二維正態(tài)分布隨機(jī)變量的概率密度圖和累積分布圖。165多維隨機(jī)變量及其分布用mvnpdf和mvncdf函數(shù)可以計算隨機(jī)變量的數(shù)字特征期望方差常見分布的數(shù)學(xué)期望和方差協(xié)方差和相關(guān)系數(shù)矩和協(xié)方差矩陣166隨機(jī)變量的數(shù)字特征期望166樣本描述集中趨勢包括算術(shù)平均值、幾何均值、調(diào)和均值、中值和截尾均值等。離中趨勢包括均值絕對差、極差、方差和標(biāo)準(zhǔn)差等。抽樣分布包括卡方分布、t分布和F分布等。167樣本描述集中趨勢167參數(shù)估計點(diǎn)估計可以用矩法和最大似然法進(jìn)行參數(shù)估計。區(qū)間估計可以用mle函數(shù),利用最大似然估計法進(jìn)行參數(shù)的區(qū)間估計。常見分布的參數(shù)估計

MATLAB統(tǒng)計工具箱提供了多種函數(shù)的參數(shù)估計函數(shù),詳見課本。168參數(shù)估計點(diǎn)估計168假設(shè)檢驗(yàn)方差已知時的均值檢驗(yàn)方差未知時單個正態(tài)總體均值的檢驗(yàn)方差未知時兩個正態(tài)總體均值差的檢驗(yàn)基于成對數(shù)據(jù)的檢驗(yàn)分布擬合檢驗(yàn)169假設(shè)檢驗(yàn)方差已知時的均值檢驗(yàn)169方差已知時的均值檢驗(yàn)用ztest函數(shù)在給定方差的條件下檢驗(yàn)單樣本數(shù)據(jù)是否服從給定均值的正態(tài)分布。

170方差已知時的均值檢驗(yàn)用ztest函數(shù)在給定方差的條件下檢驗(yàn)單方差未知時單個正態(tài)總體均值的假設(shè)檢驗(yàn)t檢驗(yàn)是用小樣本檢驗(yàn)總體參數(shù),特點(diǎn)是在均方差不知道的情況下,可以檢驗(yàn)樣本平均數(shù)的顯著性。用ttest函數(shù)進(jìn)行樣本均值的t檢驗(yàn)。

171方差未知時單個正態(tài)總體均值的假設(shè)檢驗(yàn)t檢驗(yàn)是用小樣本檢驗(yàn)總體方差未知時兩個正態(tài)總體均值差的檢驗(yàn)ttest2函數(shù)對兩個樣本的均值差異進(jìn)行t檢驗(yàn)。

172方差未知時兩個正態(tài)總體均值差的檢驗(yàn)ttest2函數(shù)對兩個樣本基于成對數(shù)據(jù)的檢驗(yàn)實(shí)際工作中為了比較兩種方法或兩種產(chǎn)品的差異,常常需要進(jìn)行對比試驗(yàn)。這樣得到的數(shù)據(jù)具有成對的特點(diǎn)。分析這種數(shù)據(jù),還是需要t檢驗(yàn)。前面用到的ttest函數(shù)可以進(jìn)行檢驗(yàn)。

173基于成對數(shù)據(jù)的檢驗(yàn)實(shí)際工作中為了比較兩種方法或兩種產(chǎn)品的差異分布擬合檢驗(yàn)q-q圖峰度-偏度檢驗(yàn)秩和檢驗(yàn)174分布擬合檢驗(yàn)q-q圖174q-q圖q-q圖用變量數(shù)據(jù)分布的分位數(shù)與所指定分布的分位數(shù)之間的關(guān)系曲線來檢驗(yàn)數(shù)據(jù)的分布。如果兩個樣本來自同一分布,則圖中數(shù)據(jù)點(diǎn)呈現(xiàn)直線關(guān)系,否則為曲線關(guān)系。

175q-q圖q-q圖用變量數(shù)據(jù)分布的分位數(shù)與所指定分布的分位數(shù)之峰度-偏度檢驗(yàn)峰度-偏度檢驗(yàn)又稱為Jarque-Bera檢驗(yàn),評價給定數(shù)據(jù)服從未知均值和方差的正態(tài)分布的假設(shè)是否成立。該檢驗(yàn)基于數(shù)據(jù)樣本的偏度和峰度。對于正態(tài)分布數(shù)據(jù),樣本偏度接近于0,樣本峰度接近于3。

176峰度-偏度檢驗(yàn)峰度-偏度檢驗(yàn)又稱為Jarque-Bera檢驗(yàn)秩和檢驗(yàn)秩和檢驗(yàn)可檢驗(yàn)

溫馨提示

  • 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

提交評論