官术网_书友最值得收藏!

2.4 矩陣分析

矩陣是MATLAB語(yǔ)言的基本運(yùn)算單元。本節(jié)主要介紹矩陣分析與處理的常用函數(shù)和功能。

2.4.1 方陣的行列式

一個(gè)行數(shù)和列數(shù)相同的方矩陣可以看作一個(gè)行列式,而行列式是一個(gè)數(shù)值。MATLAB語(yǔ)言用D=det(A)函數(shù)求方矩陣的行列式的值。例如:

已知一個(gè)方矩陣A=[1 0 1;2 1 0;0 2 1],求行列式的值D。

2.4.2 矩陣的秩和跡

1.矩陣的秩

與矩陣線性無(wú)關(guān)的行數(shù)或者列數(shù)稱為矩陣的秩。MATLAB語(yǔ)言用r=rank(A)函數(shù)求矩陣的秩。例如:

2.矩陣的跡

一個(gè)矩陣的跡等于矩陣的對(duì)角線元素之和,也等于矩陣的特征值之和。MATLAB語(yǔ)言用t=trace(A)函數(shù)求矩陣的跡。例如:

2.4.3 矩陣的逆和偽逆

1.方陣的逆矩陣

對(duì)于一個(gè)方矩陣A,如果存在一個(gè)同階方矩陣B,使得A·B=B·A=I(其中I為單位矩陣),則稱B為A的逆矩陣,A也為B的逆矩陣。

在線性代數(shù)里用公式計(jì)算逆矩陣相對(duì)煩瑣,然而,在MATLAB語(yǔ)言里,用求逆矩陣的函數(shù)inv(A)求解卻很容易。例如:

顯然,A?B=B?A=I,故B與A是互逆矩陣。

2.矩陣的偽逆矩陣

如果矩陣A不是一個(gè)方陣,或者A為非滿秩矩陣,那么就不存在逆矩陣,但可以求廣義上的逆矩陣B,稱為偽逆矩陣,MATLAB語(yǔ)言用B=pinv(A)函數(shù)求偽逆矩陣。例如:

在線性代數(shù)中,可以用矩陣求逆的方法求解線性方程組的解。將設(shè)有n個(gè)未知數(shù),由n個(gè)方程構(gòu)成線性方程組,表示為

用矩陣表示為

Ax=b

其中:

線性方程組的解為

x=A1b

所以,利用MATLAB求系數(shù)矩陣A的逆矩陣,可以求線性方程組的解。

【例2-3】 利用MATLAB求系數(shù)矩陣的逆矩陣方法,求如下線性方程組的解。

MATLAB命令程序如下:

2.4.4 矩陣的特征值和特征向量

矩陣的特征值與特征向量在科學(xué)計(jì)算中廣泛應(yīng)用。設(shè)A為n階方陣,使得等式Av=Dv成立,則D稱為A的特征值,向量v稱為A的特征向量。MATLAB語(yǔ)言用函數(shù)eig(A)求矩陣的特征值和特征向量,常用下面兩種格式:

(1)E=eig(A)求矩陣A的特征值,構(gòu)成向量E;

(2)[v,D]=eig(A)求矩陣A的特征值,構(gòu)成對(duì)角矩陣,并求A的特征向量v。

例如:

顯然,A?v=v?D,故D和v分別是A矩陣的特征值和特征向量。

特征值還可以應(yīng)用于求解一元多次方程的根,具體方法是,先將方程的多項(xiàng)式系數(shù)組成行向量a,然后用compan(a)函數(shù)構(gòu)造成伴隨矩陣A,最后再用eig(A)函數(shù)求A的特征值,特征值就是方程的根。

【例2-4】 用MATLAB求特征值的方法求解一元多次方程的根,方程如下:

x55x45x35x26x=0

MATLAB命令程序如下:

當(dāng)然,求一元多次方程的根還可以利用多項(xiàng)式函數(shù)roots。

顯然,用這兩種不同方法求解一元多次方程的根,結(jié)果是一樣的。

2.4.5 矩陣的分解

矩陣有多種分解方法,常見(jiàn)的有對(duì)稱正定矩陣分解(Cholesky)、高斯消去法分解(LU)、正交分解(QR)和矩陣的奇異值分解(SVD)。

1.對(duì)稱正定矩陣分解

MATLAB語(yǔ)言中的對(duì)稱正定矩陣Cholesky分解用函數(shù)chol(A),函數(shù)語(yǔ)法格式如下:

其中,分解后的R滿足R′?R=A。若A是n階對(duì)稱正定矩陣,則R為實(shí)數(shù)的非奇異上三角矩陣;若A是非正定矩陣,則產(chǎn)生錯(cuò)誤信息。

其中,分解后的R滿足R′?R=A。若A是n階對(duì)稱正定矩陣,則R為實(shí)數(shù)的非奇異上三角矩陣,p=0;若A是非正定矩陣,則p為正整數(shù)。

例如,已知A=[1 1 1;1 2 3;1 3 6],求該矩陣的Cholesky分解。

MATLAB語(yǔ)言程序代碼及結(jié)果如下:

由結(jié)果可知,Cholesky分解得到的R矩陣是一個(gè)實(shí)數(shù)的非奇異上三角矩陣,且滿足R′?R=A。

當(dāng)A為非正定矩陣時(shí),用Cholesky分解,錯(cuò)誤信息如下:

2.矩陣的高斯消去法分解

高斯消去法分解是在線性代數(shù)中矩陣分解的一種重要方法,主要應(yīng)用在數(shù)值分析中,用來(lái)解線性方程及計(jì)算行列式。矩陣的高斯消去法分解又稱為三角分解,是將一個(gè)一般方矩陣分解成一個(gè)下三角矩陣L和一個(gè)上三角矩陣U,且滿足A=LU,故稱為L(zhǎng)U分解。MATLAB語(yǔ)言用lu(A)函數(shù)實(shí)現(xiàn)LU分解。函數(shù)語(yǔ)法格式如下:

其中,L為下三角矩陣或其變換形式,U為上三角矩陣,且滿足LU=A。

其中,L為下三角矩陣,U為上三角矩陣,P為單位矩陣的行變換矩陣,且滿足LU=PA。

例如,已知A=[1 2 3;4 5 6;7 8 9],求該矩陣的LU分解。

MATLAB語(yǔ)言程序代碼及結(jié)果如下:

由上述結(jié)果可知,LU分解得到的L是一個(gè)下三角變換矩陣,U是一個(gè)上三角矩陣,且滿足L?U=A。

同樣的矩陣A,若用另一種LU分解,結(jié)果如下:

由上述結(jié)果可知,LU分解得到的L是一個(gè)下三角矩陣,U是一個(gè)上三角矩陣,P為單位矩陣的行變換矩陣,且滿足L?U=P?A。

3.矩陣的正交分解

矩陣的正交分解是將一個(gè)一般矩陣A分解成一個(gè)正交矩陣Q和一個(gè)上三角矩陣R的乘積,且滿足A=QR,故稱為QR分解。

MATLAB語(yǔ)言用qr(A)函數(shù)實(shí)現(xiàn)QR分解。函數(shù)語(yǔ)法格式如下:

其中,Q為正交矩陣,R為上三角矩陣,且滿足QR=A。

其中,Q為正交矩陣,R為對(duì)角元素按大小降序排列的上三角矩陣,E為單位矩陣的變換形式,且滿足QR=AE。

例如,已知A=[1 2 3;4 5 6;7 8 9],求該矩陣的QR分解。

MATLAB語(yǔ)言程序代碼及結(jié)果如下:

由上述結(jié)果可知,QR分解得到的Q是一個(gè)正交矩陣,R是一個(gè)上三角矩陣,且滿足Q?R=A。

同樣的矩陣A,若用另一種QR分解,結(jié)果如下:

由上述結(jié)果可知,QR分解得到的Q為正交矩陣,R為對(duì)角元素按大小降序排列的上三角矩陣,E為單位矩陣的變換形式,且滿足Q?R=A?E。

4.矩陣的奇異值分解

奇異值分解(Singular Value Decomposition)是線性代數(shù)中一種重要的矩陣分解方法,可以應(yīng)用在信號(hào)處理和統(tǒng)計(jì)學(xué)等領(lǐng)域。矩陣的奇異值分解是將一個(gè)一般矩陣A分解成一個(gè)與A同大小的對(duì)角矩陣S,兩個(gè)酉矩陣U和V,且滿足A=U?S?V'。

MATLAB語(yǔ)言用svd(A)函數(shù)實(shí)現(xiàn)奇異值分解。函數(shù)語(yǔ)法格式如下:

s=svd(A)產(chǎn)生矩陣A的奇異值向量。

[U,S,V]=svd(A)產(chǎn)生一個(gè)與A同大小的對(duì)角矩陣S、兩個(gè)酉矩陣U和V,且滿足A=U?S?V'。若A為m×n陣,則U為m×m陣,V為n×n陣。奇異值在S的對(duì)角線上,非負(fù)且按降序排列。

例如,已知A=[1 2 3;4 5 6],求該矩陣的奇異值分解。

MATLAB語(yǔ)言程序代碼及結(jié)果如下:

由上述結(jié)果可知,奇異值分解得到的一個(gè)與A同大小的對(duì)角矩陣S、兩個(gè)酉矩陣U和V,且滿足A=U?S?V'。

2.4.6 矩陣的信息獲取函數(shù)

MATLAB語(yǔ)言提供了很多函數(shù)以獲取矩陣的各種屬性信息,包括矩陣的大小、矩陣的長(zhǎng)度和矩陣元素的個(gè)數(shù)等。

1.size

MATLAB語(yǔ)言可以用size(A)函數(shù)來(lái)獲取矩陣A的行和列的數(shù)。函數(shù)的調(diào)用格式如下:

D=size(A)返回一個(gè)行和列數(shù)構(gòu)成兩個(gè)元素的行向量;

[M,N]=size(A)返回矩陣A的行數(shù)為M,列數(shù)為N。

例如,已知A=[1 2 3;4 5 6],求該矩陣的行數(shù)和列數(shù)。

MATLAB語(yǔ)言程序代碼及結(jié)果如下:

2.length

MATLAB語(yǔ)言可以用length(A)函數(shù)來(lái)獲取矩陣A的行數(shù)和列數(shù)的較大者,即length(A)=max(size(A))。函數(shù)的調(diào)用格式如下:

d=length(A)返回矩陣A的行數(shù)和列數(shù)的較大者。

例如:

3.numel

MATLAB語(yǔ)言可以用numel(A)函數(shù)來(lái)獲取矩陣A的元素的總個(gè)數(shù)。函數(shù)的調(diào)用格式如下:

n=numel(A)返回矩陣A的元素的總個(gè)數(shù)。

例如:

主站蜘蛛池模板: 林州市| 普兰店市| 临朐县| 达日县| 连城县| 河北省| 阳西县| 宁晋县| 新和县| 滨海县| 临安市| 苏尼特右旗| 福贡县| 乌兰浩特市| 西贡区| 浦县| 丰台区| 巴东县| 邳州市| 册亨县| 江西省| 盐城市| 江陵县| 沅江市| 华容县| 寿光市| 桐城市| 信丰县| 五常市| 本溪市| 阳原县| 芜湖县| 正镶白旗| 德惠市| 平山县| 株洲市| 象州县| 邹城市| 崇明县| 孟连| 赫章县|