矩陣分解主要是指將一個(gè)矩陣分解為幾個(gè)比較簡(jiǎn)單的矩陣連乘的形式。這里主要討論MATLAB在Cholesky分解和LU分解上的應(yīng)用
1. Cholesky分解
Cholesky分解是把一個(gè)對(duì)稱正定矩陣A分解為一個(gè)上三角形矩陣R和其轉(zhuǎn)置矩陣的乘積,其對(duì)應(yīng)的表達(dá)式為: 。從理論的角度來(lái)看,并不是所有的對(duì)稱矩陣都可以進(jìn)行Cholesky分解,要求矩陣必須是正定的。
MATLAB提供chol()函數(shù)實(shí)現(xiàn)Cholesky分解,其具體用法如下:
:X為對(duì)稱的正定矩陣,R為上三角矩陣,使得 ![](http://11d92t.cn/d/file/jxtd/xxjl/2016-12-15/870972ca7c76cd6678146a4ad98769fd.jpg)
:X是正定矩陣時(shí),返回的矩陣R是上三角矩陣,而且滿足等式 ,同時(shí)返回參數(shù) ;X不是正定矩陣時(shí),返回的參數(shù)p是正整數(shù),R是三角矩陣,且矩陣階數(shù)是 ,并且滿足等式 ![](http://11d92t.cn/d/file/jxtd/xxjl/2016-12-15/a11ad219d26af87aef206bbbbf1aa572.jpg)
(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
![](http://11d92t.cn/d/file/jxtd/xxjl/2016-12-15/9c13b2d75a7a5683117a9d1d3def3faf.jpg)
![](http://11d92t.cn/d/file/jxtd/xxjl/2016-12-15/97bd111c5632d48f6dc3d435dee9102a.jpg)
從上面的結(jié)果可以看出,R是上三角矩陣,同時(shí)滿足等式 ,表明上題中Cholesky分解成功。
基礎(chǔ)部:劉小剛 |