Matlab矩阵的分解

                                            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

猜你喜欢

转载自blog.csdn.net/qq_38345598/article/details/84545101
今日推荐