Matlab矩阵的分解
一、LU分解:将方阵分解为一个上三角矩阵和一个下三角矩阵的乘积,即A=LU,其中A为方阵,L为下三角矩阵,U为上三角矩阵
例如:对矩阵A=[1 2 -1;3 4 -2;5 -4 1]进行LU 分解
>> a=[1,2,-1;3,4,-2;5,-4,1];
>> [l,u]=lu(a)
l =
0.200000000000000 0.437500000000000 1.000000000000000
0.600000000000000 1.000000000000000 0
1.000000000000000 0 0
u =
5.000000000000000 -4.000000000000000 1.000000000000000
0 6.400000000000000 -2.600000000000000
0 0 -0.062500000000000
>> [l,u,p]=lu(a)
l =
1.000000000000000 0 0
0.600000000000000 1.000000000000000 0
0.200000000000000 0.437500000000000 1.000000000000000
u =
5.000000000000000 -4.000000000000000 1.000000000000000
0 6.400000000000000 -2.600000000000000
0 0 -0.062500000000000
p =
0 0 1
0 1 0
1 0 0
二、Cholesky分解
Cholesky分解:如果A 为正定矩阵,则存在唯一的对角元素为正的下三角阵L(上三角阵R),使得A=LLt(A=RtR).使用chol实现,实现方法为:
R=chol(A),表示为A=RtR;
L=chol(A,'lower'),表示为A=LLt
例:对矩阵A=[16,4,8;4,5,-4;8,-4,22]进行Cholesky分解
>> a=[16,4,8;4,5,-4;8,-4,22];
>> R=chol(a)
R =
4 1 2
0 2 -3
0 0 3
>>
>> L=chol(a,'lower')
L =
4 0 0
1 2 0
2 -3 3
三、QR分解
QR分解:实满矩阵A可分解成一个正交矩阵与一个上三角矩阵的乘积,即A=QR,其中Q为正交阵,R为上三角阵
实现:[Q,R]=qr(A),表示A=QR;
[Q,R]=qr(A),表示为QR=AE
例如:对于矩阵A=[8,1,6;3,5,7;4,9,2]进行QR分解
>> format short
>> [Q,R]=qr(a)
Q =
-0.8480 0.5223 0.0901
-0.3180 -0.3655 -0.8748
-0.4240 -0.7705 0.4760
R =
-9.4340 -6.2540 -8.1620
0 -8.2394 -0.9655
0 0 -4.6314
四、奇异值分解
奇异值分解:实矩阵A可以分解为对角矩阵S,正交矩阵U与V,满足的A=USVt,
使用格式为:
[U,S,V]=svd(A),表示为A=USVt
例如:对于矩阵A=[1,2,3,4;2,3,1,2;1,1,1,-1;1,0,-2,-6];进行奇异值分解.
a=[1,2,3,4;2,3,1,2;1,1,1,-1;1,0,-2,-6];
>> [U,S,V]=svd(a)
U =
-0.6222 -0.2584 -0.4694 0.5708
-0.3630 -0.6522 0.6461 -0.1596
0.0111 -0.4328 -0.5974 -0.6751
0.6936 -0.5662 -0.0734 0.4393
S =
8.5660 0 0 0
0 4.2147 0 0
0 0 1.3638 0
0 0 0 0.0203
V =
-0.0751 -0.6078 0.1114 0.7826
-0.2711 -0.6895 0.2947 -0.6035
-0.4209 -0.1727 -0.8892 -0.0479
-0.8624 0.3540 0.3317 0.1449