矩阵分解的常见方法

Posted faranten

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矩阵分解的常见方法相关的知识,希望对你有一定的参考价值。

介绍了矩阵分解的四种常见方法:LU分解、QR分解、满秩分解和奇异值分解。

1 矩阵的LU分解

1.1 矩阵LU分解的步骤推导

矩阵的LU分解又称矩阵的三角分解,该分解方法是基于矩阵的Gauss消去法导出的。矩阵的LU分解得到的结果是方阵\\(A\\)被表示成一个下三角矩阵\\(L\\)和上三角矩阵\\(U\\)的乘积,也就是\\(A=LU\\)。进一步,如果分解的结果可以是\\(A=LDU\\),其中\\(D\\)为对角矩阵,\\(L\\)\\(U\\)分别为单位下三角矩阵和单位上三角矩阵,那么则称这种分解为矩阵的LDU分解。Gauss消去法是由一系列初等行变换组成的,对方阵\\(A\\)实行这些初等行变换等价于对方阵\\(A\\)​左乘一系列的初等行变换矩阵,矩阵LU分解的关键一步就是找出这些初等行变换矩阵,也就是要找到

\\[A=L_1L_2\\cdots L_n-1A^(n-1) \\]

使得方阵\\(A^(n-1)\\)为上三角矩阵,记为\\(U=A^(n-1)\\),又因为可以证明此时的矩阵\\(L=L_1L_2\\cdots L_n-1\\)是一个单位下三角矩阵,所以这样就完成了矩阵的LU分解。对于一个方阵是否可做LDU分解,可用顺序主子式来判断:方阵\\(A=(a_ij)_n\\times n\\)可做LDU分解当且仅当\\(A\\)的顺序主子式\\(\\Delta_k\\neq0\\),其中\\((k=1,2,\\cdots,n-1)\\)。矩阵的LU分解和矩阵的LDU分解在具体操作上只有一点不同,这个不同将在后面结合具体的例子来说明。

当矩阵的前\\(n-1\\)个顺序主子式均非零的条件不满足的时候,需要先对\\(A\\)左乘(或右乘)置换矩阵\\(P\\)之后再进行分解,得到\\(PA=LDU\\)

最后介绍两个概念:矩阵的Doolittle分解是指\\(A=L(DU)=L\\hatU\\);而矩阵的Crout分解是指\\(A=(LD)U=\\hatLU\\)

1.2 举例展示求法

下面以《矩阵论》一书例4.1为基础说明矩阵的LU分解和矩阵的LDU分解的具体过程。

例4.1 求矩阵\\(A\\)的LDU分解,其中

\\[A= \\beginbmatrix 2 & 1 & -3\\\\ 1 & 2 & 1\\\\ 2 & 4 & 2 \\endbmatrix \\]

因为顺序主子式\\(\\Delta_1=2\\neq0\\)\\(\\Delta_2=5\\neq0\\),因此可以唯一地进行矩阵的LDU分解。构造矩阵

\\[L_1= \\beginbmatrix 1 & & \\\\ \\frac12 & 1 & \\\\ 1 & 0 & 1 \\endbmatrix \\qquad L_1^-1= \\beginbmatrix 1 & & \\\\ -\\frac12 & 1 & \\\\ -1 & 0 & 1 \\endbmatrix \\]

此时注意矩阵\\(L_1\\)结构上的特殊性保证了其在求逆的时候只需要将下三角部分取相反数即可,这减少了计算量。那么就有

\\[L_1^-1A^(0)= \\beginbmatrix 2 & -1 & 3\\\\ 0 & \\frac52 & -\\frac12\\\\ 0 & 5 & -1 \\endbmatrix =A^(1) \\]

此时再构造

\\[L_2= \\beginbmatrix 1 & & \\\\ 0 & 1 & \\\\ 0 & 2 & 1 \\endbmatrix \\qquad L_2^-1= \\beginbmatrix 1 & & \\\\ 0 & 1 & \\\\ 0 & -2 & 1 \\endbmatrix \\]

然后计算得到

\\[L_2^-1A^(1)= \\beginbmatrix 2 & -1 & 3\\\\ 0 & \\frac52 & -\\frac12\\\\ 0 & 0 & 0 \\endbmatrix =A^(2) \\]

此时就得到了一个上三角矩阵\\(A^(2)\\),在矩阵的LU分解中,此时可以令\\(L=L_1L_2\\)以及\\(U=A^(2)\\),分解完成,但是在矩阵的LDU分解中,还需要将\\(A^(2)\\)​进一步分解成一个对角矩阵和一个单位上三角矩阵(可以先设出单位上三角矩阵的待定形式之后进行反解),也就是

\\[A^(2)= \\beginbmatrix 2 & 0 & 0\\\\ 0 & \\frac52 & 0\\\\ 0 & 0 & 0 \\endbmatrix \\beginbmatrix 1 & -\\frac12 & \\frac32\\\\ 0 & 1 & -\\frac15\\\\ 0 & 0 & 1 \\endbmatrix \\]

那么令\\(L=L_1L_2\\),则可以得到方阵\\(A\\)的LDU分解为

