MATLAB編程與應(yīng)用系列-第3章矩陣運(yùn)算(4)-創(chuàng)新互聯(lián)

##3.2 矩陣的分解
矩陣的分解是矩陣相關(guān)運(yùn)算中的重要內(nèi)容,MATLAB提供了用于矩陣分解運(yùn)算的多種函數(shù)。本節(jié)將集中介紹MATLAB所提供的矩陣分解運(yùn)算函數(shù)的功能及使用。

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的西平網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

###3.2.1 LU分解
矩陣的三角分解又稱高斯消去法分解,它的目的是將一個(gè)矩陣分解成一個(gè)下三角矩陣L和一個(gè)上三角矩陣U的乘積,即A=LU。MATLAB提供了專門的函數(shù)lu來計(jì)算矩陣的LU分解。該函數(shù)的調(diào)用格式如下:

① [L,U] = lu(X)
② [L,U,P] = lu(X)

其中,返回矩陣U為上三角陣,矩陣L為下三角陣或其變換形式,且滿足LU=X。返回矩陣P為單位矩陣的行變換矩陣,滿足LU=PX。

【例3.24】矩陣X的LU分解
在命令窗口中輸入以下內(nèi)容,創(chuàng)建矩陣X:
>> X=[5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9;4 5 6 7 8];
①對(duì)矩陣X進(jìn)行LU分解,在命令窗口輸入:
>> [L,U] = lu(X) %對(duì)矩陣X進(jìn)行LU分解

###3.2.2 奇異值分解
奇異值分解在矩陣分析中占有極其重要的作用。MATLAB提供了用于矩陣奇異值分解的函數(shù)svd,該函數(shù)是利用LINPACK程序庫中的ZSVDC編制而成的。在計(jì)算的過程中假如經(jīng)過75步QR分解仍得不到一個(gè)奇異值,那么系統(tǒng)會(huì)給出“不收斂”的提示。奇異值分解函數(shù)svd的幾種調(diào)用格式如下:

① s = svd (X)
② [U,S,V] = svd (X)
③ [U,S,V] = svd (X,0)

其中,命令①返回向量s包含矩陣X分解所得到的全部奇異值向量。命令② 返回一個(gè)與X同大小的對(duì)角矩陣S和兩個(gè)酉矩陣U與V,且滿足= USV'。命令③ 得到一個(gè)“有效大小”的分解,如果m×n維矩陣X中m>n則只計(jì)算出矩陣U的前n列,矩陣S的大小為n×n。

【例3.25】奇異值分解。
在命令窗口中輸入以下內(nèi)容,創(chuàng)建矩陣b1。
>> b1=[1 2 3;4 5 6;7 8 9;2 4 6;5 7 5];
①對(duì)b1進(jìn)行奇異值分解,返回一個(gè)與b1同大小的對(duì)角矩陣S以及兩個(gè)酉矩陣U和V。在命令窗口中輸入:
>> [U,S,V] = svd (b1) %對(duì)b1進(jìn)行奇異值分解
②對(duì)b1進(jìn)行奇異值分解,調(diào)用能得到一個(gè)“有效大小”的分解的函數(shù)格式,返回對(duì)角矩陣S以及兩個(gè)酉矩陣U和V。在命令窗口中輸入:
>> [U,S,V] = svd (b1,0) %對(duì)b1進(jìn)行奇異值分解

###3.2.3 特征值分解
MATLAB提供了eig函數(shù)來對(duì)矩陣進(jìn)行特征值分解,該函數(shù)的幾種調(diào)用格式如下:

① d = eig(A)
② d = eig(A,B)
③ [V,D] = eig(A)
④ [V,D] = eig(A,'nobalance')
⑤ [V,D] = eig(A,B)
⑥ [V,D] = eig(A,B,flag)

