【理學(xué)】MATLAB講義第四章模版課件_第1頁(yè)
【理學(xué)】MATLAB講義第四章模版課件_第2頁(yè)
【理學(xué)】MATLAB講義第四章模版課件_第3頁(yè)
【理學(xué)】MATLAB講義第四章模版課件_第4頁(yè)
【理學(xué)】MATLAB講義第四章模版課件_第5頁(yè)
已閱讀5頁(yè),還剩113頁(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)介

第4章MATLAB的數(shù)學(xué)運(yùn)算MATLAB2006a簡(jiǎn)明教程清華大學(xué)出版社教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)內(nèi)容12/10/20221第4章MATLAB的數(shù)學(xué)運(yùn)算MATLAB2006教學(xué)目標(biāo)掌握向量和矩陣的運(yùn)算掌握線性代數(shù)的基本函數(shù)和使用掌握稀疏矩陣的操作掌握多項(xiàng)式運(yùn)算及插值掌握函數(shù)操作12/10/20222教學(xué)目標(biāo)掌握向量和矩陣的運(yùn)算12/10/20222教學(xué)內(nèi)容向量、矩陣及其運(yùn)算矩陣和線性代數(shù)稀疏型矩陣多項(xiàng)式與插值函數(shù)運(yùn)算微分方程12/10/20223教學(xué)內(nèi)容向量、矩陣及其運(yùn)算12/10/20223向量、矩陣及其運(yùn)算向量的點(diǎn)乘、叉乘和混合積矩陣的基本運(yùn)算特殊矩陣生成向量和矩陣的范數(shù)12/10/20224向量、矩陣及其運(yùn)算向量的點(diǎn)乘、叉乘和混合積12/10/202向量的點(diǎn)乘、叉乘和混合積向量的點(diǎn)乘 向量的點(diǎn)乘又稱為內(nèi)積,是兩個(gè)向量的模和兩個(gè)向量之間的夾角余弦三者的乘積。MATLAB中,實(shí)現(xiàn)點(diǎn)乘的函數(shù)是dot。dot函數(shù)的用法為dot(x1,x2),其中x1和x2的維數(shù)必須相同。向量的叉乘 向量乘法除點(diǎn)乘之外還有叉乘。兩個(gè)向量叉積的幾何意義是指以兩個(gè)向量模的乘積為模,方向和兩個(gè)向量構(gòu)成右手坐標(biāo)系的向量。向量的叉乘不可交換。在MATLAB中函數(shù)cross用于實(shí)現(xiàn)向量的叉乘。向量的混合積 向量的混合積的幾何意義是:它的絕對(duì)值表示以三個(gè)向量為楞的平行六面體的體積,符號(hào)由右手法則確定。上面介紹了向量的點(diǎn)乘和叉乘,向量的混合積由點(diǎn)乘和叉乘逐步實(shí)現(xiàn)。12/10/20225向量的點(diǎn)乘、叉乘和混合積向量的點(diǎn)乘12/10/20225矩陣的基本運(yùn)算矩陣與常數(shù)之間的四則運(yùn)算 矩陣與常數(shù)的運(yùn)算與數(shù)組運(yùn)算相同矩陣和矩陣之間的四則運(yùn)算矩陣和矩陣之間的加減運(yùn)算與數(shù)組運(yùn)算相同設(shè)A是一個(gè)m×n矩陣,B是一個(gè)p×q矩陣,當(dāng)n=p時(shí),兩個(gè)矩陣可以相乘,乘積為m×q矩陣。矩陣乘法不可逆。在MATLAB中,矩陣乘法由“*”實(shí)現(xiàn)。矩陣除法在實(shí)際中主要用于求解線性方程組矩陣轉(zhuǎn)置 符號(hào)“’”實(shí)現(xiàn)矩陣的轉(zhuǎn)置操作。對(duì)于實(shí)數(shù)矩陣,“’”表示矩陣轉(zhuǎn)置,對(duì)于復(fù)數(shù)矩陣,“’”實(shí)現(xiàn)共軛轉(zhuǎn)置。對(duì)于復(fù)數(shù)矩陣,如果想要實(shí)現(xiàn)非共軛轉(zhuǎn)置,可以使用符號(hào)“.’”。矩陣乘方12/10/20226矩陣的基本運(yùn)算矩陣與常數(shù)之間的四則運(yùn)算12/10/2022特殊矩陣生成(1/2)函數(shù)功能[]生成空白矩陣zeros生成全0矩陣eye生成單位矩陣ones生成全1矩陣triltriu生成上三角或下三角矩陣diag生成對(duì)角矩陣gallery生成一些小的測(cè)試矩陣hadamard生成hadamard矩陣hankel生成hankel矩陣hilb生成Hilbert矩陣invhilb生成反Hilbert矩陣magic生成魔術(shù)矩陣pascal生成n階Pascal矩陣rand生成服從均勻分布的隨機(jī)矩陣randn生成服從正態(tài)分布的隨機(jī)矩陣rosser典型的對(duì)稱矩陣特征值的問(wèn)題測(cè)試toeplitz生成Toeplitz矩陣vander生成范德蒙矩陣wilkinson生成Wilkinson矩陣compan生成多項(xiàng)式的伴隨矩陣12/10/20227特殊矩陣生成(1/2)函數(shù)功能[]生成空白矩陣zeros生特殊矩陣生成(2/2)1.對(duì)角矩陣的生成對(duì)角矩陣指除對(duì)角線以外其他元素為0的矩陣。函數(shù)diag可以生成對(duì)角矩陣。該函數(shù)的用法為:A=diag(V,K),其中V是一個(gè)向量,K是一個(gè)整數(shù)。該函數(shù)返回一個(gè)矩陣,矩陣的第K個(gè)對(duì)角線為V。K在默認(rèn)情況下為0,表示矩陣的主對(duì)角線,K大于0時(shí)表示主對(duì)角線的上方,小于0時(shí)為主對(duì)角線的下方。V=diag(A,K),其中A時(shí)一個(gè)矩陣。K與上面的語(yǔ)句相同。該語(yǔ)句返回矩陣A第K個(gè)對(duì)角線上的元素組成的矩陣。2.魔術(shù)矩陣的生成 魔術(shù)矩陣是一種經(jīng)常遇到的矩陣,除了二階方陣之外,魔術(shù)矩陣的每一行、每一列以及每條主對(duì)角線的元素之和都相同。在MATLAB中,magic函數(shù)用于生成魔術(shù)矩陣。其調(diào)用方法為magic(N),其中N為正整數(shù),并且N≠2.12/10/20228特殊矩陣生成(2/2)1.對(duì)角矩陣的生成12/10/202向量和矩陣的范數(shù)向量的范數(shù)定義為,其中,最常用的值為1、2和無(wú)窮大。矩陣的范數(shù)定義為,其中,最常用的值為1、2和無(wú)窮大。向量和矩陣的范數(shù)可以通過(guò)函數(shù)norm求解。該函數(shù)的調(diào)用格式為n=norm(A,p),其中p用于指定范數(shù)的類型。p可以為所有大于1的常數(shù),最常用的為1、2、inf和'fro','fro'為求解矩陣A的Frobenius范數(shù)。當(dāng)p省略時(shí),默認(rèn)值為2。12/10/20229向量和矩陣的范數(shù)向量的范數(shù)定義為,其中,最常用的值為1矩陣和線性代數(shù)線性方程組逆矩陣和行列式矩陣分解矩陣指數(shù)函數(shù)和冪函數(shù)矩陣特征值矩陣奇異值分解12/10/202210矩陣和線性代數(shù)線性方程組12/10/202210線性方程組(1/2)利用矩陣求逆的方法求解方程組 我們首先求系數(shù)矩陣的逆,然后利用矩陣的逆求解方程組的解。利用矩陣的左除符號(hào)“\”或者右除符號(hào)“/”求解方程組12/10/202211線性方程組(1/2)利用矩陣求逆的方法求解方程組12/10線性方程組(2/2)利用左除符號(hào)和右除符號(hào)求解線性方程組,避免了矩陣求逆操作,因此系數(shù)矩陣不必為方陣。如果系數(shù)矩陣的維數(shù)為,則有三種情況:,此時(shí)方程組為超定方程組,MATLAB將給出最小二乘解;,此時(shí)方程組為方陣系統(tǒng),MATLAB給出精確解;,此時(shí)方程組為欠約束方程組,MATLAB將給出一組基解,該解中包含最多個(gè)非零元素。在采用除法符號(hào)(包括左除和右除)求解線性方程組時(shí),MATLAB采用因式分解法求解方程組。盡管MATLAB提供了兩種方法,一般更傾向于采用第二種方法,該方法用到較少的浮點(diǎn)數(shù)運(yùn)算,執(zhí)行速度較快,另外,由于采用分解法,得出的結(jié)果要精確的多。12/10/202212線性方程組(2/2)利用左除符號(hào)和右除符號(hào)求解線性方程組,避逆矩陣和行列式矩陣行列式 在MATLAB中,矩陣的行列式用函數(shù)det求解。調(diào)用格式為det(A),其中A為方陣。矩陣求逆 對(duì)于非奇異方陣,如果存在方陣,滿足并且,則稱為矩陣的逆,記為,在MATLAB中,用inv(A)來(lái)實(shí)現(xiàn)矩陣逆的求解。12/10/202213逆矩陣和行列式矩陣行列式12/10/202213矩陣分解Cholesky分解LU分解QR分解(正交分解)12/10/202214矩陣分解Cholesky分解12/10/202214Cholesky分解Cholesky分解將對(duì)稱矩陣表示為一個(gè)三角矩陣與其轉(zhuǎn)置的乘積的形式,即,其中為對(duì)稱矩陣,為上三角矩陣。并非所有的對(duì)稱矩陣都能進(jìn)行Cholesky分解,只有正定矩陣能夠進(jìn)行Cholesky分解,如Pascal矩陣。在MATLAB中Cholesky分解由函數(shù)chol實(shí)現(xiàn),該函數(shù)對(duì)輸入矩陣進(jìn)行Cholesky分解,返回其對(duì)應(yīng)的三角矩陣。Cholesky分解同樣適用于復(fù)數(shù)矩陣。如果復(fù)數(shù)矩陣滿足,其中表示矩陣的共軛轉(zhuǎn)置。如果矩陣存在Cholesky分解則稱其為Hermitian正定。12/10/202215Cholesky分解Cholesky分解將對(duì)稱矩陣表示LU分解矩陣的LU分解將一個(gè)方陣表示為一個(gè)下三角置換矩陣和一個(gè)上三角矩陣乘積的形式。如,其中為下三角置換矩陣,為上三角矩陣。MATLAB中LU分解可以通過(guò)函數(shù)lu實(shí)現(xiàn)。通過(guò)矩陣的LU分解,可以實(shí)現(xiàn)線性方程組的快速求解。另外矩陣的

