矩阵分解主要是指将一个矩阵分解为几个比较简单的矩阵连乘的形式。这里主要讨论MATLAB在Cholesky分解和LU分解上的应用
1. Cholesky分解
Cholesky分解是把一个对称正定矩阵A分解为一个上三角形矩阵R和其转置矩阵的乘积,其对应的表达式为:
。从理论的角度来看,并不是所有的对称矩阵都可以进行Cholesky分解,要求矩阵必须是正定的。
MATLAB提供chol()函数实现Cholesky分解,其具体用法如下:
:X为对称的正定矩阵,R为上三角矩阵,使得
:X是正定矩阵时,返回的矩阵R是上三角矩阵,而且满足等式
,同时返回参数
;X不是正定矩阵时,返回的参数p是正整数,R是三角矩阵,且矩阵阶数是
,并且满足等式
(2):将对称正定矩阵
进行Cholesky分解
解:
1. 新建一个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. 运行脚本文件得到结果为:
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
从上面的结果可以看出,R是上三角矩阵,同时满足等式
,表明上题中Cholesky分解成功。
基础部:刘小刚 |