其中,①計(jì)算矩陣A的特征值d,返回結(jié)果以向量形式存放。②計(jì)算方陣A和B的廣義特征值d,返回結(jié)果以向量形式存放。③計(jì)算矩陣A的特征值對(duì)角陣D和特征向量陣V,使AV=VD成立。④計(jì)算矩陣A的特征值對(duì)角陣D和特征向量陣V,使AV=VD成立。當(dāng)矩陣A中有與截?cái)嗾`差數(shù)量級(jí)相差不遠(yuǎn)的值時(shí),該指令可能更精確。'nobalance'起誤差調(diào)節(jié)作用。⑤計(jì)算矩陣A和B的廣義特征值向量陣V和廣義特征值陣D,滿足AV=BVD。最后一條命令⑥由flag指定算法計(jì)算矩陣A和B的特征值D和特征向量V。其中,flag的可能值為:'chol' 和'qz' 。當(dāng)flag值為'chol'時(shí)表示對(duì)B使用Cholesky分解算法,其中A為對(duì)稱Hermitian矩陣,B為正定陣。當(dāng)flag值為'qz'時(shí)表示使用QZ算法,其中A、B為非對(duì)稱或非Hermitian矩陣。

【3.26】特征值分解
在命令窗口中輸入以下內(nèi)容,創(chuàng)建矩陣A。
>> A=[1 2 3 4 5;5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9];
對(duì)矩陣A進(jìn)行特征值分解,在命令窗口輸入:
>> [V,D] = eig(A) %對(duì)矩陣A進(jìn)行特征值分解

###3.2.4 Cholesky分解
MATLAB提供了chol函數(shù)來對(duì)矩陣進(jìn)行Cholesky分解,該函數(shù)的調(diào)用格式為:

①R = chol(X)
②[R,p] = chol(X)

函數(shù)調(diào)用格式①如果X為n階對(duì)稱正定矩陣,則存在一個(gè)實(shí)的非奇異上三角陣R,滿足R'*R = X;若X非正定,則產(chǎn)生錯(cuò)誤信息。②不產(chǎn)生任何錯(cuò)誤信息,若X為正定陣,則p=0,R與上相同;若X非正定,則p為正整數(shù),R是有序的上三角陣。

【例3.27】Cholesky分解
在命令窗口中輸入以下內(nèi)容,創(chuàng)建矩陣A。
>> A=[1 2 3 4 5;5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9];
對(duì)矩陣A進(jìn)行Cholesky分解,在命令窗口中輸入:
>> [R,p] = chol(A) %對(duì)矩陣A進(jìn)行Cholesky分解

###3.2.5 QR分解
正交矩陣是指矩陣的列向量相互正交,且各個(gè)列向量的長(zhǎng)度相等。QR分解就是將矩陣A分解成一個(gè)正交矩陣與一個(gè)上三角矩陣的乘積。MATLAB提供了用于矩陣QR分解的函數(shù),表3.7中介紹用于矩陣QR分解的函數(shù)調(diào)用格式和功能。
表3.7 矩陣QR分解
函數(shù)名 功能
[Q,R] = qr(A)求得正交矩陣Q和上三角陣R,Q和R滿足A=QR
[Q,R,E] = qr(A)求得正交矩陣Q、上三角陣R和單位矩陣的變換形式矩陣E,R的對(duì)角線元素按大小降序排列,滿足AE=QR
[Q,R] = qr(A,0)產(chǎn)生矩陣A的“經(jīng)濟(jì)大小”分解
[Q,R,E] = qr(A,0)E的作用是使得R的對(duì)角線元素降序,且Q*R=A(:, E)
R = qr(A)稀疏矩陣A的分解,只產(chǎn)生一個(gè)上三角陣R,滿足R'R = A'A,這種方法計(jì)算A'*A時(shí)減少了內(nèi)在數(shù)字信息的損耗
[C,R] = qr(A,b)用于稀疏最小二乘問題:minimize 的兩步解:[C,R] = qr(A,b),x = R\c
R = qr(A,0)針對(duì)稀疏矩陣A的經(jīng)濟(jì)型分解
[C,R] = qr(A,b,0)針對(duì)稀疏最小二乘問題的經(jīng)濟(jì)型分解
[Q,R]= qrdelete(Q,R,j)返回將矩陣A的第j列移去后的新矩陣的qr分解
[Q,R]= qrinsert(Q,R,j,x)在矩陣A中第j列插入向量x后的新矩陣進(jìn)行qr分解。若j大于A的列數(shù),表示在A的最后插入列x

###3.2.6 Schur分解
Schur分解將使用schur函數(shù),該函數(shù)的調(diào)用格式為:

①T = schur(A)
②T = schur(A,flag)
③[U,T] = schur(A,…)

命令行①-③返回正交矩陣U和schur矩陣T,滿足A = UTU'。其中,若A有復(fù)特征根,則flag='complex',否則flag='real'。

【例3.31】Schur分解
在命令窗口輸入以下內(nèi)容,創(chuàng)建矩陣K。
>> K=magic(3); %生成3階的魔方陣
對(duì)矩陣K進(jìn)行Schur分解,在命令窗口輸入:
>> [U,T]=schur(K) %對(duì)矩陣K進(jìn)行Schur分解

###3.2.7 復(fù)數(shù)特征值對(duì)角陣與實(shí)數(shù)塊特征值對(duì)角陣的轉(zhuǎn)換
即使是實(shí)陣,在其特征值中也可能出現(xiàn)復(fù)數(shù)。實(shí)際使用中常需要把這一對(duì)對(duì)共軛復(fù)數(shù)特征值轉(zhuǎn)化為一個(gè)(2x2)的實(shí)數(shù)塊。函數(shù)調(diào)用格式為:

① [VC,DC] = rsf2csf (VR,DR) % 將實(shí)舒爾形式轉(zhuǎn)化成復(fù)舒爾形式
② [VR,DR] = cdf2rdf (VC,DC) %將復(fù)舒爾形式轉(zhuǎn)化成實(shí)舒爾形式

【例3.32】復(fù)數(shù)特征值對(duì)角陣與實(shí)數(shù)塊特征值對(duì)角陣的轉(zhuǎn)換
在命令窗口輸入以下內(nèi)容,創(chuàng)建矩陣B。
>> B=[5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9;4 5 6 7 8];
首先對(duì)矩陣B進(jìn)行Schur分解,在命令窗口輸入:
>> [u,t]=schur (B) %對(duì)矩陣B進(jìn)行Schur分解
然后將實(shí)舒爾形式轉(zhuǎn)化成復(fù)舒爾形式,在命令窗口輸入:
>> [U,T]=rsf2csf (u,t) %實(shí)舒爾形式轉(zhuǎn)化成復(fù)舒爾形式

###3.2.8 廣義奇異值分解
MATLAB提供了gsvd函數(shù)對(duì)矩陣進(jìn)行廣義奇異值分解,其具體調(diào)用格式為:

①[U,V,X,C,S] = gsvd(A,B)
②[U,V,X,C,S] = gsvd(A,B,0)
③sigma = gsvd (A,B)

其中,函數(shù)調(diào)用格式①返回酉矩陣U和V、一個(gè)普通方陣X、非負(fù)對(duì)角矩陣C和S,滿足A = UCX',B = VSX',C'C + S'S = I (I為單位矩陣)。A和B的列數(shù)必須相同,行數(shù)可以不同。函數(shù)調(diào)用格式②和①基本相同,而③則返回廣義奇異值sigma值。

【例3.33】廣義奇異值分解
在命令窗口輸入以下內(nèi)容,創(chuàng)建矩陣AO和d。
>> AO=[1 2 3 4 5 6 7 8;2 3 4 5 6 7 8 9;3 4 5 6 7 8 9 0]';
>> d=magic(3); %生成3階的魔方陣
對(duì)矩陣AO進(jìn)行廣義奇異值分解,在命令窗口輸入:
>> [U,V,X,C,S] = gsvd(AO,d) %對(duì)矩陣AO進(jìn)行廣義奇異值分解

###3.2.9 特征值問題的QZ分解
MATLAB提供了qz函數(shù)對(duì)矩陣進(jìn)行特征值問題的QZ分解,該函數(shù)的調(diào)用格式為:

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

其中函數(shù)調(diào)用格式①中A、B為方陣,返回結(jié)果AA和BB為上三角陣,Q、Z為正交矩陣或其列變換形式,V為特征向量陣,且滿足QAZ= AA 和QBZ = BB。命令行②產(chǎn)生由flag決定的分解結(jié)果,flag取值為'complex'表示復(fù)數(shù)分解(默認(rèn));取值為'real'表示實(shí)數(shù)分解。

【例3.34】特征值問題的QZ分解
在命令窗口輸入以下內(nèi)容,創(chuàng)建矩陣A和B。
>> A=[1 2 3 4 5;5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9];
>> B=[5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9;4 5 6 7 8];
對(duì)矩陣A、B進(jìn)行特征值問題的QZ分解,在命令窗口輸入:
>> [AA,BB,Q,Z,V] = qz(A,B) %對(duì)矩陣A、B進(jìn)行特征值問題的QZ分解

###3.2.10 海森伯格形式的分解
如果矩陣H的第一子對(duì)角線下元素都是0,則H為海森伯格(Hessenberg)矩陣。如果矩陣是對(duì)稱矩陣,則它的海森伯格形式是對(duì)角三角陣。MATLAB可以通過相似變換將矩陣變換成這種形式,具體調(diào)用格式為:

①H = hess(A) 返回矩陣A的海森伯格形式
②[P,H] = hess(A) P為酉矩陣,滿足:A = PHP' 且P'P = eye(size(A))
【例3.35】海森伯格形式的分解
在命令窗口輸入以下內(nèi)容,創(chuàng)建矩陣A。
>> A=[1 2 3 4 5;5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9;]
計(jì)算矩陣A的海森伯格形式,可在命令窗口輸入:
>> [P,H]=hess(A) %返回矩陣A的海森伯格形式

作者:德特?cái)?shù)據(jù)
聯(lián)系方式:156204968@qq.com

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

本文標(biāo)題:MATLAB編程與應(yīng)用系列-第3章矩陣運(yùn)算(4)-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://bm7419.com/article30/ddposo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、做網(wǎng)站、電子商務(wù)、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)