\\[A=LDU= \\beginbmatrix 1 & 0 & 0\\\\ \\frac12 & 1 & 0\\\\ 1 & 2 & 1 \\endbmatrix \\beginbmatrix 2 & 0 & 0\\\\ 0 & \\frac52 & 0\\\\ 0 & 0 & 0 \\endbmatrix \\beginbmatrix 1 & -\\frac12 & \\frac32\\\\ 0 & 1 & -\\frac15\\\\ 0 & 0 & 1 \\endbmatrix \\]

2 矩阵的QR分解

2.1 矩阵QR分解的步骤推导

矩阵的QR分解又称矩阵的正交三角分解,所使用的方法基于Schmidt正交化、或者Givens变换或者Householder变换。Schmidt正交化的概念已经十分熟悉,下面介绍Givens变换和Householder变换的概念。Givens变换指的是初等旋转变换,Givens矩阵为

\\[T_ij= \\left[ \\beginarrayccccccccccc 1 & & & & & & & & & &\\\\ & \\ddots & & & & & & & & &\\\\ & & 1 & & & & & & & &\\\\ & & & c & & & & -s & & &\\\\ & & & & 1 & & & & & &\\\\ & & & & & \\ddots & & & & &\\\\ & & & & & & 1 & & & &\\\\ & & & -s & & & & c & & &\\\\ & & & & & & & & 1 & &\\\\ & & & & & & & & & \\ddots &\\\\ & & & & & & & & & &1 \\endarray \\right] \\]

其中两个含有\\(-s\\)的行分别为第\\(i\\)行和第\\(j\\)行(\\(i<j\\)),并且\\(c^2+s^2=1\\)。对一个向量进行Givens变换所得到的结果是改变这个向量的方向但是不改变这个向量的模(长度),而且对任何一个非零向量经过有限次的Givens变换总能时使其方向和\\(e\\)向量的方向相同,这一点由这个定理保证:设\\(x=(\\xi_1,\\xi_2,\\cdots,\\xi_n)^T\\neq0\\),则存在有限个Givens矩阵的乘积,记作\\(T\\),使得\\(Tx=|x|e_1\\),那么就有这样一个推理:设非零列向量\\(x\\in R^n\\)即单位列向量\\(z\\in R^n\\),则存在有限个Givens矩阵的乘积,记作\\(T\\),使得\\(Tx=|x|z\\)

Householder变换指的是对称变换,Householder矩阵为:\\(H=I-2uu^T\\),对一个向量左乘Householder矩阵\\(H\\),实现的效果是将向量\\(x\\)映射为关于与单位向量\\(u\\)正交的\\(n-1\\)维子空间对称的向量\\(y\\)。Householder矩阵又称为初等反射矩阵,它具有一些常见性质:

\\[\\beginalign* (1)~&H^T=H\\quad(\\text对称矩阵)\\\\ (2)~&H^TH=I\\quad(\\text正交矩阵)\\\\ (3)~&H^2=I\\quad(\\text对合矩阵)\\\\ (4)~&H^-1=H\\quad(\\text自逆矩阵)\\\\ (5)~&\\textdetH=-1 \\endalign* \\]

并且有这样一个定理:对于任何非零列向量\\(x\\in R^n(n>1)\\)及单位列向量\\(z\\in R^n\\),存在Householder矩阵\\(H\\),使得\\(Hx=|x|z\\),这和Givens矩阵的一个定理是类似的。而且,需要指出的是,初等旋转矩阵是两个初等反射矩阵的乘积,这也由相应的定理保证。

在介绍完Givens变换和Householder变换之后,下面来正式介绍矩阵的QR分解:如果实(复)可逆矩阵\\(A\\)能够化成正交(酉)矩阵\\(Q\\)与实(复)可逆上三角矩阵\\(R\\)的乘积,即\\(A=QR\\),则称此式为\\(A\\)的QR分解。矩阵的QR分解有三个思路:一种方法是使用Schmidt正交化、一种方法是使用Givens变换、一种方法是使用Householder变换。

对于Schmidt正交化的思路,有如下定理:设\\(A\\)\\(n\\)阶实(复)可逆矩阵,则存在正交(酉)矩阵\\(Q\\)和实(复)可逆上三角矩阵\\(R\\),使\\(A\\)有QR分解,且除去一个对角元素的绝对值(模)全等于\\(1\\)的对角矩阵因子外,分解式\\(A=QR\\)是唯一的。下面将给出这个定理的证明。

记矩阵\\(A\\)\\(n\\)个列向量依次为\\(a_1,a_2,\\cdots,a_n\\),因为\\(A\\)可逆,故这\\(n\\)个列向量线性无关,可以进行正交化。在线性代数课程中已经对Schmidt正交化进行了足够详细的讨论,故本论文将在此处直接给出结果。对它们使用Schmidt正交化方法进行正交化,可以得到\\(n\\)个标准正交列向量\\(q_1,q_2,\\cdots,q_n\\),且有

\\[(a_1,a_2,\\cdots,a_n)=(q_1,q_2,\\cdots,q_n) \\beginbmatrix |b_1| &&&&\\\\ & |b_2| &&&\\\\ &&& \\ddots &\\\\ &&&& |b_n| \\endbmatrix C \\]