LU分解可用于矩陣快速求逆和求行列式,有det(A)=det(L)*det(U)和inv(A)=inv(U)*inv(L)。12/10/202216LU分解矩陣的LU分解將一個(gè)方陣表示為一個(gè)下三角置換QR分解(正交分解)(1/2)如果矩陣滿足,則為正交矩陣。正交矩陣為實(shí)矩陣,其每列為單位向量,并且各列互相正交。正交矩陣最簡(jiǎn)單的例子為二維旋轉(zhuǎn)矩陣:對(duì)于復(fù)數(shù)矩陣,對(duì)應(yīng)的概念為酉矩陣。在數(shù)值計(jì)算中正交矩陣有著重要的應(yīng)用,因?yàn)檎痪仃嚲哂虚L(zhǎng)度不變性、角度不變性,并且不會(huì)擴(kuò)大誤差。矩陣的正交分解將矩陣表示為正交矩陣(或酉矩陣)和上三角矩陣的乘積。如或,其中為正交矩陣或酉矩陣,為上三角矩陣,為置換矩陣。正交分解有四種形式,包括完全分解、簡(jiǎn)化分解、帶置換矩陣的分解和不帶置換矩陣的分解。12/10/202217QR分解(正交分解)(1/2)如果矩陣滿足QR分解(正交分解)(2/2)完全分解 過(guò)約束線性系統(tǒng)的系數(shù)矩陣函數(shù)超過(guò)列數(shù),為一個(gè)矩陣并且,記為,則完全正交分解產(chǎn)生一個(gè)的正交矩陣和一個(gè)的上三角矩陣,滿足。MATLAB中矩陣的完全分解由函數(shù)qr實(shí)現(xiàn)。簡(jiǎn)化分解 矩陣的簡(jiǎn)化正交分解可以節(jié)省存儲(chǔ)空間和運(yùn)算時(shí)間。正交分解可以通過(guò)在qr函數(shù)中設(shè)置第二個(gè)參數(shù)為0實(shí)現(xiàn)。與LU分解不同,QR分解不需要對(duì)矩陣進(jìn)行旋轉(zhuǎn)或者置換,如上面的兩個(gè)例子。但是如果對(duì)矩陣進(jìn)行置換可以避免由于矩陣奇異造成的誤差。選擇置換后,在分解的每一步,選擇剩下列中范數(shù)最大的一列作為分解的基。這樣得到的結(jié)果中,R的對(duì)角線元素按照降序排列。包含置換的正交分解可以通過(guò)增加qr函數(shù)的輸出參數(shù)得到。12/10/202218QR分解(正交分解)(2/2)完全分解12/10/202矩陣指數(shù)函數(shù)和冪函數(shù)矩陣的正整數(shù)冪 如果A為方陣,p為正整數(shù),則A^p表示p個(gè)A相乘。矩陣的負(fù)數(shù)冪與分?jǐn)?shù)冪 如果A為非奇異方陣,則A^(-p)等價(jià)于inv(A)^p。MATLAB中,允許對(duì)矩陣進(jìn)行分?jǐn)?shù)冪運(yùn)算,運(yùn)算結(jié)果依賴于矩陣特征值的分布情況。矩陣指數(shù)運(yùn)算 expm用于實(shí)現(xiàn)矩陣的指數(shù)運(yùn)算。 線性系統(tǒng)的解可以表示為,其中的矩陣指數(shù)運(yùn)算可以通過(guò)expm完成。12/10/202219矩陣指數(shù)函數(shù)和冪函數(shù)矩陣的正整數(shù)冪12/10/20221矩陣特征值矩陣的特征值和特征值分解在線性代數(shù)中一直扮演著重要的角色。在MATLAB中,函數(shù)eig實(shí)現(xiàn)矩陣的特征值計(jì)算和特征值分解。例4-23利用函數(shù)eig實(shí)現(xiàn)矩陣的特征值計(jì)算利用例2-22中的矩陣A。在命令窗口中輸入:>>A=[0,-6,-1;6,2,-16;-5,20,-10];A=0-6-162-16-520-10>>lambda=eig(A)lambda=-3.0710-2.4645+17.6008i-2.4645-17.6008i上例實(shí)現(xiàn)對(duì)矩陣特征值的計(jì)算,如果在調(diào)用eig函數(shù)時(shí),設(shè)置輸出參數(shù)的個(gè)數(shù)為2,則實(shí)現(xiàn)對(duì)矩陣的特征值分解。12/10/202220矩陣特征值矩陣的特征值和特征值分解在線性代數(shù)中一直扮演著重矩陣奇異值分解對(duì)于矩陣,如果存在數(shù)和向量、,滿足和,則稱為的奇異值,、為的奇異向量。如果將矩陣的奇異值寫(xiě)為對(duì)角矩陣的格式,記為(不足的部分記為0);以奇異向量為列并擴(kuò)充為正交矩陣和,則有和。和為正交矩陣,則得到,即為矩陣的奇異值分解。在MATLAB中,函數(shù)svd實(shí)現(xiàn)矩陣的奇異值分解。與矩陣的QR分解相似,奇異值分解也可以有簡(jiǎn)化分解。方法與QR分解相同,即在輸入?yún)?shù)中以0標(biāo)志。如在命令窗口中繼續(xù)輸入:12/10/202221矩陣奇異值分解對(duì)于矩陣,如果存在數(shù)和向量稀疏型矩陣(1/2)在很多實(shí)際應(yīng)用中,用戶往往會(huì)遇到只有少數(shù)非0元素的矩陣,我們稱這些矩陣為稀疏矩陣。如果對(duì)稀疏矩陣中的全部元素進(jìn)行存儲(chǔ)和計(jì)算則會(huì)導(dǎo)致時(shí)間和空間上的極大浪費(fèi)。因此,為了更有效的存儲(chǔ)和處理稀疏矩陣,MATLAB中采用了一些優(yōu)化技術(shù):MATLAB中只存儲(chǔ)稀疏矩陣中的非0元素,并用行索引和列索引表明每個(gè)非0元素在原矩陣中的位置;同樣,MATLAB中采用了一些專門(mén)的算法來(lái)處理稀疏矩陣,以避免對(duì)0元素的運(yùn)算,并且最大限度地減少中間結(jié)果中的非0元素。12/10/202222稀疏型矩陣(1/2)在很多實(shí)際應(yīng)用中,用戶往往會(huì)遇到只有少稀疏型矩陣(2/2)稀疏型矩陣的生成稀疏矩陣與滿矩陣的相互轉(zhuǎn)化稀疏矩陣的操作12/10/202223稀疏型矩陣(2/2)稀疏型矩陣的生成12/10/20222稀疏型矩陣的生成(1/3)MATLAB不會(huì)自動(dòng)生成稀疏矩陣,因此,當(dāng)用戶判定一個(gè)矩陣為稀疏矩陣時(shí),利用相關(guān)函數(shù)生成稀疏矩陣。MATLAB中用于生成稀疏矩陣的函數(shù)如表4-2所示。函數(shù)功能speye生成單位稀疏矩陣sprand生成均勻分布的隨機(jī)稀疏矩陣sprandn生成正態(tài)分布的隨機(jī)稀疏矩陣sprandsym生成對(duì)稱隨機(jī)稀疏矩陣spdiags生成對(duì)角隨機(jī)稀疏矩陣12/10/202224稀疏型矩陣的生成(1/3)MATLAB不會(huì)自動(dòng)生成稀疏矩陣稀疏型矩陣的生成(2/3)speye函數(shù)speye函數(shù)的調(diào)用格式為:S=speye(m,n);S=speye(n),分別用于生成階主對(duì)角線元素為一的稀疏矩陣和階單位稀疏矩陣。12/10/202225稀疏型矩陣的生成(2/3)speye函數(shù)12/10/20稀疏型矩陣的生成(3/3)sprand和sprandn函數(shù)這兩個(gè)函數(shù)的調(diào)用格式完全相同。兩個(gè)函數(shù)的唯一區(qū)別為sprand函數(shù)生成的稀疏矩陣元素服從均勻分布,而sprandn函數(shù)生成的稀疏矩陣元素服從正態(tài)分布。下面以sprand函數(shù)為例介紹這兩個(gè)函數(shù)的應(yīng)用。sprand函數(shù)的調(diào)用格式有:R=sprand(S),生成與稀疏矩陣S結(jié)構(gòu)完全相同的稀疏矩陣,矩陣元素服從均勻分布;R=sprand(m,n,density),生成階稀疏矩陣,矩陣非0元素個(gè)數(shù)大約為density*m*n。R=sprand(m,n,density,rc),與上面的命令類似。如果rc為數(shù)值,則生成的矩陣條件數(shù)的倒數(shù)接近rc;如果rc為一個(gè)長(zhǎng)度不大于min(m,n)的一維向量,則生成的矩陣以rc的元素為奇異值,其他奇異值為0。注意,不能用命令sprand(n)生成n階稀疏矩陣。12/10/202226稀疏型矩陣的生成(3/3)sprand和sprandn稀疏矩陣與滿矩陣的相互轉(zhuǎn)化MATLAB提供了一些函數(shù)用于在稀疏矩陣和滿矩陣之間進(jìn)行轉(zhuǎn)換,這些函數(shù)如表4-3所示。函數(shù)功能sparse將滿矩陣轉(zhuǎn)化為稀疏矩陣full將稀疏矩陣轉(zhuǎn)化為滿矩陣find查找非0元的索引spconvert導(dǎo)入稀疏矩陣12/10/202227稀疏矩陣與滿矩陣的相互轉(zhuǎn)化MATLAB提供了一些函數(shù)用于sparse函數(shù)sparse函數(shù)的調(diào)用格式如下:S=sparse(A),該命令將矩陣轉(zhuǎn)化為稀疏矩陣。S=sparse(i,j,s,m,n,nzmax),該命令生成一個(gè)階稀疏矩陣,其中、、分別為該矩陣非0元的橫坐標(biāo)向量、縱坐標(biāo)向量和值,、、有相同的長(zhǎng)度。該矩陣的非0元數(shù)目不超過(guò)nzmax。S=sparse(i,j,s,m,n),該命令與上面一條命令功能類似,生成的稀疏矩陣的非0元個(gè)數(shù)由的長(zhǎng)度確定。S=sparse(i,j,s),該命令生成的稀疏矩陣維數(shù)為。S=sparse(m,n),該命令生成一個(gè)初始稀疏矩陣,矩陣的全部元素為0。12/10/202228sparse函數(shù)sparse函數(shù)的調(diào)用格式如下:12/1full函數(shù)和find函數(shù)full函數(shù) full函數(shù)的應(yīng)用比較簡(jiǎn)單,其調(diào)用格式為X=full(S),該命令將稀疏矩陣S轉(zhuǎn)換為滿矩陣。find函數(shù) find既適用于滿矩陣,也適用于稀疏矩陣。該函數(shù)在應(yīng)用于稀疏矩陣時(shí)用于查找稀疏矩陣中的非0元素。該函數(shù)可以返回非0元素的位置、行列向量和元素值。12/10/202229full函數(shù)和find函數(shù)full函數(shù)12/10/常用的稀疏矩陣操作函數(shù)MATLAB中的大部分?jǐn)?shù)學(xué)函數(shù)可以用于稀疏矩陣,功能和調(diào)用格式和應(yīng)用于滿矩陣時(shí)相同。另外,MATLAB還提供了一些函數(shù)專門(mén)應(yīng)用于稀疏矩陣。常用的稀疏矩陣操作函數(shù)如表所示。函數(shù)功能nnz返回矩陣非0元的個(gè)數(shù)nonzeros返回矩陣的非0元素構(gòu)成的向量,以矩陣的列為序nzmax返回為矩陣非0元分配的存儲(chǔ)空間大小spones將矩陣的所有非0元素置為1spalloc為稀疏矩陣分配內(nèi)存空間issparse判斷是否為稀疏矩陣,是則返回值TRUE,否則返回FALSE。spfun對(duì)稀疏矩陣的非0元素進(jìn)行操作spy稀疏矩陣的圖形表示12/10/202230常用的稀疏矩陣操作函數(shù)MATLAB中的大部分?jǐn)?shù)學(xué)函數(shù)可以用多項(xiàng)式與插值

