MATLAB數(shù)值計算分解.ppt_第1頁
MATLAB數(shù)值計算分解.ppt_第2頁
MATLAB數(shù)值計算分解.ppt_第3頁
MATLAB數(shù)值計算分解.ppt_第4頁
MATLAB數(shù)值計算分解.ppt_第5頁
免費預覽已結(jié)束,剩余38頁可下載查看

下載本文檔

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

文檔簡介

1、Matlab數(shù)值計算基礎(chǔ)功能,內(nèi) 容,向量(一維矩陣) 矩陣 數(shù)組 多項式,一、向量輸入及其運算,向量的生成: 直接輸入向量元素用括起來行向量:元素之間用空格或逗號分隔列向量:元素之間用分號分隔 用冒號表達式生成格式:X=X0:step:Xnstep缺省則默認為1,線性等分向量的生成格式:y=linspace(x1,x2,n)生成n維行向量,y(1)=x1、y(n)=x(2)若n缺省,則默認n=100 對數(shù)等分向量的生成格式:y=logspace(x1,x2,n)生成n維行向量,y(1)=10 x1、y(n)=10 x(2)若n缺省,則默認n=50,向量的運算 加、減、數(shù)乘 點積 dot(a,

2、b),a、b必須同維 叉積 cross(a,b),a、b為三維向量 兩個三維向量的叉積等于一個新的向量, 該向量與前兩者垂直,且長度為前兩者張成的平行四邊形面積; 混合積 dot(a,cross(b,c) 以a,b,c為棱的平行六面體的體積,二、MATLAB矩陣,2.1 矩陣的建立 1. 直接輸入法 將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。例如 A=1 2 3;4 5 6;7 8 9,2. 利用M文件建立矩陣 對于比較大且比較復雜的矩陣,可以為它專門建立一個M文件。 例 利用M文件建立MYMAT矩陣。 (1)啟動有關(guān)

3、編輯程序或MATLAB文本編輯器,并輸入待建矩陣. (2)把輸入的內(nèi)容以純文本方式存盤(設文件名為mymatrix.m)。 (3)運行該M文件,就會自動建立一個名為MYMAT的矩陣,可供以后使用。,3. 利用MATLAB函數(shù)建立特殊矩陣 幾個產(chǎn)生常用特殊矩陣的函數(shù):全零陣zeros、全一陣ones、單位陣eye、均勻分布隨機陣rand、正態(tài)分布隨機陣randn。 這幾個函數(shù)的調(diào)用格式相似,下面以產(chǎn)生零矩陣的zeros函數(shù)為例進行說明。其調(diào)用格式是: zeros(m) 產(chǎn)生mm零矩陣 zeros(m,n) 產(chǎn)生mn零矩陣。 zeros(size(A) 產(chǎn)生與矩陣A同樣大小的零矩陣,例 分別建立3

4、3、32和與矩陣A同樣大小的零矩陣。 (1)建立一個33零矩陣:zeros(3) (2)建立一個32零矩陣:zeros(3,2) (3)建立與矩陣A同樣大小零矩陣:zeros(size(A) 此外,常用的函數(shù)還有reshape(A,m,n),它在矩陣總元素保持不變的前提下,將矩陣A重新排成mn的二維矩陣。,例 產(chǎn)生5階隨機方陣A,其元素為10,90區(qū)間的隨機整數(shù),然后判斷A的元素是否能被3整除。 (1) 生成5階隨機方陣A。 A=fix(90-10+1)*rand(5)+10) (2) 判斷A的元素是否可以被3整除。 P=rem(A,3)=0,其他特殊矩陣函數(shù),希爾伯特矩陣 hilb(n) 希

5、爾伯特矩陣的逆矩陣 invhilb(n) 托普利茲矩陣 toeplitz(k,r)、 toeplitz(c) 友矩陣 compan(p) 生成多項式p的友矩陣,也就是他的特征多項式是p; hadamard(k) 生成hadamard矩陣 hankel函數(shù),生成hankel矩陣 magic(n),生成nn的魔方矩陣 pascal函數(shù),生成pascal矩陣 rosser,給出Rosser矩陣 vander(x),給出向量x的范德蒙矩陣 wilkinson(n),給出Wilkinson特征值測試矩陣,4. 建立大矩陣 大矩陣可由方括號中的小矩陣建立起來。例如 A=1 2 3;4 5 6;7 8 9;

6、 C=A,eye(size(A); ones(size(A),A,2. 2 矩陣的拆分 1. 矩陣元素 MATLAB允許用戶對一個矩陣的單個元素進行賦值和操作。例如 A(3,2)=200 也可以采用矩陣元素的序號來引用矩陣元素。,2. 矩陣拆分 (1)利用冒號表達式獲得子矩陣 A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。 A(i:i+m,:)表示取A矩陣第ii+m行的全部元素;A(:,k:k+m)表示取A矩陣第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩陣第ii+m行內(nèi),并在第kk+m列中的所有

7、元素。 此外,還可利用一般向量和end運算符等來表示矩陣下標,從而獲得子矩陣。end表示某一維的末尾元素下標。 如a(1,end),(2)利用空矩陣刪除矩陣的元素 在MATLAB中,定義為空矩陣。給變量X賦空矩陣的語句為X=。 注意,X=與clear X不同,clear是將X從工作空間中刪除,而空矩陣則存在于工作空間,只是維數(shù)為0。,2.3 多維矩陣 以三維矩陣為例,常用的方法有4種: (1)對二維矩陣進行擴充得到三維矩陣。 (2)若干個同樣大小的二維矩陣進行組合得到三維矩陣。 (3)除產(chǎn)生單位矩陣的eye函數(shù)外,前面介紹的建立矩陣的函數(shù)都可以延伸到三維矩陣。 (4)用cat函數(shù)構(gòu)建多維矩陣。

8、一般調(diào)用格式是: cat(n,A1,A2,An) cat函數(shù)把大小相同的若干矩陣,沿第n維方向串接成高維矩陣。當n=1和2時,沿行和列的方向串接,結(jié)果是二維矩陣。當n=3時,沿頁的方向串接,結(jié)果是三維矩陣。,2.4 矩陣的運算,2.4.1 基本算術(shù)運算 1. 四則運算等 MATLAB的基本算術(shù)運算有:(加)、(減)、*(乘)、/(右除)、(左除)、(乘方)。 幾點說明:1)加減運算與數(shù)字運算格式相同,要求兩矩陣是同階的; 2)乘法要求兩矩陣有相鄰公共維; 3)用矩陣除法求解方程組Ax=b,A是(nm)階矩陣 討論A的情況: n=m且非奇異,稱恰定方程; nm,超定方程,沒有精確解,matlab

9、使用最小二乘法來求解,來找到一個向量x使它對n個方程的總誤差最??; 方法:Ab 如果b是矩陣B,則對B中的每一列相應的方程組求解 nnls(A,b) 求非負的最小二乘解 lscov(A,b,v) 求在已知協(xié)方差v的情況下的最小二乘解 nm,欠定方程,方程組有無窮多解,matlab在求解時給出一組解,無警告信息。,2 矩陣與常數(shù)間的運算 常數(shù)與矩陣的各元素間進行運算, 當作除法時,常數(shù)只能做除數(shù)。,3 矩陣的逆運算 inv 命令 4 矩陣的行列式運算 det 函數(shù),3 矩陣的逆運算 inv 命令 4 矩陣的行列式運算 det 函數(shù) 5 矩陣的冪運算 算符 6 矩陣的指數(shù)運算 expm(X)常用矩

10、陣指數(shù)函數(shù) expm1(X) Pade法求矩陣指數(shù) expm2(X) Taylor法求矩陣指數(shù) expm3(X)特征值分解法求矩陣指數(shù) 7 矩陣的對數(shù)運算 logm(A) 8 矩陣開方運算 sqrtm 函數(shù),2.4.2 矩陣的函數(shù)運算 特征向量、特征值計算函數(shù) eig、eigs 奇異值函數(shù)svd、svds 條件數(shù)函數(shù)cond、condest、rcond 特征值的條件數(shù)condeig 范數(shù)函數(shù)norm、normest 秩函數(shù)rank 跡函數(shù)trace,舉例: 1. 矩陣的逆 求一個矩陣的逆非常容易。求方陣A的逆可調(diào)用函數(shù)inv(A)。 例 用求逆矩陣的方法解線性方程組。 x1+2x2+3x3=5

11、 x1+4x2+9x3=-2 x1+8x2+27x3=6 命令如下: A=1,2,3;1,4,9;1,8,27; b=5,2,6; x=inv(A)*b 一般情況下,用左除比求矩陣的逆的方法更有效,即x=Ab。,2 矩陣的秩 一個向量組的極大線形無關(guān)組的個數(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 說明D是一個滿秩矩陣。,3 向量和矩陣的范數(shù) 1. 計算向量3種常用范數(shù)的函數(shù) (1)norm(V)或norm(V,2) 計算向量

12、V的2范數(shù) (2)norm(V,1) 計算向量V的1范數(shù) (3)norm(V,inf) 計算向量V的范數(shù) 1-范數(shù):x1=x1+x2+xn 2-范數(shù):x2=(x12+x22+xn2)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ù)及其計算函數(shù) MATLAB中提供了求3種矩陣范數(shù)的函數(shù),其函數(shù)調(diào)用格式與求向量的范數(shù)的函數(shù)完全相同 (含義請參見MATLAB help) A=17,0,1,0,15;23,5,7,14,16;4,0,13,

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ù)的大小是衡量矩陣“壞”或“好”的標志。 條件數(shù)大的矩陣稱為“壞矩陣”或“病態(tài)矩陣”。 MATLAB中,計算矩陣A的3種條件數(shù)的函數(shù)是: (1)cond(A,1) 計算A的1范數(shù)下的條件數(shù) (2)cond(A)或cond(A,2) 計算A的2范數(shù)數(shù)下的條件數(shù) (3)cond(A,inf) 計算A的 范數(shù)下