其中

\\[\\left. \\begincases b_1=a_1\\\\ b_2=a_2-k_21b_1\\\\ \\quad\\cdots\\\\ b_n=a_n-k_n,n-1b_n-1-\\cdots-k_n1b_1 \\endcases \\right. \\quad\\text其中k_ij=\\frac(a_i,b_j)(b_j,b_j) \\]

\\[q_i=\\frac1|b_i|b_i\\qquad C= \\beginbmatrix 1 & k_21 & \\cdots & k_n1\\\\ & 1 & \\cdots & k_n2\\\\ && \\ddots & \\vdots\\\\ &&&1 \\endbmatrix \\]

之后令\\(Q=(q_1,q_2,\\cdots,q_n)\\)以及\\(R=diag(|b_1|,|b_2|,\\cdots,|b_n|)\\cdot C\\),就完成了矩阵的QR分解。

上面所述的定理是从Schmidt正交化的角度进行矩阵的QR分解,下面的定理将从Givens变换的角度将矩阵的QR分解进行推广:设\\(A\\)\\(m\\times n\\)实(复)矩阵,且其\\(n\\)个列线性无关,则\\(A\\)有分解\\(A=QR\\),其中\\(Q\\)\\(m\\times n\\)实(复)矩阵,且满足\\(Q^TQ=I(Q^HQ=I)\\)\\(R\\)\\(n\\)阶实(复)可逆上三角矩阵,该分解除去一个对角元素的绝对值(模)全等于\\(1\\)的对角矩阵因子外是唯一的。下面将给出这个定理的证明。

第一步:由\\(\\det A\\neq0\\)知,\\(A\\)的第一列\\(b^(1)=(a_11,a_12,\\cdots,a_n1)^T\\neq0\\),那么从前面关于Givens变换的叙述知道,存在有限个Givens矩阵的乘积,记作\\(T_1\\),使得\\(T_1b^(1)=|b^(1)|e_1\\),其中\\(e_1\\in R^n\\),令\\(a_11^(1)=|b^(1)|\\)则有

\\[T_1A= \\left[ \\beginarrayc:ccc a_11^(1) & a_12^(1) & \\cdots & a_1n^(1)\\\\ \\hdashline 0 & & &\\\\ \\vdots & & A^(1) &\\\\ 0 \\endarray \\right] \\]

第二步:由\\(\\det A^(1)\\neq0\\)知,\\(A^(1)\\)的第一列\\(b^(2)=(a_22^(1),a_32^(1),\\cdots,a_n2^(1))^T\\neq0\\),那么从前面关于Givens变换的叙述知道,存在有限个Givens矩阵的乘积,记作\\(T_2\\),使得\\(T_2b^(2)=|b^(2)|e_1\\),其中\\(e_1\\in R^n-1\\),令\\(a_22^(2)=|b^(2)|\\)则有

\\[T_1A= \\left[ \\beginarrayc:ccc a_22^(2) & a_23^(2) & \\cdots & a_2n^(2)\\\\ \\hdashline 0 & & &\\\\ \\vdots & & A^(2) &\\\\ 0 \\endarray \\right] \\]

这样不断迭代下去,就能找到一系列的矩阵\\(T_i\\),最终得到

\\[T_n-1A^(n-2)= \\beginbmatrix a_n-1,n-1^(n-1) & a_n-1,n^(n-1)\\\\ 0 & a_nn^(n-1) \\endbmatrix \\]

最后令

\\[T= \\beginbmatrix I_n-2 & O\\\\ O & T_n-1 \\endbmatrix \\cdots \\beginbmatrix I_2 & O\\\\ O & T_3 \\endbmatrix \\beginbmatrix 1 & O\\\\ O & T_2 \\endbmatrix T_1 \\]

这样,矩阵\\(T\\)就是有限个Givens矩阵的乘积且有

\\[TA= \\beginbmatrix a_11^(1) & a_12^(1) & \\cdots & a_1,n-1^(1) & a_1n^(1)\\\\ & a_22^(2) & \\cdots & a_2,n-1^(2) & a_2n^(2)\\\\ && \\ddots & \\vdots & \\vdots\\\\ &&& a_n-1,n-1^(n-1) & a_n-1,n^(n-1)\\\\ &&&& a_nn^(n-1) \\endbmatrix \\]

将上面最终得到的上三角矩阵记为\\(R\\),且令\\(Q=T^-1\\),这样就完成了矩阵的QR分解。

上述过程是从Givens变换的角度来进行矩阵的QR分解,下面将从Householder变换的角度来进行矩阵的QR分解,有如下定理:任何实可逆矩阵\\(A\\)可通过左连乘Householder矩阵化为可逆上三角矩阵。下面将给出这个定理的证明。

第一步:由\\(\\textdetA\\neq0\\)​知,\\(A\\)​的第一列\\(b^(1)=(a_11,a_12,\\cdots,a_n1)^T\\neq0\\)​,那么从前面关于Householder变换的叙述知道,存在Householder矩阵\\(H_1\\),使得\\(H_1b^(1)=|b^(1)|e_1\\),其中\\(e_1\\in R^n\\),令\\(a_11^(1)=|b^(1)|\\)​则有