多項(xiàng)式在數(shù)學(xué)中有著極為重要的作用,同時(shí)多項(xiàng)式的運(yùn)算也是工程和應(yīng)用中經(jīng)常遇到的問(wèn)題。MATLAB提供了一些專門(mén)用于處理多項(xiàng)式的函數(shù),用戶可以應(yīng)用這些函數(shù)對(duì)多項(xiàng)式進(jìn)行操作。MATLAB中對(duì)多項(xiàng)式的操作包括多項(xiàng)式求根、多項(xiàng)式的四則運(yùn)算及多項(xiàng)式的微積分。12/10/202231多項(xiàng)式與插值多項(xiàng)式在數(shù)學(xué)中有著極為重要多項(xiàng)式的表示在MATLAB中多項(xiàng)式用一個(gè)行向量表示,向量中的元素為該多項(xiàng)式的系數(shù),按照降序排列。如多項(xiàng)式可以表示為向量p=[9743]。用戶可以創(chuàng)建向量的方式創(chuàng)建多項(xiàng)式,再將其顯示為多項(xiàng)式,

12/10/202232多項(xiàng)式的表示在MATLAB中多項(xiàng)式用一個(gè)行向量表示,向量多項(xiàng)式的四則運(yùn)算由于多項(xiàng)式是利用向量來(lái)表示,多項(xiàng)式的四則運(yùn)算可以轉(zhuǎn)化為向量的運(yùn)算。多項(xiàng)式的加減為對(duì)應(yīng)項(xiàng)系數(shù)的加減,因此可以通過(guò)向量的加減來(lái)實(shí)現(xiàn)。但是在向量的加減中兩個(gè)向量需要有相同的長(zhǎng)度,因此在進(jìn)行多項(xiàng)式加減時(shí),需要將短的向量前面補(bǔ)0。多項(xiàng)式的乘法實(shí)際上是多項(xiàng)式系數(shù)向量之間的卷積運(yùn)算,可以通過(guò)MATLAB中的卷積函數(shù)conv來(lái)完成。多項(xiàng)式的除法為乘法的逆運(yùn)算,可以通過(guò)反卷積函數(shù)deconv來(lái)實(shí)現(xiàn)。12/10/202233多項(xiàng)式的四則運(yùn)算由于多項(xiàng)式是利用向量來(lái)表示,多項(xiàng)式的四則運(yùn)算多項(xiàng)式的其他運(yùn)算除多項(xiàng)式的四則運(yùn)算外,MATLAB還提供了多項(xiàng)式的一些其他運(yùn)算。這些運(yùn)算及其對(duì)應(yīng)的函數(shù)如表所示。函數(shù)功能roots多項(xiàng)式求根polyval多項(xiàng)式求值polyvalm矩陣多項(xiàng)式求值polyder多項(xiàng)式求導(dǎo)poly求矩陣的特征多項(xiàng)式;或者求一個(gè)多項(xiàng)式,其根為指定的數(shù)值polyfit多項(xiàng)式曲線擬合residue求解余項(xiàng)

12/10/202234多項(xiàng)式的其他運(yùn)算除多項(xiàng)式的四則運(yùn)算外,MATLAB還提供了多項(xiàng)式的運(yùn)算函數(shù)(1/2)roots函數(shù)和poly函數(shù) 這兩個(gè)函數(shù)為功能互逆的兩個(gè)函數(shù)。roots函數(shù)用于求解多項(xiàng)式的根。該函數(shù)的輸入?yún)?shù)為多項(xiàng)式的系數(shù)組成的行向量,返回值為由多項(xiàng)式的根組成的列向量。poly函數(shù)用于生成根為制定數(shù)值的多項(xiàng)式。polyval函數(shù) polyval函數(shù)用于多項(xiàng)式求值。對(duì)于給定的多項(xiàng)式,利用該函數(shù)可以計(jì)算該多項(xiàng)式在任意點(diǎn)的值。12/10/202235多項(xiàng)式的運(yùn)算函數(shù)(1/2)roots函數(shù)和poly函數(shù)多項(xiàng)式的運(yùn)算函數(shù)(2/2)polyder函數(shù)函數(shù)polyder用于多項(xiàng)式求導(dǎo)。該函數(shù)可以用于求解一個(gè)多項(xiàng)式的導(dǎo)數(shù)、兩個(gè)多項(xiàng)式乘積的導(dǎo)數(shù)和兩個(gè)多項(xiàng)式商的導(dǎo)數(shù)。該函數(shù)的用法為:q=polyder(p)該命令計(jì)算多項(xiàng)式p的導(dǎo)數(shù)。c=polyder(a,b)該命令實(shí)現(xiàn)多項(xiàng)式a、b的積的導(dǎo)數(shù)。[q,d]=polyder(a,b)該命令實(shí)現(xiàn)多項(xiàng)式a、b的商的導(dǎo)數(shù),q/d為最后的結(jié)果。

12/10/202236多項(xiàng)式的運(yùn)算函數(shù)(2/2)polyder函數(shù)12/10多項(xiàng)式擬合曲線擬合是工程中經(jīng)常要用到的技術(shù)之一。MATLAB提供了曲線擬合工具箱滿足用戶要求,另外,還提供了多項(xiàng)式擬合函數(shù)。函數(shù)polyfit給出在最小二乘意義下最佳擬合系數(shù)。該函數(shù)的調(diào)用格式為: p=polyfit(x,y,n) 其中x、y分別為待擬合數(shù)據(jù)的x坐標(biāo)和y坐標(biāo),n用于指定返回多項(xiàng)式的次數(shù)。12/10/202237多項(xiàng)式擬合曲線擬合是工程中經(jīng)常要用到的技術(shù)之一。MATLA數(shù)據(jù)插值根據(jù)已知數(shù)據(jù)推斷未知數(shù)據(jù),則需要使用數(shù)據(jù)插值的概念。MATLAB提供了對(duì)數(shù)組的任意一維進(jìn)行插值的工具,這些工具大多需要用到多維數(shù)組的操作。本節(jié)將對(duì)數(shù)據(jù)插值做簡(jiǎn)單的介紹,主要介紹一維插值。MATLAB中一維插值主要有:多項(xiàng)式插值快速傅立葉變換(FFT)插值。

12/10/202238數(shù)據(jù)插值根據(jù)已知數(shù)據(jù)推斷未知數(shù)據(jù),則需要使用數(shù)據(jù)插值的概念。一維插值一維插值在曲線擬合和數(shù)據(jù)分析中具有重要的地位。在MATLAB中,一維插值由函數(shù)interp1實(shí)現(xiàn)。該函數(shù)的調(diào)用格式為 yi=interp1(x,y,xi,method)x、y:采用數(shù)據(jù)的x坐標(biāo)和y坐標(biāo)xi:待插值的位置method:采用的插值方法該語(yǔ)句返回函數(shù)在點(diǎn)xi處的插值結(jié)果。該語(yǔ)句中的參數(shù)method可以選擇的內(nèi)容如表所示。參數(shù)對(duì)應(yīng)方法'nearest'最近鄰插值'linear'線性插值'spline'三次樣條插值'pchip'或'cubic'三次插值12/10/202239一維插值一維插值在曲線擬合和數(shù)據(jù)分析中具有重要的地位。在M函數(shù)運(yùn)算函數(shù)的表示數(shù)學(xué)函數(shù)圖象的繪制函數(shù)極值函數(shù)求解數(shù)值積分含參數(shù)函數(shù)的使用

