第3講MATLAB數(shù)值計(jì)算_第1頁(yè)
第3講MATLAB數(shù)值計(jì)算_第2頁(yè)
第3講MATLAB數(shù)值計(jì)算_第3頁(yè)
第3講MATLAB數(shù)值計(jì)算_第4頁(yè)
第3講MATLAB數(shù)值計(jì)算_第5頁(yè)
已閱讀5頁(yè),還剩33頁(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)介

Matlab數(shù)值計(jì)算

基礎(chǔ)功能內(nèi)容向量(一維矩陣)矩陣數(shù)組多項(xiàng)式一、向量輸入及其運(yùn)算向量的生成:直接輸入

向量元素用[]括起來(lái)

行向量:元素之間用空格或逗號(hào)分隔

列向量:元素之間用分號(hào)分隔用冒號(hào)表達(dá)式生成

格式:X=X0:step:Xn

step缺省則默認(rèn)為1線性等分向量的生成

格式:y=linspace(x1,x2,n)

生成n維行向量,y(1)=x1、y(n)=x(2)

若n缺省,則默認(rèn)n=100對(duì)數(shù)等分向量的生成

格式:y=logspace(x1,x2,n)

生成n維行向量,y(1)=10^x1、y(n)=10^x(2)

若n缺省,則默認(rèn)n=50向量的運(yùn)算加、減、數(shù)乘點(diǎn)積dot(a,b),a、b必須同維叉積cross(a,b),a、b為三維向量?jī)蓚€(gè)三維向量的叉積等于一個(gè)新的向量,該向量與前兩者垂直,且長(zhǎng)度為前兩者張成的平行四邊形面積;混合積dot(a,cross(b,c))以a,b,c為棱的平行六面體的體積二、MATLAB矩陣2.1矩陣的建立

1.直接輸入法將矩陣的元素用方括號(hào)括起來(lái),按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號(hào)分隔,不同行的元素之間用分號(hào)分隔。例如

A=[123;456;789]

2.利用M文件建立矩陣對(duì)于比較大且比較復(fù)雜的矩陣,可以為它專門(mén)建立一個(gè)M文件。

利用M文件建立MYMAT矩陣。

(1)啟動(dòng)有關(guān)編輯程序或MATLAB文本編輯器,并輸入待建矩陣.(2)把輸入的內(nèi)容以純文本方式存盤(pán)(設(shè)文件名為mymatrix.m)。

(3)運(yùn)行該M文件,就會(huì)自動(dòng)建立一個(gè)名為MYMAT的矩陣,可供以后使用。

3.利用MATLAB函數(shù)建立特殊矩陣幾個(gè)產(chǎn)生常用特殊矩陣的函數(shù):全零陣zeros、全一陣ones、單位陣eye、均勻分布隨機(jī)陣rand、正態(tài)分布隨機(jī)陣randn。這幾個(gè)函數(shù)的調(diào)用格式相似,下面以產(chǎn)生零矩陣的zeros函數(shù)為例進(jìn)行說(shuō)明。其調(diào)用格式是:

zeros(m)產(chǎn)生m×m零矩陣

zeros(m,n)產(chǎn)生m×n零矩陣。

zeros(size(A))產(chǎn)生與矩陣A同樣大小的零矩陣

例分別建立3×3、3×2和與矩陣A同樣大小的零矩陣。(1)建立一個(gè)3×3零矩陣:zeros(3)(2)建立一個(gè)3×2零矩陣:zeros(3,2)(3)建立與矩陣A同樣大小零矩陣:zeros(size(A))

此外,常用的函數(shù)還有reshape(A,m,n),它在矩陣總元素保持不變的前提下,將矩陣A重新排成m×n的二維矩陣。

例產(chǎn)生5階隨機(jī)方陣A,其元素為[10,90]區(qū)間的隨機(jī)整數(shù),然后判斷A的元素是否能被3整除。

(1)生成5階隨機(jī)方陣A。

A=fix((90-10+1)*rand(5)+10)(2)判斷A的元素是否可以被3整除。

P=rem(A,3)==0其他特殊矩陣函數(shù)希爾伯特矩陣hilb(n)希爾伯特矩陣的逆矩陣invhilb(n)托普利茲矩陣toeplitz(k,r)、toeplitz(c)友矩陣compan(p)生成多項(xiàng)式p的友矩陣,也就是他的特征多項(xiàng)式是p;hadamard(k)生成hadamard矩陣hankel函數(shù),生成hankel矩陣magic(n),生成n×n的魔方矩陣pascal函數(shù),生成pascal矩陣rosser,給出Rosser矩陣vander(x),給出向量x的范德蒙矩陣wilkinson(n),給出Wilkinson特征值測(cè)試矩陣