\\[H_1A= \\left[ \\beginarrayc:ccc a_11^(1) & a_12^(1) & \\cdots & a_1n^(1)\\\\ \\hdashline 0 & & &\\\\ \\vdots & & A^(1) &\\\\ 0 \\endarray \\right] \\]

第二步:由\\(\\textdetA^(1)\\neq0\\)知,\\(A^(1)\\)的第一列\\(b^(2)=(a_22^(1),a_32^(1),\\cdots,a_n2^(1))^T\\neq0\\),那么从前面关于Householder变换的叙述知道,存在Householder矩阵\\(H_2\\),使得\\(H_2b^(2)=|b^(2)|e_1\\),其中\\(e_1\\in R^n-1\\),令\\(a_22^(2)=|b^(2)|\\)则有

\\[H_1A= \\left[ \\beginarrayc:ccc a_22^(2) & a_23^(2) & \\cdots & a_2n^(2)\\\\ \\hdashline 0 & & &\\\\ \\vdots & & A^(2) &\\\\ 0 \\endarray \\right] \\]

这样不断迭代下去,就能找到一系列的矩阵\\(H_i\\),最终得到

\\[H_n-1A^(n-2)= \\beginbmatrix a_n-1,n-1^(n-1) & a_n-1,n^(n-1)\\\\ 0 & a_nn^(n-1) \\endbmatrix \\]

最后令

\\[S= \\beginbmatrix I_n-2 & O\\\\ O & H_n-1 \\endbmatrix \\cdots \\beginbmatrix I_2 & O\\\\ O & H_3 \\endbmatrix \\beginbmatrix 1 & O\\\\ O & H_2 \\endbmatrix H_1 \\]

并且注意到当\\(H_u\\)\\(n-l\\)阶Householder矩阵(即\\(H_u=I_n-l-2uu^T\\))的时候,令\\(v=(0,u)^T\\in R^n\\),则有\\(v^Tv=u^Tu=1\\),且容易证明\\(\\beginbmatrixI_l & O\\\\O & H_u\\endbmatrix=I_n-2vv^T\\),这样,矩阵\\(S\\)就是有限个Householder矩阵的乘积且有

\\[SA= \\beginbmatrix a_11^(1) & a_12^(1) & \\cdots & a_1,n-1^(1) & a_1n^(1)\\\\ & a_22^(2) & \\cdots & a_2,n-1^(2) & a_2n^(2)\\\\ && \\ddots & \\vdots & \\vdots\\\\ &&& a_n-1,n-1^(n-1) & a_n-1,n^(n-1)\\\\ &&&& a_nn^(n-1) \\endbmatrix \\]

将上面最终得到的上三角矩阵记为\\(R\\),且令\\(Q=S^-1\\),这样就完成了矩阵的QR分解。

这样,我们给出了三种思路来进行矩阵的QR分解:一种方法是使用Schmidt正交化、一种方法是使用Givens变换、一种方法是使用Householder变换,这三种方法将在下面的例子中分别加以说明。

2.2 举例展示求法

下面以《矩阵论》一书例4.6为基础说明使用Schmidt正交化方法进行矩阵QR分解的具体过程。

例4.6 用Schmidt正交化方法进行矩阵\\(A\\)的QR分解,其中

\\[A= \\beginbmatrix 1 & 2 & 2\\\\ 2 & 1 & 2\\\\ 1 & 2 & 1 \\endbmatrix \\]

可以提取出矩阵\\(A\\)的三个列向量分别为

\\[a_1=(1,2,1)^T\\quad a_2=(2,1,2)^T\\quad a_3=(2,2,1)^T \\]

使用Schmidt正交化方法对这三个列向量进行正交化得到

\\[\\beginalign* b_1&=a_1=(1,2,1)^T\\\\ b_2&=a_2-b_1=(1,-1,1)^T\\\\ b_3&=a_3-\\frac13b_2-\\frac76b_1=(\\frac12,0,-\\frac12)^T \\endalign* \\]

对得到的三个正交的列向量进行单位化之后可以构造出矩阵\\(Q\\)

\\[Q= \\beginbmatrix \\frac1\\sqrt6 & \\frac1\\sqrt3 & -\\frac1\\sqrt2\\\\ \\frac2\\sqrt6 & -\\frac1\\sqrt3 & 0\\\\ \\frac1\\sqrt6 & \\frac1\\sqrt3 & \\frac1\\sqrt2 \\endbmatrix \\]

这样就构造出了矩阵\\(Q\\),故现在的任务是构造出矩阵\\(R\\)就能完成矩阵的QR分解,根据步骤推导所述的内容,容易构造出

\\[R= \\beginbmatrix \\sqrt6 &&\\\\ & \\sqrt3 &\\\\ && \\frac1\\sqrt2 \\endbmatrix \\beginbmatrix 1 & 1 & \\frac76\\\\ & 1 & \\frac13\\\\ && 1 \\endbmatrix = \\beginbmatrix \\sqrt6 & \\sqrt 6 & \\frac7\\sqrt6\\\\ & \\sqrt3 & \\frac1\\sqrt3\\\\ && \\frac1\\sqrt2 \\endbmatrix \\]