12/10/202240函數(shù)運(yùn)算函數(shù)的表示12/10/202240函數(shù)的表示MATLAB中提供了兩種函數(shù)表示的方法:利用M文件將函數(shù)定義為MALTAB函數(shù) 將函數(shù)定義為MALTAB函數(shù),當(dāng)需要調(diào)用該函數(shù)時(shí),需要通過(guò)符號(hào)“@”獲取函數(shù)句柄,利用函數(shù)句柄實(shí)現(xiàn)對(duì)函數(shù)的操作。匿名函數(shù)方法直接創(chuàng)建函數(shù),如語(yǔ)句:>>fh=@(x)1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6;

12/10/202241函數(shù)的表示MATLAB中提供了兩種函數(shù)表示的方法:12數(shù)學(xué)函數(shù)圖象的繪制函數(shù)圖象具有直觀的特性,可以通過(guò)函數(shù)圖象查看出一個(gè)函數(shù)的總體特征。MATLAB提供了繪制函數(shù)圖象的函數(shù)fplot,方便用戶繪制函數(shù)的圖象。下面介紹該函數(shù)的用法。該函數(shù)的調(diào)用格式如下:fplot(fun,limits),y=f(x)fplot(fun,limits,LineSpec)fplot(fun,limits,tol)fplot(fun,limits,tol,LineSpec)fplot(fun,limits,n)fun可以為MATLAB函數(shù)的M文件名,可以是包含變量x的字符串,該字符串可以傳遞給函數(shù)eval,還可以是函數(shù)句柄。參數(shù)limits用于指定繪制圖象的范圍。limits是一個(gè)向量,用于指定x軸的范圍,格式為[xminxmax]。limits也可以同時(shí)指定y軸的范圍,格式為[xminxmaxyminymax]。12/10/202242數(shù)學(xué)函數(shù)圖象的繪制函數(shù)圖象具有直觀的特性,可以通過(guò)函數(shù)圖象函數(shù)極值一元函數(shù)的極小值fminbnd求得函數(shù)在給定區(qū)間內(nèi)的局部極小值。該函數(shù)的調(diào)用格式為 x=fminbnd(fun,x1,x2,options)fun為函數(shù)句柄x1和x2分別用于指定區(qū)間的左右邊界options用于指定程序的其他參數(shù),其元素取值如表所示。

名稱描述Display控制結(jié)果的輸出,參數(shù)可以為“off”,不輸出任何結(jié)果;“iter”,輸出每個(gè)插值點(diǎn)的值;“final”,輸出最后結(jié)果;“notify”為默認(rèn)值,僅當(dāng)函數(shù)不收斂時(shí)輸出結(jié)果FunValCheck檢測(cè)目標(biāo)函數(shù)值是否有效。選擇on則當(dāng)函數(shù)返回?cái)?shù)據(jù)為復(fù)數(shù)或空數(shù)據(jù)時(shí)發(fā)出警告;off則不發(fā)出警告MaxFunEvals允許進(jìn)行函數(shù)評(píng)價(jià)的最大次數(shù)MaxIter最大迭代次數(shù)OutputFcn指定每次迭代時(shí)調(diào)用的用戶自定義的函數(shù)TolX返回的x的誤差12/10/202243函數(shù)極值一元函數(shù)的極小值名稱描述Display控制結(jié)果的多元函數(shù)的極小值MATLAB提供了函數(shù)fminsearch用于計(jì)算多元函數(shù)的極小值。fminsearch函數(shù)內(nèi)部應(yīng)用了Nelder-Mead單一搜索算法,通過(guò)調(diào)整x的各個(gè)元素的值來(lái)尋找f(x)的極小值。該算法雖然對(duì)于平滑函數(shù)搜索效率沒(méi)有其他算法高,但它不需要梯度信息,從而擴(kuò)展了其應(yīng)用范圍。因此,該算法特別適用于不太平滑、難以計(jì)算梯度信息或梯度信息價(jià)值不大的函數(shù)。用于求解函數(shù)極小值的函數(shù)還有fminbnd。fminbnd函數(shù)的用法與fminsearch函數(shù)的用法基本相同,不同之處在于:fminbnd函數(shù)的輸入?yún)?shù)為尋找最小值的區(qū)間,并且只能用于求解一元函數(shù)的極值,fminsearch函數(shù)的輸入?yún)?shù)為初始值。12/10/202244多元函數(shù)的極小值MATLAB提供了函數(shù)fminsearc函數(shù)求解可以使用函數(shù)fzero()來(lái)求一元函數(shù)的零點(diǎn)。尋找一元函數(shù)零點(diǎn)時(shí),可以指定一個(gè)初始點(diǎn),或者指定一個(gè)區(qū)間。當(dāng)指定一個(gè)初始點(diǎn)時(shí),此函數(shù)在初始點(diǎn)附近尋找一個(gè)使函數(shù)值變號(hào)的區(qū)間,如果沒(méi)有找到這樣的區(qū)間,則函數(shù)返回NaN。該函數(shù)的調(diào)用格式為:x=fzero(fun,x0),x=fzero(fun,[x1,x2]):尋找x0附近或者區(qū)間[x1,x2]內(nèi)fun的零點(diǎn),返回該點(diǎn)的x坐標(biāo);x=fzero(fun,x0,options),x=fzero(fun,[x1,x2],options):通過(guò)options設(shè)置參數(shù);[x,fval]=fzero(...):返回零點(diǎn)的同時(shí)返回該點(diǎn)的函數(shù)值;[x,fval,exitflag]=fzero(...):返回零點(diǎn)、該點(diǎn)的函數(shù)值及程序退出的標(biāo)志;[x,fval,exitflag,output]=fzero(...):返回零點(diǎn)、該點(diǎn)的函數(shù)值、程序退出的標(biāo)志及選定的輸出結(jié)果。12/10/202245函數(shù)求解可以使用函數(shù)fzero()來(lái)求一元函數(shù)的零點(diǎn)數(shù)值積分MATLAB中提供了用于積分的函數(shù),包括:一元函數(shù)的自適應(yīng)數(shù)值積分一元函數(shù)的矢量積分二重積分和三重積分這些函數(shù)如表所示。函數(shù)功能quad一元函數(shù)的數(shù)值積分,采用自適應(yīng)的Simpson方法quadl一元函數(shù)的數(shù)值積分,采用自適應(yīng)的Lobatto方法quadv一元函數(shù)的向量數(shù)值積分dblquad二重積分triplequad三重積分12/10/202246數(shù)值積分MATLAB中提供了用于積分的函數(shù),包括:函數(shù)功一元函數(shù)的積分MATLAB中一元函數(shù)的積分可以用兩個(gè)函數(shù)來(lái)實(shí)現(xiàn):quad和quadl。函數(shù)quad采用低階的自適應(yīng)遞歸Simpson方法,函數(shù)quadl采用高階自適應(yīng)Lobatto方法,該函數(shù)是quad8函數(shù)的替代。函數(shù)quad的調(diào)用格式如下:q=quad(fun,a,b),采用遞歸自適應(yīng)方法計(jì)算函數(shù)fun在區(qū)間 上的積分,其精確度為1e-6。q=quad(fun,a,b,tol),指定允許誤差,指定的誤差tol需大于1e-6。該命令運(yùn)行更快,但是得到的結(jié)果精確度降低。q=quad(fun,a,b,tol,trace),跟蹤迭代過(guò)程,輸出[fcntab-aQ]的值,分別為計(jì)算函數(shù)值的次數(shù)、當(dāng)前積分區(qū)間的左邊界、步長(zhǎng)和該區(qū)間內(nèi)的積分值。[q,fcnt]=quadl(fun,a,b,...),輸出函數(shù)值的同時(shí)輸出計(jì)算函數(shù)值的次數(shù)。

12/10/202247一元函數(shù)的積分MATLAB中一元函數(shù)的積分可以用兩個(gè)函數(shù)來(lái)一元函數(shù)的矢量積分矢量積分相當(dāng)于多個(gè)一元函數(shù)積分。當(dāng)被積函數(shù)中含有參數(shù),需要對(duì)該參數(shù)的不同值計(jì)算該函數(shù)的積分時(shí),可以使用一元函數(shù)的矢量積分。矢量積分返回一個(gè)向量,每個(gè)元素的值為一個(gè)一元函數(shù)的積分值。quadv函數(shù)與quad和quadl函數(shù)相似,可以設(shè)置積分參數(shù)和結(jié)果輸出。

12/10/202248一元函數(shù)的矢量積分矢量積分相當(dāng)于多個(gè)一元函數(shù)積分。當(dāng)被積函數(shù)二重積分和三重積分MATLAB中二重積分和三重積分分別由函數(shù)dblquad()和函數(shù)triplequad()來(lái)實(shí)現(xiàn)。首先介紹函數(shù)dblquad(),該函數(shù)的基本格式如下:q=dblquad(fun,xmin,xmax,ymin,ymax),函數(shù)的參數(shù)分別為函數(shù)句柄、兩個(gè)自變量的積分限,返回積分結(jié)果。q=dblquad(fun,xmin,xmax,ymin,ymax,tol),指定積分結(jié)果的精度。q=dblquad(fun,xmin,xmax,ymin,ymax,tol,method),指定結(jié)果精度和積分方法,method的取值可以是@quadl,也可以是用戶自定義的積分函數(shù)句柄,該函數(shù)的調(diào)用格式必須與quad的調(diào)用格式相同。triplequad()函數(shù)的調(diào)用格式和dblquad()基本相同,在調(diào)用triplequad()函數(shù)時(shí),需要六個(gè)參數(shù)指定積分限。

12/10/202249二重積分和三重積分MATLAB中二重積分和三重積分分別由函含參數(shù)函數(shù)的使用在很多情況下,需要進(jìn)行運(yùn)算的函數(shù)中包含參數(shù)。在MATLAB中使用含參函數(shù)的方式有兩種:嵌套函數(shù)匿名函數(shù)。12/10/202250含參數(shù)函數(shù)的使用在很多情況下,需要進(jìn)行運(yùn)算的函數(shù)中包含參數(shù)用嵌套函數(shù)提供函數(shù)參數(shù)使用含參函數(shù)的一個(gè)方法是編寫(xiě)一個(gè)M文件,該文件以函數(shù)參數(shù)作為輸入,然后調(diào)用函數(shù)的函數(shù)來(lái)處理含參函數(shù),最后把含參函數(shù)以嵌套函數(shù)的方式包含在M文件中。

