矩陣分解主要是指將一個(gè)矩陣分解為幾個(gè)比較簡單的矩陣連乘的形式。這里主要討論MATLAB在Cholesky分解和LU分解上的應(yīng)用
1. Cholesky分解
Cholesky分解是把一個(gè)對(duì)稱正定矩陣A分解為一個(gè)上三角形矩陣R和其轉(zhuǎn)置矩陣的乘積,其對(duì)應(yīng)的表達(dá)式為:。從理論的角度來看,并不是所有的對(duì)稱矩陣都可以進(jìn)行Cholesky分解,要求矩陣必須是正定的。
MATLAB提供chol()函數(shù)實(shí)現(xiàn)Cholesky分解,其具體用法如下:
:X為對(duì)稱的正定矩陣,R為上三角矩陣,使得
:X是正定矩陣時(shí),返回的矩陣R是上三角矩陣,而且滿足等式 ,同時(shí)返回參數(shù) ;X不是正定矩陣時(shí),返回的參數(shù)p是正整數(shù),R是三角矩陣,且矩陣階數(shù)是 ,并且滿足等式
(2):將對(duì)稱正定矩陣進(jìn)行Cholesky分解
解:
1. 新建一個(gè)M文件
2. 在文本編輯器中輸入代碼為:
X=[1 1 1 1 1;1 2 3 4 5;1 3 6 10 15;1 4 10 12 35;1 5 15 35 70];
R=chol(X)
C=transpose(R)*R
3. 保存文件,重命名
4. 運(yùn)行腳本文件得到結(jié)果為:
X=
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
R=
1 1 1 1 1
0 1 2 3 4
0 0 1 3 6
0 0 0 1 4
0 0 0 0 1
C=
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
從上面的結(jié)果可以看出,R是上三角矩陣,同時(shí)滿足等式 ,表明上題中Cholesky分解成功。
基礎(chǔ)部:劉小剛 |