下面以《矩阵论》一书例4.7为基础说明使用Givens变换方法进行矩阵QR分解的具体过程。

例4.7 用初等旋转变换求矩阵\\(A\\)的QR分解,其中

\\[A= \\beginbmatrix 0 & 1 & 1\\\\ 1 & 1 & 0\\\\ 1 & 0 & 1 \\endbmatrix \\]

\\(A\\)的第一列\\(b^(1)=(0,1,1)^T\\)构造\\(T_1\\),使得\\(T_1b^(1)=|b^(1)|e_1\\)

\\[\\beginalign* T_12=& \\beginbmatrix 0 & 1 & 0\\\\ -1 & 0 & 0\\\\ 0 & 0 & 1 \\endbmatrix, \\quad T_12b^(1)=\\beginbmatrix 1\\\\0\\\\1 \\endbmatrix\\\\ T_13=& \\beginbmatrix \\frac1\\sqrt2 & 0 & \\frac1\\sqrt2\\\\ 0 & 1 & 0\\\\ -\\frac1\\sqrt2 & 0 & \\frac1\\sqrt2 \\endbmatrix, \\quad T_13(T_12b^(1))=\\beginbmatrix \\sqrt2\\\\0\\\\0 \\endbmatrix\\\\ T_1=T_13&T_12= \\beginbmatrix 0 & \\frac1\\sqrt2 & \\frac1\\sqrt2\\\\ -1 & 0 & 0\\\\ 0 & -\\frac1\\sqrt2 & \\frac1\\sqrt2 \\endbmatrix, \\quad T_1A= \\beginbmatrix \\sqrt2 & \\frac1\\sqrt2 & \\frac1\\sqrt2\\\\ 0 & -1 & -1\\\\ 0 & -\\frac1\\sqrt2 & \\frac1\\sqrt2 \\endbmatrix\\\\ \\text令\\quad&A^(1)= \\beginbmatrix -1 & -1\\\\ -\\frac1\\sqrt2 & \\frac1\\sqrt2 \\endbmatrix \\endalign* \\]

此后再对\\(A^(1)\\)的第一列进行类似的操作,不断迭代,按照理论推导中叙述的思路,最后就能得到

\\[Q=T^T= \\beginbmatrix 0 & \\frac2\\sqrt6 & -\\frac1\\sqrt3\\\\ \\frac1\\sqrt2 & \\frac1\\sqrt6 & \\frac1\\sqrt3\\\\ \\frac1\\sqrt2 & -\\frac1\\sqrt6 & -\\frac1\\sqrt3 \\endbmatrix, \\quad R= \\beginbmatrix \\sqrt2 & \\frac1\\sqrt2 & \\frac1\\sqrt2\\\\ & \\frac3\\sqrt6 & \\frac1\\sqrt6\\\\ & & -\\frac2\\sqrt3 \\endbmatrix\\\\ A=QR \\]

这样就完成了矩阵\\(A\\)的QR分解。

下面以《矩阵论》一书例4.8为基础说明使用Householder变换方法进行矩阵QR分解的具体过程。

例4.8 用Householder变换求矩阵\\(A\\)的QR分解,其中

\\[A= \\beginbmatrix 3 & 14 & 9\\\\ 6 & 43 & 3\\\\ 6 & 22 & 15 \\endbmatrix \\]

\\(A\\)的第一列\\(b^(1)=(3,6,6)^T\\)构造\\(T_1\\),使得\\(T_1b^(1)=|b^(1)|e_1\\)

\\[b^(1)= \\beginbmatrix 3\\\\6\\\\6 \\endbmatrix, \\quad b^(1)-|b^(1)|e_1=6\\beginbmatrix -1\\\\1\\\\1 \\endbmatrix, \\quad u=\\frac1\\sqrt3 \\beginbmatrix -1\\\\1\\\\1 \\endbmatrix\\\\ H_1=I-2uu^T=\\frac13 \\beginbmatrix 1 & 2 & 2\\\\ 2 & 1 & -2\\\\ 2 & -2 & 1 \\endbmatrix, \\quad H_1A= \\beginbmatrix 9 & 48 & 15\\\\ 0 & 9 & -3\\\\ 0 & -12 & 9 \\endbmatrix, \\quad \\text令A^(1)= \\beginbmatrix 9 & -3\\\\ -12 & 9 \\endbmatrix \\]

此后再对\\(A^(1)\\)​的第一列进行类似的操作,不断迭代,按照理论推导中叙述的思路,最后就能得到

\\[Q=S^T=\\frac115 \\beginbmatrix 5 & -2 & 14\\\\ 10 & 11 & 2\\\\ 10 & -10 & 5 \\endbmatrix, \\quad R= \\beginbmatrix 9 & 48 & 15\\\\ & 15 & -9\\\\ & & -3 \\endbmatrix\\\\ A=QR \\]

3 矩阵的满秩分解

3.1 矩阵满秩分解的步骤推导