12/10/202251用嵌套函數(shù)提供函數(shù)參數(shù)使用含參函數(shù)的一個(gè)方法是編寫(xiě)一個(gè)M用匿名函數(shù)提供函數(shù)參數(shù)使用含參函數(shù)還可以通過(guò)匿名函數(shù)來(lái)實(shí)現(xiàn),函數(shù)的參數(shù)在使用之前必須先賦值。具體步驟為:首先創(chuàng)建一個(gè)含參函數(shù),保存為M文件。函數(shù)的輸入為自變量x和函數(shù)參數(shù);在調(diào)用函數(shù)的函數(shù)前對(duì)參數(shù)賦值;用含參函數(shù)創(chuàng)建匿名函數(shù);把匿名函數(shù)的句柄傳遞給函數(shù)的函數(shù)進(jìn)行計(jì)算。12/10/202252用匿名函數(shù)提供函數(shù)參數(shù)使用含參函數(shù)還可以通過(guò)匿名函數(shù)來(lái)實(shí)現(xiàn)微分方程MATLAB能夠求解的微分方程類型包括:常微分方程初值問(wèn)題常微分方程邊值問(wèn)題時(shí)滯微分方程初值問(wèn)題偏微分方程12/10/202253微分方程MATLAB能夠求解的微分方程類型包括:12/1常微分方程初值問(wèn)題MATLAB可以求解的常微分方程包括下面三種類型:顯式常微分方程線性隱式常微分方程,,其中為矩陣全隱式常微分方程12/10/202254常微分方程初值問(wèn)題MATLAB可以求解的常微分方程包括下顯式常微分方程MATLAB可以求解剛性方程和非剛性方程。求解微分方程的命令格式為: [t,y]=solver(odefun,tspan,y0,options)odefun:待求解方程的句柄tspan:為積分區(qū)間y0:為一個(gè)向量,包括問(wèn)題的初始條件Options:用于指定求解算法。對(duì)于剛性方程和非剛性方程,可以選擇的算法不同。對(duì)于非剛性方程,可以選擇的算法如下:ode45:基于顯式Runge-Kutta(4,5)規(guī)則求解12/10/202255顯式常微分方程MATLAB可以求解剛性方程和非剛性方程。對(duì)于非剛性方程,可以選擇的算法如下:ode45:基于顯式Runge-Kutta(4,5)規(guī)則求解ode23:基于顯式Runge-Kutta(2,3)規(guī)則求解ode113:利用變階Adams-Bashforth-Moulton算法求解12/10/202256對(duì)于非剛性方程,可以選擇的算法如下:12/10/202256剛性方程的求解方法如下:ode15s:基于數(shù)值積分公式的變階求解算法ode23s:采用二階改進(jìn)Rosenbrock公式的算法ode23t:采用自由內(nèi)插的梯形規(guī)則ode23tb:采用TR-BDF2算法,該算法為隱式Runge-Kutta公式,包含兩個(gè)部分,第一個(gè)部分為梯形規(guī)則,第二個(gè)部分為二階后向差分。12/10/202257剛性方程的求解方法如下:12/10/202257完全隱式常微分方程完全隱式常微分方程的形式為:。函數(shù)ode15i用于求解完全隱式常微分方程。用法為: [t,y]=ode15i(odefun,tspan,y0,yp0,options)Odefun:為待求解方程Tspan:用于指定積分區(qū)間y0和yp0:分別用于指定初值和,這兩個(gè)初值必須一致,即滿足。Options:可選參數(shù),用于指定積分方法。該函數(shù)輸出在離散節(jié)點(diǎn)處的近似值。12/10/202258完全隱式常微分方程完全隱式常微分方程的形式為:常微分方程邊值問(wèn)題bvp4c函數(shù)用于求解常微分方程邊值問(wèn)題,該函數(shù)點(diǎn)調(diào)用格式為:sol=bvp4c(odefun,bcfun,solinit)sol=bvp4c(odefun,bcfun,solinit,options)Odefun:待求解的函數(shù)句柄bcfun:函數(shù)邊值條件的函數(shù)句柄solinit:一個(gè)結(jié)構(gòu)體,為該方程解的初始估計(jì)值。options:可選參數(shù),用于指定積分算法,該參數(shù)為一個(gè)結(jié)構(gòu)體,可以通過(guò)函數(shù)bvpset創(chuàng)建。12/10/202259常微分方程邊值問(wèn)題bvp4c函數(shù)用于求解常微分方程邊值問(wèn)第4章MATLAB的數(shù)學(xué)運(yùn)算MATLAB2006a簡(jiǎn)明教程清華大學(xué)出版社教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)內(nèi)容12/10/202260第4章MATLAB的數(shù)學(xué)運(yùn)算MATLAB2006教學(xué)目標(biāo)掌握向量和矩陣的運(yùn)算掌握線性代數(shù)的基本函數(shù)和使用掌握稀疏矩陣的操作掌握多項(xiàng)式運(yùn)算及插值掌握函數(shù)操作12/10/202261教學(xué)目標(biāo)掌握向量和矩陣的運(yùn)算12/10/20222教學(xué)內(nèi)容向量、矩陣及其運(yùn)算矩陣和線性代數(shù)稀疏型矩陣多項(xiàng)式與插值函數(shù)運(yùn)算微分方程12/10/202262教學(xué)內(nèi)容向量、矩陣及其運(yùn)算12/10/20223向量、矩陣及其運(yùn)算向量的點(diǎn)乘、叉乘和混合積矩陣的基本運(yùn)算特殊矩陣生成向量和矩陣的范數(shù)12/10/202263向量、矩陣及其運(yùn)算向量的點(diǎn)乘、叉乘和混合積12/10/202向量的點(diǎn)乘、叉乘和混合積向量的點(diǎn)乘 向量的點(diǎn)乘又稱為內(nèi)積,是兩個(gè)向量的模和兩個(gè)向量之間的夾角余弦三者的乘積。MATLAB中,實(shí)現(xiàn)點(diǎn)乘的函數(shù)是dot。dot函數(shù)的用法為dot(x1,x2),其中x1和x2的維數(shù)必須相同。向量的叉乘 向量乘法除點(diǎn)乘之外還有叉乘。兩個(gè)向量叉積的幾何意義是指以兩個(gè)向量模的乘積為模,方向和兩個(gè)向量構(gòu)成右手坐標(biāo)系的向量。向量的叉乘不可交換。在MATLAB中函數(shù)cross用于實(shí)現(xiàn)向量的叉乘。向量的混合積 向量的混合積的幾何意義是:它的絕對(duì)值表示以三個(gè)向量為楞的平行六面體的體積,符號(hào)由右手法則確定。上面介紹了向量的點(diǎn)乘和叉乘,向量的混合積由點(diǎn)乘和叉乘逐步實(shí)現(xiàn)。12/10/202264向量的點(diǎn)乘、叉乘和混合積向量的點(diǎn)乘12/10/20225矩陣的基本運(yùn)算矩陣與常數(shù)之間的四則運(yùn)算 矩陣與常數(shù)的運(yùn)算與數(shù)組運(yùn)算相同矩陣和矩陣之間的四則運(yùn)算矩陣和矩陣之間的加減運(yùn)算與數(shù)組運(yùn)算相同設(shè)A是一個(gè)m×n矩陣,B是一個(gè)p×q矩陣,當(dāng)n=p時(shí),兩個(gè)矩陣可以相乘,乘積為m×q矩陣。矩陣乘法不可逆。在MATLAB中,矩陣乘法由“*”實(shí)現(xiàn)。矩陣除法在實(shí)際中主要用于求解線性方程組矩陣轉(zhuǎn)置 符號(hào)“’”實(shí)現(xiàn)矩陣的轉(zhuǎn)置操作。對(duì)于實(shí)數(shù)矩陣,“’”表示矩陣轉(zhuǎn)置,對(duì)于復(fù)數(shù)矩陣,“’”實(shí)現(xiàn)共軛轉(zhuǎn)置。對(duì)于復(fù)數(shù)矩陣,如果想要實(shí)現(xiàn)非共軛轉(zhuǎn)置,可以使用符號(hào)“.’”。矩陣乘方12/10/202265矩陣的基本運(yùn)算矩陣與常數(shù)之間的四則運(yùn)算12/10/2022特殊矩陣生成(1/2)函數(shù)功能[]生成空白矩陣zeros生成全0矩陣eye生成單位矩陣ones生成全1矩陣triltriu生成上三角或下三角矩陣diag生成對(duì)角矩陣gallery生成一些小的測(cè)試矩陣hadamard生成hadamard矩陣hankel生成hankel矩陣hilb生成Hilbert矩陣invhilb生成反Hilbert矩陣magic生成魔術(shù)矩陣pascal生成n階Pascal矩陣rand生成服從均勻分布的隨機(jī)矩陣randn生成服從正態(tài)分布的隨機(jī)矩陣rosser典型的對(duì)稱矩陣特征值的問(wèn)題測(cè)試toeplitz生成Toeplitz矩陣vander生成范德蒙矩陣wilkinson生成Wilkinson矩陣compan生成多項(xiàng)式的伴隨矩陣12/10/202266特殊矩陣生成(1/2)函數(shù)功能[]生成空白矩陣zeros生特殊矩陣生成(2/2)1.對(duì)角矩陣的生成對(duì)角矩陣指除對(duì)角線以外其他元素為0的矩陣。函數(shù)diag可以生成對(duì)角矩陣。該函數(shù)的用法為:A=diag(V,K),其中V是一個(gè)向量,K是一個(gè)整數(shù)。該函數(shù)返回一個(gè)矩陣,矩陣的第K個(gè)對(duì)角線為V。K在默認(rèn)情況下為0,表示矩陣的主對(duì)角線,K大于0時(shí)表示主對(duì)角線的上方,小于0時(shí)為主對(duì)角線的下方。V=diag(A,K),其中A時(shí)一個(gè)矩陣。K與上面的語(yǔ)句相同。該語(yǔ)句返回矩陣A第K個(gè)對(duì)角線上的元素組成的矩陣。2.魔術(shù)矩陣的生成 魔術(shù)矩陣是一種經(jīng)常遇到的矩陣,除了二階方陣之外,魔術(shù)矩陣的每一行、每一列以及每條主對(duì)角線的元素之和都相同。在MATLAB中,magic函數(shù)用于生成魔術(shù)矩陣。其調(diào)用方法為magic(N),其中N為正整數(shù),并且N≠2.12/10/202267特殊矩陣生成(2/2)1.對(duì)角矩陣的生成12/10/202向量和矩陣的范數(shù)向量的范數(shù)定義為,其中,最常用的值為1、2和無(wú)窮大。矩陣的范數(shù)定義為,其中,最常用的值為1、2和無(wú)窮大。向量和矩陣的范數(shù)可以通過(guò)函數(shù)norm求解。該函數(shù)的調(diào)用格式為n=norm(A,p),其中p用于指定范數(shù)的類型。p可以為所有大于1的常數(shù),最常用的為1、2、inf和'fro','fro'為求解矩陣A的Frobenius范數(shù)。當(dāng)p省略時(shí),默認(rèn)值為2。12/10/202268向量和矩陣的范數(shù)向量的范數(shù)定義為,其中,最常用的值為1矩陣和線性代數(shù)線性方程組逆矩陣和行列式矩陣分解矩陣指數(shù)函數(shù)和冪函數(shù)矩陣特征值矩陣奇異值分解12/10/202269矩陣和線性代數(shù)線性方程組12/10/202210線性方程組(1/2)利用矩陣求逆的方法求解方程組 我們首先求系數(shù)矩陣的逆,然后利用矩陣的逆求解方程組的解。利用矩陣的左除符號(hào)“\”或者右除符號(hào)“/”求解方程組12/10/202270線性方程組(1/2)利用矩陣求逆的方法求解方程組12/10線性方程組(2/2)利用左除符號(hào)和右除符號(hào)求解線性方程組,避免了矩陣求逆操作,因此系數(shù)矩陣不必為方陣。如果系數(shù)矩陣的維數(shù)為,則有三種情況:,此時(shí)方程組為超定方程組,MATLAB將給出最小二乘解;,此時(shí)方程組為方陣系統(tǒng),MATLAB給出精確解;,此時(shí)方程組為欠約束方程組,MATLAB將給出一組基解,該解中包含最多個(gè)非零元素。在采用除法符號(hào)(包括左除和右除)求解線性方程組時(shí),MATLAB采用因式分解法求解方程組。盡管MATLAB提供了兩種方法,一般更傾向于采用第二種方法,該方法用到較少的浮點(diǎn)數(shù)運(yùn)算,執(zhí)行速度較快,另外,由于采用分解法,得出的結(jié)果要精確的多。12/10/202271線性方程組(2/2)利用左除符號(hào)和右除符號(hào)求解線性方程組,避逆矩陣和行列式矩陣行列式 在MATLAB中,矩陣的行列式用函數(shù)det求解。調(diào)用格式為det(A),其中A為方陣。矩陣求逆 對(duì)于非奇異方陣,如果存在方陣,滿足并且,則稱為矩陣的逆,記為,在MATLAB中,用inv(A)來(lái)實(shí)現(xiàn)矩陣逆的求解。12/10/202272逆矩陣和行列式矩陣行列式12/10/202213矩陣分解Cholesky分解LU分解QR分解(正交分解)12/10/202273矩陣分解Cholesky分解12/10/202214Cholesky分解Cholesky分解將對(duì)稱矩陣表示為一個(gè)三角矩陣與其轉(zhuǎn)置的乘積的形式,即,其中為對(duì)稱矩陣,為上三角矩陣。并非所有的對(duì)稱矩陣都能進(jìn)行Cholesky分解,只有正定矩陣能夠進(jìn)行Cholesky分解,如Pascal矩陣。在MATLAB中Cholesky分解由函數(shù)chol實(shí)現(xiàn),該函數(shù)對(duì)輸入矩陣進(jìn)行Cholesky分解,返回其對(duì)應(yīng)的三角矩陣。Cholesky分解同樣適用于復(fù)數(shù)矩陣。如果復(fù)數(shù)矩陣滿足,其中表示矩陣的共軛轉(zhuǎn)置。如果矩陣存在Cholesky分解則稱其為Hermitian正定。12/10/202274Cholesky分解Cholesky分解將對(duì)稱矩陣表示LU分解矩陣的LU分解將一個(gè)方陣表示為一個(gè)下三角置換矩陣和一個(gè)上三角矩陣乘積的形式。如,其中為下三角置換矩陣,為上三角矩陣。MATLAB中LU分解可以通過(guò)函數(shù)lu實(shí)現(xiàn)。通過(guò)矩陣的LU分解,可以實(shí)現(xiàn)線性方程組的快速求解。另外矩陣的