4.建立大矩陣大矩陣可由方括號(hào)中的小矩陣建立起來(lái)。例如

A=[123;456;789];C=[A,eye(size(A));ones(size(A)),A]

2.2矩陣的拆分1.矩陣元素MATLAB允許用戶對(duì)一個(gè)矩陣的單個(gè)元素進(jìn)行賦值和操作。例如

A(3,2)=200也可以采用矩陣元素的序號(hào)來(lái)引用矩陣元素。

2.矩陣拆分

(1)利用冒號(hào)表達(dá)式獲得子矩陣①A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。②A(i:i+m,:)表示取A矩陣第i~i+m行的全部元素;A(:,k:k+m)表示取A矩陣第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩陣第i~i+m行內(nèi),并在第k~k+m列中的所有元素。此外,還可利用一般向量和end運(yùn)算符等來(lái)表示矩陣下標(biāo),從而獲得子矩陣。end表示某一維的末尾元素下標(biāo)。如a(1,end)

(2)利用空矩陣刪除矩陣的元素在MATLAB中,定義[]為空矩陣。給變量X賦空矩陣的語(yǔ)句為X=[]。注意,X=[]與clearX不同,clear是將X從工作空間中刪除,而空矩陣則存在于工作空間,只是維數(shù)為0。

2.3多維矩陣以三維矩陣為例,常用的方法有4種:(1)對(duì)二維矩陣進(jìn)行擴(kuò)充得到三維矩陣。(2)若干個(gè)同樣大小的二維矩陣進(jìn)行組合得到三維矩陣。(3)除產(chǎn)生單位矩陣的eye函數(shù)外,前面介紹的建立矩陣的函數(shù)都可以延伸到三維矩陣。(4)用cat函數(shù)構(gòu)建多維矩陣。一般調(diào)用格式是:

cat(n,A1,A2,…,An)cat函數(shù)把大小相同的若干矩陣,沿第n維方向串接成高維矩陣。當(dāng)n=1和2時(shí),沿行和列的方向串接,結(jié)果是二維矩陣。當(dāng)n=3時(shí),沿頁(yè)的方向串接,結(jié)果是三維矩陣。

2.4矩陣的運(yùn)算2.4.1基本算術(shù)運(yùn)算

1.四則運(yùn)算等

MATLAB的基本算術(shù)運(yùn)算有:+(加)、-(減)、*(乘)、/(右除)、\(左除)、^(乘方)。幾點(diǎn)說(shuō)明:1)加減運(yùn)算與數(shù)字運(yùn)算格式相同,要求兩矩陣是同階的;

2)乘法要求兩矩陣有相鄰公共維;

3)用矩陣除法求解方程組Ax=b,A是(n×m)階矩陣討論A的情況:n=m且非奇異,稱恰定方程;n>m,超定方程,沒(méi)有精確解,matlab使用最小二乘法來(lái)求解,來(lái)找到一個(gè)向量x使它對(duì)n個(gè)方程的總誤差最??;方法:A\b如果b是矩陣B,則對(duì)B中的每一列相應(yīng)的方程組求解

nnls(A,b)求非負(fù)的最小二乘解

lscov(A,b,v)求在已知協(xié)方差v的情況下的最小二乘解n<m,欠定方程,方程組有無(wú)窮多解,matlab在求解時(shí)給出一組解,無(wú)警告信息。2矩陣與常數(shù)間的運(yùn)算常數(shù)與矩陣的各元素間進(jìn)行運(yùn)算,當(dāng)作除法時(shí),常數(shù)只能做除數(shù)。3矩陣的逆運(yùn)算

inv命令4矩陣的行列式運(yùn)算

det函數(shù)

3矩陣的逆運(yùn)算

inv命令4矩陣的行列式運(yùn)算

det函數(shù)5矩陣的冪運(yùn)算

^算符6矩陣的指數(shù)運(yùn)算

expm(X)常用矩陣指數(shù)函數(shù)

expm1(X)Pade法求矩陣指數(shù)

expm2(X)Taylor法求矩陣指數(shù)

expm3(X)特征值分解法求矩陣指數(shù)

7矩陣的對(duì)數(shù)運(yùn)算

logm(A)8矩陣開(kāi)方運(yùn)算

sqrtm函數(shù)2.4.2矩陣的函數(shù)運(yùn)算特征向量、特征值計(jì)算函數(shù)

eig、eigs奇異值函數(shù)

svd、svds條件數(shù)函數(shù)

cond、condest、rcond特征值的條件數(shù)

condeig范數(shù)函數(shù)

norm、normest秩函數(shù)

rank跡函數(shù)

trace