矩阵的满秩分解是指将非零矩阵分解为列满秩矩阵与行满秩矩阵的乘积。设\\(A\\in C_r^m\\times n(r>0)\\),如果存在矩阵\\(F\\in C_r^m\\times r\\)\\(G\\in C_r^r\\times n\\),使得\\(A=FG\\),则称此式为矩阵\\(A\\)的满秩分解。并且当\\(A\\)是满秩(列满秩或行满秩)矩阵时,\\(A\\)可以分解为一个因子是单位矩阵,另一个因子是\\(A\\)本身,此时称此满秩分解为平凡分解。

\\(\\textrankA=r\\)时,可以对\\(A\\)进行初等行变换将\\(A\\)化为阶梯形矩阵\\(B\\),即\\(A\\rightarrow B=\\beginbmatrixG\\\\O\\endbmatrix\\),其中\\(G\\in C_r^r\\times n\\)。于是存在有限个\\(m\\)阶初等矩阵的乘积\\(P\\)使得\\(PA=B\\),也就有

\\[A=P^-1B= \\left[ \\beginarrayc:c F & S \\endarray \\right] \\beginbmatrixG\\\\O\\endbmatrix =FG \\qquad (F\\in C_r^m\\times r,S\\in C_m-r^m\\times(m-r),G\\in C_r^r\\times n) \\]

以上叙述给出了使用初等行变换方法进行矩阵满秩分解的思路,但是求解矩阵\\(P\\)及其逆矩阵的计算有时是十分麻烦的,下面给出使用Hermite标准型的思路来回避掉这些可能会比较复杂的运算。

\\(B\\in C_r^m\\times n(r>0)\\),且满足

\\[\\beginalign* (1)&~B\\text的前r\\text行中每一行至少含一个非零元素,且第一个非零元素为1,而后m-r\\text行元素均为零\\\\ (2)&~\\text若B\\text中第i\\text行的第一个非零元素1在第j\\text列(i=1,2,\\cdots,r),\\text则j_1<j_2<\\cdots<j_r\\\\ (3)&~B\\text中的j_1,j_2,\\cdots,j_r\\text列为单位矩阵I_m\\text的前r\\text列 \\endalign* \\]

那么就称\\(B\\)为Hermite标准型。实际上,Hermite标准型就是初等变换意义下的行最简形。另外,如果\\(B\\)满足

\\[\\beginalign* (1)&~B\\text的后m-r\\text行元素均为零\\\\ (2)&~B\\text中的j_1,j_2,\\cdots,j_r\\text列为单位矩阵I_m\\text的前r\\text列 \\endalign* \\]

则称\\(B\\)为拟Hermite标准型。在矩阵的满秩分解过程中使用(拟)Hermite标准型可以简化计算:满秩分解式\\(A=FG\\)中可取\\(F\\)\\(A\\)\\(j_1,j_2,\\cdots,j_r\\)列构成的\\(m\\times r\\)矩阵,\\(G\\)\\(B\\)的前\\(r\\)行构成的\\(r\\times n\\)​矩阵,这条性质由相应的定理保证。

上面实际上给出了两种进行矩阵的满秩分解的思路:一种是用初等行变换进行求解,另一种是用(拟)Hermite标准型进行求解,下面将分别用例子演示这两种方法。

3.2 举例展示求法

下面以《矩阵论》一书例4.10为基础说明使用初等行变换方法来进行矩阵满秩分解的具体过程。

例4.10 求矩阵\\(A\\)的满秩分解,其中

\\[A= \\beginbmatrix -1 & 0 & 1 & 2\\\\ 1 & 2 & -1 & 1\\\\ 2 & 2 & -2 & -1 \\endbmatrix \\]

需要对矩阵\\(A\\)进行初等行变换使其成为阶梯形矩阵\\(B\\),并且需要得到初等矩阵的乘积\\(P\\),根据线性代数中的思路,先将矩阵\\(A\\)扩展成为矩阵\\(\\left[\\beginarrayc:cA & I\\endarray\\right]\\)之后再进行初等行变换便能得到\\(\\left[\\beginarrayc:cB & P\\endarray\\right]\\),容易得到

\\[B= \\beginbmatrix -1 & 0 & 1 & 2\\\\ 0 & 2 & 0 & 3\\\\ 0 & 0 & 0 & 0 \\endbmatrix, \\qquad P= \\beginbmatrix 1 & 0 & 0\\\\ 1 & 1 & 0\\\\ 1 & -1 & 1 \\endbmatrix, \\qquad P^-1= \\beginbmatrix 1 & 0 & 0\\\\ -1 & 1 & 0\\\\ -2 & 1 & 1 \\endbmatrix \\]

于是有

\\[A= \\beginbmatrix 1 & 0\\\\ -1 & 1\\\\ -2 & 1 \\endbmatrix \\beginbmatrix -1 & 0 & 1 & 2\\\\ 0 & 2 & 0 & 3 \\endbmatrix \\]

下面以《矩阵论》一书例4.11为基础说明使用Hermite思路来进行矩阵满秩分解的具体过程。

例4.11 求矩阵\\(A= \\beginbmatrix 0 & 0 & 1\\\\ 2 & 1 & 1\\\\ 2j & j & 0 \\endbmatrix\\)的满秩分解,其中\\(j=\\sqrt-1\\)