LU分解可用于矩陣快速求逆和求行列式,有det(A)=det(L)*det(U)和inv(A)=inv(U)*inv(L)。12/10/202275LU分解矩陣的LU分解將一個(gè)方陣表示為一個(gè)下三角置換QR分解(正交分解)(1/2)如果矩陣滿足,則為正交矩陣。正交矩陣為實(shí)矩陣,其每列為單位向量,并且各列互相正交。正交矩陣最簡(jiǎn)單的例子為二維旋轉(zhuǎn)矩陣:對(duì)于復(fù)數(shù)矩陣,對(duì)應(yīng)的概念為酉矩陣。在數(shù)值計(jì)算中正交矩陣有著重要的應(yīng)用,因?yàn)檎痪仃嚲哂虚L(zhǎng)度不變性、角度不變性,并且不會(huì)擴(kuò)大誤差。矩陣的正交分解將矩陣表示為正交矩陣(或酉矩陣)和上三角矩陣的乘積。如或,其中為正交矩陣或酉矩陣,為上三角矩陣,為置換矩陣。正交分解有四種形式,包括完全分解、簡(jiǎn)化分解、帶置換矩陣的分解和不帶置換矩陣的分解。12/10/202276QR分解(正交分解)(1/2)如果矩陣滿足QR分解(正交分解)(2/2)完全分解 過(guò)約束線性系統(tǒng)的系數(shù)矩陣函數(shù)超過(guò)列數(shù),為一個(gè)矩陣并且,記為,則完全正交分解產(chǎn)生一個(gè)的正交矩陣和一個(gè)的上三角矩陣,滿足。MATLAB中矩陣的完全分解由函數(shù)qr實(shí)現(xiàn)。簡(jiǎn)化分解 矩陣的簡(jiǎn)化正交分解可以節(jié)省存儲(chǔ)空間和運(yùn)算時(shí)間。正交分解可以通過(guò)在qr函數(shù)中設(shè)置第二個(gè)參數(shù)為0實(shí)現(xiàn)。與LU分解不同,QR分解不需要對(duì)矩陣進(jìn)行旋轉(zhuǎn)或者置換,如上面的兩個(gè)例子。但是如果對(duì)矩陣進(jìn)行置換可以避免由于矩陣奇異造成的誤差。選擇置換后,在分解的每一步,選擇剩下列中范數(shù)最大的一列作為分解的基。這樣得到的結(jié)果中,R的對(duì)角線元素按照降序排列。包含置換的正交分解可以通過(guò)增加qr函數(shù)的輸出參數(shù)得到。12/10/202277QR分解(正交分解)(2/2)完全分解12/10/202矩陣指數(shù)函數(shù)和冪函數(shù)矩陣的正整數(shù)冪 如果A為方陣,p為正整數(shù),則A^p表示p個(gè)A相乘。矩陣的負(fù)數(shù)冪與分?jǐn)?shù)冪 如果A為非奇異方陣,則A^(-p)等價(jià)于inv(A)^p。MATLAB中,允許對(duì)矩陣進(jìn)行分?jǐn)?shù)冪運(yùn)算,運(yùn)算結(jié)果依賴于矩陣特征值的分布情況。矩陣指數(shù)運(yùn)算 expm用于實(shí)現(xiàn)矩陣的指數(shù)運(yùn)算。 線性系統(tǒng)的解可以表示為,其中的矩陣指數(shù)運(yùn)算可以通過(guò)expm完成。12/10/202278矩陣指數(shù)函數(shù)和冪函數(shù)矩陣的正整數(shù)冪12/10/20221矩陣特征值矩陣的特征值和特征值分解在線性代數(shù)中一直扮演著重要的角色。在MATLAB中,函數(shù)eig實(shí)現(xiàn)矩陣的特征值計(jì)算和特征值分解。例4-23利用函數(shù)eig實(shí)現(xiàn)矩陣的特征值計(jì)算利用例2-22中的矩陣A。在命令窗口中輸入:>>A=[0,-6,-1;6,2,-16;-5,20,-10];A=0-6-162-16-520-10>>lambda=eig(A)lambda=-3.0710-2.4645+17.6008i-2.4645-17.6008i上例實(shí)現(xiàn)對(duì)矩陣特征值的計(jì)算,如果在調(diào)用eig函數(shù)時(shí),設(shè)置輸出參數(shù)的個(gè)數(shù)為2,則實(shí)現(xiàn)對(duì)矩陣的特征值分解。12/10/202279矩陣特征值矩陣的特征值和特征值分解在線性代數(shù)中一直扮演著重矩陣奇異值分解對(duì)于矩陣,如果存在數(shù)和向量、,滿足和,則稱為的奇異值,、為的奇異向量。如果將矩陣的奇異值寫(xiě)為對(duì)角矩陣的格式,記為(不足的部分記為0);以奇異向量為列并擴(kuò)充為正交矩陣和,則有和。和為正交矩陣,則得到,即為矩陣的奇異值分解。在MATLAB中,函數(shù)svd實(shí)現(xiàn)矩陣的奇異值分解。與矩陣的QR分解相似,奇異值分解也可以有簡(jiǎn)化分解。方法與QR分解相同,即在輸入?yún)?shù)中以0標(biāo)志。如在命令窗口中繼續(xù)輸入:12/10/202280矩陣奇異值分解對(duì)于矩陣,如果存在數(shù)和向量稀疏型矩陣(1/2)在很多實(shí)際應(yīng)用中,用戶往往會(huì)遇到只有少數(shù)非0元素的矩陣,我們稱這些矩陣為稀疏矩陣。如果對(duì)稀疏矩陣中的全部元素進(jìn)行存儲(chǔ)和計(jì)算則會(huì)導(dǎo)致時(shí)間和空間上的極大浪費(fèi)。因此,為了更有效的存儲(chǔ)和處理稀疏矩陣,MATLAB中采用了一些優(yōu)化技術(shù):MATLAB中只存儲(chǔ)稀疏矩陣中的非0元素,并用行索引和列索引表明每個(gè)非0元素在原矩陣中的位置;同樣,MATLAB中采用了一些專門(mén)的算法來(lái)處理稀疏矩陣,以避免對(duì)0元素的運(yùn)算,并且最大限度地減少中間結(jié)果中的非0元素。12/10/202281稀疏型矩陣(1/2)在很多實(shí)際應(yīng)用中,用戶往往會(huì)遇到只有少稀疏型矩陣(2/2)稀疏型矩陣的生成稀疏矩陣與滿矩陣的相互轉(zhuǎn)化稀疏矩陣的操作12/10/202282稀疏型矩陣(2/2)稀疏型矩陣的生成12/10/20222稀疏型矩陣的生成(1/3)MATLAB不會(huì)自動(dòng)生成稀疏矩陣,因此,當(dāng)用戶判定一個(gè)矩陣為稀疏矩陣時(shí),利用相關(guān)函數(shù)生成稀疏矩陣。MATLAB中用于生成稀疏矩陣的函數(shù)如表4-2所示。函數(shù)功能speye生成單位稀疏矩陣sprand生成均勻分布的隨機(jī)稀疏矩陣sprandn生成正態(tài)分布的隨機(jī)稀疏矩陣sprandsym生成對(duì)稱隨機(jī)稀疏矩陣spdiags生成對(duì)角隨機(jī)稀疏矩陣12/10/202283稀疏型矩陣的生成(1/3)MATLAB不會(huì)自動(dòng)生成稀疏矩陣稀疏型矩陣的生成(2/3)speye函數(shù)speye函數(shù)的調(diào)用格式為:S=speye(m,n);S=speye(n),分別用于生成階主對(duì)角線元素為一的稀疏矩陣和階單位稀疏矩陣。12/10/202284稀疏型矩陣的生成(2/3)speye函數(shù)12/10/20稀疏型矩陣的生成(3/3)sprand和sprandn函數(shù)這兩個(gè)函數(shù)的調(diào)用格式完全相同。兩個(gè)函數(shù)的唯一區(qū)別為sprand函數(shù)生成的稀疏矩陣元素服從均勻分布,而sprandn函數(shù)生成的稀疏矩陣元素服從正態(tài)分布。下面以sprand函數(shù)為例介紹這兩個(gè)函數(shù)的應(yīng)用。sprand函數(shù)的調(diào)用格式有:R=sprand(S),生成與稀疏矩陣S結(jié)構(gòu)完全相同的稀疏矩陣,矩陣元素服從均勻分布;R=sprand(m,n,density),生成階稀疏矩陣,矩陣非0元素個(gè)數(shù)大約為density*m*n。R=sprand(m,n,density,rc),與上面的命令類似。如果rc為數(shù)值,則生成的矩陣條件數(shù)的倒數(shù)接近rc;如果rc為一個(gè)長(zhǎng)度不大于min(m,n)的一維向量,則生成的矩陣以rc的元素為奇異值,其他奇異值為0。注意,不能用命令sprand(n)生成n階稀疏矩陣。12/10/202285稀疏型矩陣的生成(3/3)sprand和sprandn稀疏矩陣與滿矩陣的相互轉(zhuǎn)化MATLAB提供了一些函數(shù)用于在稀疏矩陣和滿矩陣之間進(jìn)行轉(zhuǎn)換,這些函數(shù)如表4-3所示。函數(shù)功能sparse將滿矩陣轉(zhuǎn)化為稀疏矩陣full將稀疏矩陣轉(zhuǎn)化為滿矩陣find查找非0元的索引spconvert導(dǎo)入稀疏矩陣12/10/202286稀疏矩陣與滿矩陣的相互轉(zhuǎn)化MATLAB提供了一些函數(shù)用于sparse函數(shù)sparse函數(shù)的調(diào)用格式如下:S=sparse(A),該命令將矩陣轉(zhuǎn)化為稀疏矩陣。S=sparse(i,j,s,m,n,nzmax),該命令生成一個(gè)階稀疏矩陣,其中、、分別為該矩陣非0元的橫坐標(biāo)向量、縱坐標(biāo)向量和值,、、有相同的長(zhǎng)度。該矩陣的非0元數(shù)目不超過(guò)nzmax。S=sparse(i,j,s,m,n),該命令與上面一條命令功能類似,生成的稀疏矩陣的非0元個(gè)數(shù)由的長(zhǎng)度確定。S=sparse(i,j,s),該命令生成的稀疏矩陣維數(shù)為。S=sparse(m,n),該命令生成一個(gè)初始稀疏矩陣,矩陣的全部元素為0。12/10/202287sparse函數(shù)sparse函數(shù)的調(diào)用格式如下:12/1full函數(shù)和find函數(shù)full函數(shù) full函數(shù)的應(yīng)用比較簡(jiǎn)單,其調(diào)用格式為X=full(S),該命令將稀疏矩陣S轉(zhuǎn)換為滿矩陣。find函數(shù) find既適用于滿矩陣,也適用于稀疏矩陣。該函數(shù)在應(yīng)用于稀疏矩陣時(shí)用于查找稀疏矩陣中的非0元素。該函數(shù)可以返回非0元素的位置、行列向量和元素值。12/10/202288full函數(shù)和find函數(shù)full函數(shù)12/10/常用的稀疏矩陣操作函數(shù)MATLAB中的大部分?jǐn)?shù)學(xué)函數(shù)可以用于稀疏矩陣,功能和調(diào)用格式和應(yīng)用于滿矩陣時(shí)相同。另外,MATLAB還提供了一些函數(shù)專門(mén)應(yīng)用于稀疏矩陣。常用的稀疏矩陣操作函數(shù)如表所示。函數(shù)功能nnz返回矩陣非0元的個(gè)數(shù)nonzeros返回矩陣的非0元素構(gòu)成的向量,以矩陣的列為序nzmax返回為矩陣非0元分配的存儲(chǔ)空間大小spones將矩陣的所有非0元素置為1spalloc為稀疏矩陣分配內(nèi)存空間issparse判斷是否為稀疏矩陣,是則返回值TRUE,否則返回FALSE。spfun對(duì)稀疏矩陣的非0元素進(jìn)行操作spy稀疏矩陣的圖形表示12/10/202289常用的稀疏矩陣操作函數(shù)MATLAB中的大部分?jǐn)?shù)學(xué)函數(shù)可以用多項(xiàng)式與插值