舉例:1.矩陣的逆求一個(gè)矩陣的逆非常容易。求方陣A的逆可調(diào)用函數(shù)inv(A)。例用求逆矩陣的方法解線性方程組。x1+2x2+3x3=5x1+4x2+9x3=-2x1+8x2+27x3=6命令如下:A=[1,2,3;1,4,9;1,8,27];b=[5,–2,6]';x=inv(A)*b

一般情況下,用左除比求矩陣的逆的方法更有效,即x=A\b。

2矩陣的秩

一個(gè)向量組的極大線形無(wú)關(guān)組的個(gè)數(shù)。MATLAB中,求矩陣秩的函數(shù)是rank(A)。例如,求例5.7中方程組系數(shù)矩陣D的秩,命令是:D=[2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2];r=rank(D)r=4說(shuō)明D是一個(gè)滿秩矩陣。

3向量和矩陣的范數(shù)1.計(jì)算向量3種常用范數(shù)的函數(shù)(1)norm(V)或norm(V,2)計(jì)算向量V的2—范數(shù)(2)norm(V,1)計(jì)算向量V的1—范數(shù)(3)norm(V,inf)計(jì)算向量V的∞—范數(shù)

1-范數(shù):║x║1=│x1│+│x2│+…+│xn│

2-范數(shù):║x║2=(│x1│^2+│x2│^2+…+│xn│^2)^1/2

∞-范數(shù):║x║∞=max(│x1│,│x2│,…,│xn│)

V=[-1,1/2,1];v1=norm(V,1)%求V的1—范數(shù)v2=norm(V)%求V的2—范數(shù)vinf=norm(V,inf)%求∞—范數(shù)

2.矩陣的范數(shù)及其計(jì)算函數(shù)MATLAB中提供了求3種矩陣范數(shù)的函數(shù),其函數(shù)調(diào)用格式與求向量的范數(shù)的函數(shù)完全相同(含義請(qǐng)參見(jiàn)MATLABhelp)A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19];a1=norm(A,1)%求A的1—范數(shù)a2=norm(A)%求A的2—范數(shù)ainf=norm(A,inf)%求A的∞—范數(shù)

4矩陣的條件數(shù)和跡1.矩陣的條件數(shù)

用矩陣及其逆矩陣的范數(shù)的乘積表示矩陣的條件數(shù),矩陣條件數(shù)的大小是衡量矩陣“壞”或“好”的標(biāo)志。

條件數(shù)大的矩陣稱為“壞矩陣”或“病態(tài)矩陣”。MATLAB中,計(jì)算矩陣A的3種條件數(shù)的函數(shù)是:(1)cond(A,1)計(jì)算A的1—范數(shù)下的條件數(shù)(2)cond(A)或cond(A,2)計(jì)算A的2—范數(shù)數(shù)下的條件數(shù)(3)cond(A,inf)計(jì)算A的∞—范數(shù)下的條件數(shù)A=[2,2,3;4,5,-6;7,8,9];C1=cond(A,1)C2=cond(A)C3=cond(A,inf)

2.矩陣的跡方陣對(duì)角元素之和。MATLAB中,求矩陣的跡的函數(shù)是trace(A)。例如,X=[223;45-6;789];trace(X)ans=16MATLAB在三維向量中的應(yīng)用1.向量共線或共面的判斷例設(shè)X=(1,1,1),Y=(-1,2,1),Z=(2,2,2),判斷這三個(gè)向量的共線共面問(wèn)題。命令如下:X=[1,1,1];Y=[-1,2,1];Z=[2,2,2];XY=[X;Y];YZ=[Y;Z];ZX=[Z;X];XYZ=[X;Y;Z];rank(XY)rank(YZ)rank(ZX)rank(XYZ)

2.向量方向余弦的計(jì)算例設(shè)向量V=(5,-3,2),求V的方向余弦。建立一個(gè)函數(shù)文件direct.m:functionf=f(v)r=norm(v);ifr==0f=0elsef=[v(1)/r,v(2)/r,v(3)/r];endreturn在MATLAB命令窗口,輸入命令:v=[5,-3,2];f=direct(v)

3.向量的夾角例設(shè)U=(1,0,0),V=(0,1,0),求U,V間的夾角θ。命令如下:U=[1,0,0];V=[0,1,0];r1=norm(U);r2=norm(V);UV=U*V';cosd=UV/r1/r2;D=acos(cosd)4.兩點(diǎn)間的距離例設(shè)U=(1,0,0),V=(0,1,0),求U、V兩點(diǎn)間的距離。命令如下:U=[1,0,0];V=[0,1,0];UV=U-V;D=norm(UV)