对矩阵\\(A\\)进行初等行变换得到:

\\[A\\rightarrow \\beginbmatrix 1 & \\frac12 & 0\\\\ 0 & 0 & 1\\\\ 0 & 0 & 0 \\endbmatrix=B \\]

其中\\(B\\)是Hermite标准型,因为\\(B\\)的第一列和第三列构成了\\(I_3\\)的前两列,所以\\(F\\)\\(A\\)的第一列和第三列构成的\\(3\\times2\\)矩阵,从而有

\\[A= \\beginbmatrix 0 & 1\\\\ 2 & 1\\\\ 2j & 0 \\endbmatrix \\beginbmatrix 1 & \\frac12 & 0\\\\ 0 & 0 & 1 \\endbmatrix \\]

4 矩阵的奇异值分解

4.1 矩阵奇异值分解的步骤推导

矩阵的奇异值分解是一种基于矩阵\\(A^HA\\)的特征值的分解方法。在正式介绍矩阵的奇异值分解之前,首先需要下面三个易证结论:

\\[\\beginalign* (1)&~\\text设A\\in C_r^m\\times n(r>0),\\text则A^HA\\text是Hermite矩阵,且其特征值均是非负实数\\\\ (2)&~\\textrank(A^HA)=\\textrankA\\\\ (3)&~\\text设A\\in C^m\\times n,\\text则A=O\\text的充要条件是A^HA=O \\endalign* \\]

下面先给出奇异值的概念:设\\(A\\in C_r^m\\times n(r>0)\\)\\(A^HA\\)的特征值为\\(\\lambda_1\\geq\\lambda_2\\geq\\cdots\\geq\\lambda_r>\\lambda_r+1=\\cdots=\\lambda_n=0\\),则称\\(\\sigma_i=\\sqrt\\lambda_i(i=1,2,\\cdots,n)\\)\\(A\\)的奇异值;当\\(A\\)为零矩阵时,它的奇异值都是\\(0\\)。矩阵的奇异值分解由这样一个定理保证:设\\(A\\in C_r^m\\times n(r>0)\\),则存在\\(m\\)阶酉矩阵\\(U\\)\\(n\\)阶酉矩阵\\(V\\),使得\\(U^HAV=\\beginbmatrix\\Sigma & O\\\\O & O\\endbmatrix\\),其中\\(\\Sigma=\\textdiag(\\sigma_1,\\sigma_2,\\cdots,\\sigma_r)\\),而\\(\\sigma_i(i=1,2,\\cdots,r)\\)为矩阵\\(A\\)的全部非零奇异值。下面将给出这个定理的证明。

记Hermite矩阵\\(A^HA\\)的特征值为\\(\\lambda_1\\geq\\lambda_2\\geq\\cdots\\geq\\lambda_r>\\lambda_r+1=\\cdots=\\lambda_n=0\\),则存在\\(n\\)阶酉矩阵\\(V\\),使得

\\[V^H(A^HA)V= \\beginbmatrix \\lambda_1 & &\\\\ & \\ddots &\\\\ & & \\lambda_n \\endbmatrix = \\beginbmatrix \\Sigma^2 & O\\\\ O & O\\\\ \\endbmatrix \\]

将矩阵\\(V\\)分块得到\\(V=\\left[\\beginarrayc:cV_1 & V_2\\endarray\\right]\\),其中\\(V_1\\in C_r^n\\times r,V_2\\in C_n-r^n\\times(n-r)\\),那么上式可以改写为

\\[A^HAV=V \\beginbmatrix \\Sigma^2 & O\\\\ O & O\\\\ \\endbmatrix \\]

那么有\\(A^HAV_1=\\Sigma^2\\)以及\\(A^HAV_2=O\\),则有\\((AV_1\\Sigma^-1)^H(AV_1\\Sigma^-1)=I_r\\)以及\\((AV_2)^H(AV_2)\\),此时可令\\(U_1=AV_1\\Sigma^-1\\),则有\\(U_1^HU_1=I_r\\),即\\(U_1\\)\\(r\\)个列向量是两两正交的单位向量,记作\\(U_1=(u_1,u_2,\\cdots,u_r)\\)。现在可将\\(u_1,u_2,\\cdots,u_r\\)扩充为\\(C^m\\)的标准正交基,记增添的向量为\\(u_r+1,\\cdots,u_m\\),并构造矩阵\\(U_2=(u_r+1,\\cdots,u_m)\\),这样就得到了矩阵\\(U=\\left[\\beginarrayc:cU_1 & U_2\\endarray\\right]\\),于是可得

\\[U^HAV=U^H \\left[ \\beginarrayc:c AV_1 & AV_2 \\endarray \\right] = \\beginbmatrix U_1^H\\\\ U_2^H \\endbmatrix \\left[\\beginarrayc:cU_1\\Sigma & O\\endarray\\right] = \\beginbmatrix \\Sigma & O\\\\ O & O \\endbmatrix \\]

4.2 举例展示求法

下面以《矩阵论》一书例4.14为基础说明矩阵奇异值分解的具体过程。

