矩阵分析之 实矩阵分解(4)满秩分解,QR分解

  • Post author:
  • Post category:其他


矩阵分析之 实矩阵分解(4)满秩分解,QR分解



前言

之前已经将特征分解、SVD分解、LU和PLU分解、Cholesky和LDLT分解总结了,本次是实矩阵分解的最后一节,包括满秩分解和QR分解。



满秩分解

对于实矩阵



A

R

m

×

n

,

r

a

n

k

(

A

)

=

r

A\in R^{m\times n},rank(A)=r






A














R











m


×


n










,




r


a


n


k


(


A


)




=








r





,则可满秩分解为:





A

m

×

n

=

B

m

×

r

C

r

×

n

,

r

a

n

k

(

B

)

=

r

a

n

k

(

C

)

=

r

A_{m\times n}=B_{m\times r}C_{r\times n},rank(B)=rank(C)=r







A











m


×


n





















=









B











m


×


r




















C











r


×


n



















,




r


a


n


k


(


B


)




=








r


a


n


k


(


C


)




=








r







矩阵



B

B






B









C

C






C





分别是列满秩和行满秩矩阵。

满秩分解的结果不是唯一的

证明:





r

a

n

k

(

A

)

=

r

,

D

R

m

×

n

r

a

n

k

(

D

)

=

r

rank(A)=r,\exist D\in R^{m\times n}, rank(D)=r






r


a


n


k


(


A


)




=








r


,







D














R











m


×


n













r


a


n


k


(


D


)




=








r










D

D






D





是元素为1或0的对角矩阵,则



A

,

D

A,D






A


,




D





矩阵等价,存在可逆矩阵



P

R

m

×

m

,

Q

R

n

×

n

P\in R^{m\times m},Q\in R^{n\times n}






P














R











m


×


m










,




Q














R











n


×


n













使得



D

=

P

A

Q

,

A

=

P

1

D

Q

1

D=PAQ,A=P^{-1}DQ^{-1}






D




=








P


A


Q


,




A




=









P














1










D



Q














1













,此时矩阵



D

D






D





可以进行分块矩阵分解:





D

=

[

E

r

×

r

0

r

×

(

n

r

)

0

(

m

r

)

×

r

0

(

m

r

)

×

(

n

r

)

]

=

[

E

r

×

r

0

(

m

r

)

×

r

]

[

E

r

×

r

0

r

×

(

n

r

)

]

=

L

m

×

r

R

r

×

n

A

=

P

m

×

m

1

L

m

×

r

R

r

×

n

Q

n

×

n

1

=

B

m

×

r

C

r

×

n

D=\begin{bmatrix} E_{r\times r} & 0_{r\times (n-r)}\\ 0_{(m-r)\times r} & 0_{(m-r)\times (n-r)} \\ \end{bmatrix} \\ \quad \\ =\begin{bmatrix} E_{r\times r} \\ 0_{(m-r)\times r} \\ \end{bmatrix}\begin{bmatrix} E_{r\times r} & 0_{r\times (n-r)} \\ \end{bmatrix} =L_{m\times r}R_{r\times n} \\ \quad \\ A=P^{-1}_{m\times m}L_{m\times r}R_{r\times n}Q^{-1}_{n\times n} = B_{m\times r}C_{r\times n}






D




=










[














E











r


×


r


























0











(


m





r


)


×


r















































0











r


×


(


n





r


)


























0











(


m





r


)


×


(


n





r


)





































]




















=










[














E











r


×


r


























0











(


m





r


)


×


r





































]








[














E











r


×


r















































0











r


×


(


n





r


)





































]






=









L











m


×


r




















R











r


×


n

































A




=









P











m


×


m













1




















L











m


×


r




















R











r


×


n




















Q











n


×


n













1





















=









B











m


×


r




















C











r


×


n
























上式说明了两点:(1)满秩分解不唯一,因为



P

,

Q

P,Q






P


,




Q





取法不唯一。(2)分解出列满秩和行满秩矩阵,因为



L

,

R

L,R






L


,




R





是列满秩和行满秩的,而



P

,

Q

P,Q






P


,




Q





是行/列变换,不改变秩。

由于满秩分解结果不唯一,因此工程计算里用的比较少。(每次分解结果不一样是不稳定的)



QR分解

对于矩阵



A

R

m

×

n

,

m

n

A\in R^{m\times n},m\ge n






A














R











m


×


n










,




m













n





,可以进行QR分解:





A

m

×

n

=

Q

m

×

m

R

m

×

n

A_{m\times n}=Q_{m\times m}R_{m\times n}







A











m


×


n





















=









Q











m


×


m




















R











m


×


n
























其中,




Q

Q






Q





是一个正交矩阵,



R

R






R





是一个上三角矩阵。

或者化为另一种形式:





A

m

×

n

=

Q

m

×

n

R

n

×

n

A_{m\times n}=Q_{m\times n}R_{n\times n}







A











m


×


n





















=









Q











m


×


n




















R











n


×


n
























其中,




Q

Q






Q





是一个正交列向量组,



R

R






R





是一个上三角矩阵。此外,如果



A

A






A





是一个列满秩矩阵,并且



R

R






R





的主对角元都为正数时,QR分解的结果唯一

QR分解的存在性需要借助householder矩阵证明,这一块我还没看懂,有时间了再补。

QR矩阵分解对于任意矩阵都能够使用,因此当面对

超定或者欠定方程

时,QR分解是一种很好的选择。



总结

在实矩阵分解栏目下,我依次记录了这几种分解方法:特征分解(谱分解),奇异值分解(SVD),LU、PLU分解,Cholesky分解及其改良,满秩分解,QR分解。

这些矩阵分解的方法除了要知道存在性和唯一性,还要能够在实际的工程应用中使用。

幸好现在的数学计算工具非常丰富,大部分常用的矩阵分解方法都有现成的功能包或者开源代码,比如Matlab里的矩阵分解方法就比较齐全。

C++的Eigen库也给出了部分矩阵分解方法的API,并且配有一张矩阵计算速度表如下所示:

在这里插入图片描述

下篇,我将把之前讲过的所有实矩阵分解方法做一个归纳。



版权声明:本文为qq_41035283原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。