多項(xiàng)式在數(shù)學(xué)中有著極為重要的作用,同時(shí)多項(xiàng)式的運(yùn)算也是工程和應(yīng)用中經(jīng)常遇到的問(wèn)題。MATLAB提供了一些專門(mén)用于處理多項(xiàng)式的函數(shù),用戶可以應(yīng)用這些函數(shù)對(duì)多項(xiàng)式進(jìn)行操作。MATLAB中對(duì)多項(xiàng)式的操作包括多項(xiàng)式求根、多項(xiàng)式的四則運(yùn)算及多項(xiàng)式的微積分。12/10/202290多項(xiàng)式與插值多項(xiàng)式在數(shù)學(xué)中有著極為重要多項(xiàng)式的表示在MATLAB中多項(xiàng)式用一個(gè)行向量表示,向量中的元素為該多項(xiàng)式的系數(shù),按照降序排列。如多項(xiàng)式可以表示為向量p=[9743]。用戶可以創(chuàng)建向量的方式創(chuàng)建多項(xiàng)式,再將其顯示為多項(xiàng)式,

12/10/202291多項(xiàng)式的表示在MATLAB中多項(xiàng)式用一個(gè)行向量表示,向量多項(xiàng)式的四則運(yùn)算由于多項(xiàng)式是利用向量來(lái)表示,多項(xiàng)式的四則運(yùn)算可以轉(zhuǎn)化為向量的運(yùn)算。多項(xiàng)式的加減為對(duì)應(yīng)項(xiàng)系數(shù)的加減,因此可以通過(guò)向量的加減來(lái)實(shí)現(xiàn)。但是在向量的加減中兩個(gè)向量需要有相同的長(zhǎng)度,因此在進(jìn)行多項(xiàng)式加減時(shí),需要將短的向量前面補(bǔ)0。多項(xiàng)式的乘法實(shí)際上是多項(xiàng)式系數(shù)向量之間的卷積運(yùn)算,可以通過(guò)MATLAB中的卷積函數(shù)conv來(lái)完成。多項(xiàng)式的除法為乘法的逆運(yùn)算,可以通過(guò)反卷積函數(shù)deconv來(lái)實(shí)現(xiàn)。12/10/202292多項(xiàng)式的四則運(yùn)算由于多項(xiàng)式是利用向量來(lái)表示,多項(xiàng)式的四則運(yùn)算多項(xiàng)式的其他運(yùn)算除多項(xiàng)式的四則運(yùn)算外,MATLAB還提供了多項(xiàng)式的一些其他運(yùn)算。這些運(yùn)算及其對(duì)應(yīng)的函數(shù)如表所示。函數(shù)功能roots多項(xiàng)式求根polyval多項(xiàng)式求值polyvalm矩陣多項(xiàng)式求值polyder多項(xiàng)式求導(dǎo)poly求矩陣的特征多項(xiàng)式;或者求一個(gè)多項(xiàng)式,其根為指定的數(shù)值polyfit多項(xiàng)式曲線擬合residue求解余項(xiàng)