14、的條件數(shù) A=2,2,3;4,5,-6;7,8,9; C1=cond(A,1) C2=cond(A) C3=cond(A,inf),2. 矩陣的跡 方陣對角元素之和。 MATLAB中,求矩陣的跡的函數(shù)是trace(A)。例如, X=2 2 3;4 5 -6;7 8 9; trace(X) ans = 16,MATLAB在三維向量中的應用 1. 向量共線或共面的判斷 例 設X=(1,1,1),Y=(-1,2,1),Z=(2,2,2),判斷這三個向量的共線共面問題。 命令如下: 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; ra

15、nk(XY) rank(YZ) rank(ZX) rank(XYZ),2. 向量方向余弦的計算 例 設向量V=(5,-3,2),求V的方向余弦。 建立一個函數(shù)文件direct.m: function f=f(v) r=norm(v); if r=0 f=0 else f=v(1)/r,v(2)/r,v(3)/r; end return 在MATLAB命令窗口,輸入命令: v=5,-3,2; f=direct(v),3. 向量的夾角 例 設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=

16、U*V;cosd=UV/r1/r2; D=acos(cosd) 4. 兩點間的距離 例 設 U=(1,0,0),V=(0,1,0),求U、V兩點間的距離。 命令如下: U=1,0,0;V=0,1,0;UV=U-V; D=norm(UV),5. 向量的向量積 例 設U=(2,-3,1),V=(3,0,4),求UV。 命令如下: 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 -5 9 6. 向量的混合積 例 設U=(0,0,2),V=(

17、3,0,5),W=(1,1,0),求以這三個向量構(gòu)成的六面體的體積。 命令如下: U=0,0,2;V=3,0,5;W=1,1,0; A=U;V;W; det(A) ans = 6,7. 點到平面的距離 例 求原點到平面X+Y+Z=1的距離。 命令如下: u=0,0,0;v=1,1,1; % A=B=C=1,u1=u2=u3=0,D=-1 r=abs(u*v-1)/norm(v,2) r = 0.5774,2.4.3 矩陣分解函數(shù) 特征值分解函數(shù)eig 復數(shù)特征值對角陣與實數(shù)塊特征值對角陣地轉(zhuǎn)化cdf2rdf、rsf2csf 奇異值分解svd LU分解 L,U=lu(A) 將方陣A分解為交換下三