5.向量的向量積例設(shè)U=(2,-3,1),V=(3,0,4),求U×V。命令如下:U=[2,-3,1];V=[3,0,4];W=eye(3);A1=[W(1,:);U;V];A2=[W(2,:);U;V];A3=[W(3,:);U;V];UV=[det(A1),det(A2),det(A3)]UV=-12-596.向量的混合積例設(shè)U=(0,0,2),V=(3,0,5),W=(1,1,0),求以這三個(gè)向量構(gòu)成的六面體的體積。命令如下:U=[0,0,2];V=[3,0,5];W=[1,1,0];A=[U;V;W];det(A)ans=67.點(diǎn)到平面的距離例求原點(diǎn)到平面X+Y+Z=1的距離。命令如下:u=[0,0,0];v=[1,1,1];%A=B=C=1,u1=u2=u3=0,D=-1r=abs(u*v'-1)/norm(v,2)r=0.57742.4.3矩陣分解函數(shù)特征值分解函數(shù)eig復(fù)數(shù)特征值對(duì)角陣與實(shí)數(shù)塊特征值對(duì)角陣地轉(zhuǎn)化cdf2rdf、rsf2csf奇異值分解svdLU分解[L,U]=lu(A)將方陣A分解為交換下三角矩陣L和上三角矩陣U,使A=LU[L,U,P]=lu(A)將方陣A分解為下三角矩陣L和上三角矩陣U,使PA=LUChol分解cholQR分解(正規(guī)正交矩陣Q與上三角形矩陣R)

[Q,R]=qr(A),根據(jù)方陣A,求一個(gè)正交矩陣Q和一個(gè)上三角矩陣R,使A=Q*R

例如,對(duì)矩陣A進(jìn)行QR分解的命令是:

A=[2,1,-2;1,2,1;2,5,3];[Q,R]=qr(A)例:A=[2,1,4,6;1,2,1,5;4,1,3,4;6,5,4,2];[Q,D]=eig(A)Q*D*Q'ans=2.00001.00004.00006.00001.00002.00001.00005.00004.00001.00003.00004.00006.00005.00004.00002.0000結(jié)果與A相等,說(shuō)明確實(shí)將A分解為了QDQ'的乘積。1、對(duì)角陣與三角陣矩陣的對(duì)角元素(1)提取矩陣的對(duì)角線元素設(shè)A為m×n矩陣,diag(A)函數(shù)用于提取矩陣A主對(duì)角線元素產(chǎn)生一個(gè)具有min(m,n)個(gè)元素的列向量。

diag(A,k),其功能是提取第k條對(duì)角線的元素。(2)構(gòu)造對(duì)角矩陣設(shè)V為具有m個(gè)元素的向量,diag(V)將產(chǎn)生一個(gè)m×m對(duì)角矩陣,其主對(duì)角線元素即為向量V的元素。

diag(V,k),其功能是產(chǎn)生一個(gè)對(duì)角陣,其第k條對(duì)角線的元素即為向量V的元素。2.4.4矩陣的一些操作

例先建立5×5矩陣A,然后將A的第1行元素乘以1,第2行乘以2,…,第5行乘以5。命令如下:A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19];D=diag([1,2,3,4,5]);D*A

矩陣的三角陣

(1)下三角矩陣求矩陣A的下三角陣的MATLAB函數(shù)是tril(A)。

tril(A)函數(shù)也有更進(jìn)一步的一種形式tril(A,k),其功能是求矩陣A的第k條對(duì)角線以下的元素。

(2)上三角矩陣在MATLAB中,提取矩陣A的上三角矩陣的函數(shù)是triu(A)和triu(A,k),其用法與提取下三角矩陣的函數(shù)tril(A)和tril(A,k)完全相同。2、矩陣變向1.矩陣的轉(zhuǎn)置轉(zhuǎn)置運(yùn)算符是單撇號(hào)(‘)2.矩陣的旋轉(zhuǎn)

rot90(A,k),功能是將矩陣A逆時(shí)針?lè)较蛐D(zhuǎn)90o的k倍當(dāng)k為1時(shí)可省略3.矩陣的左右翻轉(zhuǎn)

fliplr(A)4.矩陣的上下翻轉(zhuǎn)

flipud(A)5.第dim維翻轉(zhuǎn)

flipdim(A,dim)3、變維(1)reshape(x,m,n),將矩陣x變成m*n階(2)“:”符號(hào)例如:c(:)=a(:)

兩個(gè)矩陣必須預(yù)先定義維數(shù)三、矩陣的數(shù)組運(yùn)算

在matlab中,數(shù)組的建立、存儲(chǔ)與矩陣相同,只是在計(jì)算時(shí)符號(hào)不同。數(shù)組間的

溫馨提示

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