12/10/202293多項(xiàng)式的其他運(yùn)算除多項(xiàng)式的四則運(yùn)算外,MATLAB還提供了多項(xiàng)式的運(yùn)算函數(shù)(1/2)roots函數(shù)和poly函數(shù) 這兩個(gè)函數(shù)為功能互逆的兩個(gè)函數(shù)。roots函數(shù)用于求解多項(xiàng)式的根。該函數(shù)的輸入?yún)?shù)為多項(xiàng)式的系數(shù)組成的行向量,返回值為由多項(xiàng)式的根組成的列向量。poly函數(shù)用于生成根為制定數(shù)值的多項(xiàng)式。polyval函數(shù) polyval函數(shù)用于多項(xiàng)式求值。對(duì)于給定的多項(xiàng)式,利用該函數(shù)可以計(jì)算該多項(xiàng)式在任意點(diǎn)的值。12/10/202294多項(xiàng)式的運(yùn)算函數(shù)(1/2)roots函數(shù)和poly函數(shù)多項(xiàng)式的運(yùn)算函數(shù)(2/2)polyder函數(shù)函數(shù)polyder用于多項(xiàng)式求導(dǎo)。該函數(shù)可以用于求解一個(gè)多項(xiàng)式的導(dǎo)數(shù)、兩個(gè)多項(xiàng)式乘積的導(dǎo)數(shù)和兩個(gè)多項(xiàng)式商的導(dǎo)數(shù)。該函數(shù)的用法為:q=polyder(p)該命令計(jì)算多項(xiàng)式p的導(dǎo)數(shù)。c=polyder(a,b)該命令實(shí)現(xiàn)多項(xiàng)式a、b的積的導(dǎo)數(shù)。[q,d]=polyder(a,b)該命令實(shí)現(xiàn)多項(xiàng)式a、b的商的導(dǎo)數(shù),q/d為最后的結(jié)果。

12/10/202295多項(xiàng)式的運(yùn)算函數(shù)(2/2)polyder函數(shù)12/10多項(xiàng)式擬合曲線擬合是工程中經(jīng)常要用到的技術(shù)之一。MATLAB提供了曲線擬合工具箱滿足用戶要求,另外,還提供了多項(xiàng)式擬合函數(shù)。函數(shù)polyfit給出在最小二乘意義下最佳擬合系數(shù)。該函數(shù)的調(diào)用格式為: p=polyfit(x,y,n) 其中x、y分別為待擬合數(shù)據(jù)的x坐標(biāo)和y坐標(biāo),n用于指定返回多項(xiàng)式的次數(shù)。12/10/202296多項(xiàng)式擬合曲線擬合是工程中經(jīng)常要用到的技術(shù)之一。MATLA數(shù)據(jù)插值根據(jù)已知數(shù)據(jù)推斷未知數(shù)據(jù),則需要使用數(shù)據(jù)插值的概念。MATLAB提供了對(duì)數(shù)組的任意一維進(jìn)行插值的工具,這些工具大多需要用到多維數(shù)組的操作。本節(jié)將對(duì)數(shù)據(jù)插值做簡(jiǎn)單的介紹,主要介紹一維插值。MATLAB中一維插值主要有:多項(xiàng)式插值快速傅立葉變換(FFT)插值。

12/10/202297數(shù)據(jù)插值根據(jù)已知數(shù)據(jù)推斷未知數(shù)據(jù),則需要使用數(shù)據(jù)插值的概念。一維插值一維插值在曲線擬合和數(shù)據(jù)分析中具有重要的地位。在MATLAB中,一維插值由函數(shù)interp1實(shí)現(xiàn)。該函數(shù)的調(diào)用格式為 yi=interp1(x,y,xi,method)x、y:采用數(shù)據(jù)的x坐標(biāo)和y坐標(biāo)xi:待插值的位置method:采用的插值方法該語(yǔ)句返回函數(shù)在點(diǎn)xi處的插值結(jié)果。該語(yǔ)句中的參數(shù)method可以選擇的內(nèi)容如表所示。參數(shù)對(duì)應(yīng)方法'nearest'最近鄰插值'linear'線性插值'spline'三次樣條插值'pchip'或'cubic'三次插值12/10/202298一維插值一維插值在曲線擬合和數(shù)據(jù)分析中具有重要的地位。在M函數(shù)運(yùn)算函數(shù)的表示數(shù)學(xué)函數(shù)圖象的繪制函數(shù)極值函數(shù)求解數(shù)值積分含參數(shù)函數(shù)的使用

12/10/202299函數(shù)運(yùn)算函數(shù)的表示12/10/202240函數(shù)的表示MATLAB中提供了兩種函數(shù)表示的方法:利用M文件將函數(shù)定義為MALTAB函數(shù) 將函數(shù)定義為MALTAB函數(shù),當(dāng)需要調(diào)用該函數(shù)時(shí),需要通過(guò)符號(hào)“@”獲取函數(shù)句柄,利用函數(shù)句柄實(shí)現(xiàn)對(duì)函數(shù)的操作。匿名函數(shù)方法直接創(chuàng)建函數(shù),如語(yǔ)句:>>fh=@(x)1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6;

12/10/2022100函數(shù)的表示MATLAB中提供了兩種函數(shù)表示的方法:12數(shù)學(xué)函數(shù)圖象的繪制函數(shù)圖象具有直觀的特性,可以通過(guò)函數(shù)圖象查看出一個(gè)函數(shù)的總體特征。MATLAB提供了繪制函數(shù)圖象的函數(shù)fplot,方便用戶繪制函數(shù)的圖象。下面介紹該函數(shù)的用法。該函數(shù)的調(diào)用格式如下:fplot(fun,limits),y=f(x)fplot(fun,limits,LineSpec)fplot(fun,limits,tol)fplot(fun,limits,tol,LineSpec)fplot(fun,limits,n)fun可以為MATLAB函數(shù)的M文件名,可以是包含變量x的字符串,該字符串可以傳遞給函數(shù)eval,還可以是函數(shù)句柄。參數(shù)limits用于指定繪制圖象的范圍。limits是一個(gè)向量,用于指定x軸的范圍,格式為[xminxmax]。limits也可以同時(shí)指定y軸的范圍,格式為[xminxmaxyminymax]。12/10/2022101數(shù)學(xué)函數(shù)圖象的繪制函數(shù)圖象具有直觀的特性,可以通過(guò)函數(shù)圖象函數(shù)極值一元函數(shù)的極小值fminbnd求得函數(shù)在給定區(qū)間內(nèi)的局部極小值。該函數(shù)的調(diào)用格式為 x=fminbnd(fun,x1,x2,options)fun為函數(shù)句柄x1和x2分別用于指定區(qū)間的左右邊界options用于指定程序的其他參數(shù),其元素取值如表所示。

名稱描述Display控制結(jié)果的輸出,參數(shù)可以為“off”,不輸出任何結(jié)果;“iter”,輸出每個(gè)插值點(diǎn)的值;“final”,輸出最后結(jié)果;“notify”為默認(rèn)值,僅當(dāng)函數(shù)不收斂時(shí)輸出結(jié)果FunValCheck檢測(cè)目標(biāo)函數(shù)值是否有效。選擇on則當(dāng)函數(shù)返回?cái)?shù)據(jù)為復(fù)數(shù)或空數(shù)據(jù)時(shí)發(fā)出警告;off則不發(fā)出警告MaxFunEvals允許進(jìn)行函數(shù)評(píng)價(jià)的最大次數(shù)MaxIter最大迭代次數(shù)OutputFcn指定每次迭代時(shí)調(diào)用的用戶自定義的函數(shù)TolX返回的x的誤差12/10/2022102函數(shù)極值一元函數(shù)的極小值名稱描述Display控制結(jié)果的多元函數(shù)的極小值MATLAB提供了函數(shù)fminsearch用于計(jì)算多元函數(shù)的極小值。fminsearch函數(shù)內(nèi)部應(yīng)用了Nelder-Mead單一搜索算法,通過(guò)調(diào)整x的各個(gè)元素的值來(lái)尋找f(x)的極小值。該算法雖然對(duì)于平滑函數(shù)搜索效率沒(méi)有其他算法高,但它不需要梯度信息,從而擴(kuò)展了其應(yīng)用范圍。因此,該算法特別適用于不太平滑、難以計(jì)算梯度信息或梯度信息價(jià)值不大的函數(shù)。用于求解函數(shù)極小值的函數(shù)還有fminbnd。fminbnd函數(shù)的用法與fminsearch函數(shù)的用法基本相同,不同之處在于:fminbnd函數(shù)的輸入?yún)?shù)為尋找最小值的區(qū)間,并且只能用于求解一元函數(shù)的極值,fminsearch函數(shù)的輸入?yún)?shù)為初始值。12/10/2022103多元函數(shù)的極小值MATLAB提供了函數(shù)fminsearc函數(shù)求解可以使用函數(shù)fzero()來(lái)求一元函數(shù)的零點(diǎn)。尋找一元函數(shù)零點(diǎn)時(shí),可以指定一個(gè)初始點(diǎn),或者指定一個(gè)區(qū)間。當(dāng)指定一個(gè)初始點(diǎn)時(shí),此函數(shù)在初始點(diǎn)附近尋找一個(gè)使函數(shù)值變號(hào)的區(qū)間,如果沒(méi)有找到這樣的區(qū)間,則函數(shù)返回NaN。該函數(shù)的調(diào)用格式為:x=fzero(fun,x0),x=fzero(fun,[x1,x2]):尋找x0附近或者區(qū)間[x1,x2]內(nèi)fun的零點(diǎn),返回該點(diǎn)的x坐標(biāo);x=fzero(fun,x0,options),x=fzero(fun,[x1,x2],options):通過(guò)options設(shè)置參數(shù);[x,fval]=fzero(...):返回零點(diǎn)的同時(shí)返回該點(diǎn)的函數(shù)值;[x,fval,exitflag]=fzero(...):返回零點(diǎn)、該點(diǎn)的函數(shù)值及程序退出的標(biāo)志;[x,fval,exitflag,output]=fzero(...):返回零點(diǎn)

溫馨提示

  • 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)論