18、角矩陣L和上三角矩陣U,使 A=LU L,U,P=lu(A) 將方陣A分解為下三角矩陣L和上三角矩陣U,使 PA=LU Chol分解chol QR分解 (正規(guī)正交矩陣Q與上三角形矩陣R)Q,R=qr(A),根據(jù)方陣A,求一個正交矩陣Q和一個上三角矩陣R,使A=Q*R例如,對矩陣A進行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.0000 1.0000 4.0000 6.0000 1.0000 2.0000 1.0000 5.0000

19、 4.0000 1.0000 3.0000 4.0000 6.0000 5.0000 4.0000 2.0000 結(jié)果與A相等,說明確實將A分解為了QDQ的乘積。,1、對角陣與三角陣 矩陣的對角元素 (1)提取矩陣的對角線元素 設A為mn矩陣,diag(A)函數(shù)用于提取矩陣A主對角線元素產(chǎn)生一個具有min(m,n)個元素的列向量。 diag(A,k),其功能是提取第k條對角線的元素。 (2)構(gòu)造對角矩陣 設V為具有m個元素的向量,diag(V)將產(chǎn)生一個mm對角矩陣,其主對角線元素即為向量V的元素。 diag(V,k),其功能是產(chǎn)生一個對角陣,其第k條對角線的元素即為向量V的元素。,2.4.4

20、 矩陣的一些操作,例 先建立55矩陣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ù)也有更進一步的一種形式tril(A,k),其功能是求矩陣A的第k條對角線以下的元素。 (2)上三角矩陣 在MATLAB中,提取矩陣A的上三角矩陣的函數(shù)是triu(A)和triu(A,k),其用法與提取下三角矩陣的函數(shù)tril(A)和tril(A,k)完全相同。,2、 矩陣變向 1. 矩陣的轉(zhuǎn)置 轉(zhuǎn)置運算符是單撇號() 2. 矩陣的旋轉(zhuǎn) rot90(A,k),功能是將矩陣A逆時針方向旋轉(zhuǎn)90的k倍 當k為1時可省略 3. 矩陣的左右翻轉(zhuǎn) fliplr(A) 4. 矩陣的上下翻轉(zhuǎn) flipud(A) 5.第dim維翻轉(zhuǎn) flipdim(A,dim),3、變維 (1)reshape(x,m,n),將矩陣x變

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論