例4.14 求矩阵\\(A= \\beginbmatrix 1 & 0 & 1\\\\ 0 & 1 & 1\\\\ 0 & 0 & 0 \\endbmatrix\\)的奇异值分解

首先计算出矩阵\\(B=A^TA\\)的特征值与特征向量:

\\[\\lambda_1=3\\quad\\lambda_2=1\\quad\\lambda_3=0\\\\ \\xi_1= \\beginbmatrix 1\\\\1\\\\2 \\endbmatrix \\quad \\xi_2= \\beginbmatrix 1\\\\-1\\\\0 \\endbmatrix \\quad \\xi_3= \\beginbmatrix 1\\\\1\\\\-1 \\endbmatrix \\]

于是可得\\(\\textrankA=2\\)以及\\(\\Sigma=\\beginbmatrix\\sqrt3 & 0\\\\0 & 1\\endbmatrix\\),利用上述的特征向量可以构造出矩阵\\(V\\)、利用步骤推导中的思路可以求得矩阵\\(U\\),如下:

\\[V= \\beginbmatrix \\frac1\\sqrt6 & \\frac1\\sqrt2 & \\frac1\\sqrt3\\\\ \\frac1\\sqrt6 & -\\frac1\\sqrt2 & \\frac1\\sqrt3\\\\ \\frac2\\sqrt6 & 0 & -\\frac1\\sqrt3 \\endbmatrix \\]

然后可以使用步骤推导中的思路求得矩阵\\(U\\)

\\[U_1=AV_1\\Sigma^-1= \\beginbmatrix \\frac1\\sqrt2 & \\frac1\\sqrt2\\\\ \\frac1\\sqrt2 & -\\frac1\\sqrt2\\\\ 0 & 0 \\endbmatrix \\quad U_2= \\beginbmatrix 0\\\\0\\\\1 \\endbmatrix \\quad U= \\left[ \\beginarrayc:c U_1 & U_2 \\endarray \\right]= \\beginbmatrix \\frac1\\sqrt2 & \\frac1\\sqrt2 & 0\\\\ \\frac1\\sqrt2 & -\\frac1\\sqrt2 & 0\\\\ 0 & 0 & 1 \\endbmatrix \\]

因此矩阵\\(A\\)的奇异值分解为:

\\[A=U \\beginbmatrix \\sqrt3 & 0 & 0\\\\ 0 & 1 & 0\\\\ 0 & 0 & 0 \\endbmatrix V^T \\]

4.3 利用奇异值分解求矩阵广义逆

矩阵的奇异值分解的一个重要的应用就是求矩阵的广义逆矩阵。下面先介绍广义逆矩阵的概念:设矩阵\\(A\\in C^m\\times n\\),若矩阵\\(X\\in C^n\\times m\\)对于以下四个Penrose方程:

\\[\\beginalign* (1)&~AXA=A\\\\ (2)&~XAX=X\\\\ (3)&~(AX)^H=AX\\\\ (4)&~(XA)^H=XA \\endalign* \\]

如果矩阵\\(X\\)满足以上四个方程中的一个或几个,则称其为矩阵\\(A\\)的广义逆;如果四个方程全部满足,则称其为矩阵\\(A\\)的Moore-Penrose逆,记为\\(A^+\\),且这种广义逆矩阵是唯一的,它具有以下性质:

\\[\\beginalign* (1)&~\\textrankA^+=\\textrankA\\\\ (2)&~(A^+)^+=A\\\\ (3)&~(A^H)^+=(A^+)^H,(A^T)^+=(A^+)^T\\\\ (4)&~(A^HA)^+=A^+(A^H)^+,(AA^H)^+=(A^H)^+A^+\\\\ (5)&~A^+=(A^HA)^+A^H=A^H(AA^H)^+\\\\ (6)&~R(A^+)=R(A^H),N(A^+)=N(A^H) \\endalign* \\]

最后需要指出,当矩阵\\(A\\)为满秩方阵的时候,则有\\(A^+=A^-1\\)

可以使用矩阵的奇异值分解来求矩阵的Moore-Penrose逆,这由下面的定理保证:设\\(A\\in C_r^m\\times n\\)的奇异值分解为\\(A=U\\beginbmatrix\\Sigma_r & O\\\\O & O\\endbmatrix_m\\times nV^H\\),则有\\(A^+=V\\beginbmatrix\\Sigma_r^-1 & O\\\\O & O\\endbmatrix_m\\times nU^H\\)。这条定理的证明是容易的,只需要说明此处构造出的矩阵\\(A^+\\)满足上述四个Penrose方程即可。由于应用这条定理求矩阵的Moore-Penrose逆的操作是十分显然的,故此处不再单独举例展示该定理的具体使用步骤。

5 参考资料

  • 《矩阵论》,张凯院,徐仲,西北工业大学出版社

以上是关于矩阵分解的常见方法的主要内容,如果未能解决你的问题,请参考以下文章

基于One-Class的矩阵分解方法

推荐系统中——矩阵分解

奇异值分解的方法

常见机器学习算法原理+实践系列2(SVD)

奇异值分解(SVD)和图像压缩

Eigen解线性方程组