线性代数与矩阵之矩阵分解

线性代数与矩阵论之矩阵分解

三角分解

三角分解是矩阵分解的基本形式,最初的三角分解是LU分解,它来自矩阵的高斯消元法。其他三角分解还有:当\(L\)是单位下三角(主对角元都是1的下三角矩阵)时,称为Doolittle分解,当\(U\)是单位下三角时,称为Crout分解,以及任何矩阵都可以进行的舒尔分解。

LU分解

在线性代数与数值分析中,LU分解是矩阵分解的一种,将一个矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积有时需要再乘上一个置换矩阵。LU分解可以被视为高斯消元法的矩阵形式。在数值计算上,LU分解经常被用来解线性方程组、且在求逆矩阵和计算行列式中都是一个关键的步骤。

对于方阵\(A\)\(A\)的LU分解是将它分解成一个下三角矩阵\(L\)与上三角矩阵\(U\) 的乘积,也就是 \[A=LU\] 通常,我们需要让\(L\)矩阵的对角线元素为1,如果矩阵\(A\)的对角线上出现0元素,我们应适当的改变\(A\)的行的顺序,在此尝试将\(A\)做LU分解。

举例来说一个\(3\times 3\)的矩阵\(A\),其 LU 分解会写成下面的形式: \[A={\begin{bmatrix} a_{11}&a_{12}&a_{13}\\ a_{21}&a_{22}&a_{23}\\ a_{31}&a_{32}&a_{33}\\ \end{bmatrix}}= {\begin{bmatrix} 1&0&0\\ l_{21}&1&0\\ l_{31}&l_{32}&1\\ \end{bmatrix}} {\begin{bmatrix} u_{11}&u_{12}&u_{13}\\ 0&u_{22}&u_{23}\\ 0&0&u_{33}\\ \end{bmatrix}}\] 事实上,并不是每个矩阵都有 LU 分解。例如,从上式可知\(a_{11}=u_{11}\),若\(a_{11}=0\),则\(u_{11}\)等于 0,故\(L\)\(U\)是不可逆矩阵,\(A\)必然也是不可逆矩阵。

然而,存在着可逆矩阵\(A\)不可LU分解的情况。例如,主对角线元素\(a_{11}=0\),如果按照LU分解的一般步骤,\(A\)就是没有\(LU\)分解的例子。该问题可借由置换\(A\)的各行顺序来解决,最终会得到一个\(A\)\(PLU\)分解,其中\(P\)是置换矩阵。

LU分解的具体步骤和高斯消元法是相同的。我们以一个例子来进行说明:

将一个简单的3×3矩阵A进行LU分解: \[A={\begin{bmatrix}1&2&3\\2&5&7\\3&5&3\\\end{bmatrix}}\] 先将矩阵第一列元素中\(a_{11}\)以下的所有元素变为0,即 \[L_{{1}}A={\begin{bmatrix}1&0&0\\-2&1&0\\-3&0&1\\\end{bmatrix}}\times {\begin{bmatrix}1&2&3\\2&5&7\\3&5&3\\\end{bmatrix}}={\begin{bmatrix}1&2&3\\0&1&1\\0&-1&-6\\\end{bmatrix}}\] 再将矩阵第二列元素中a22以下的所有元素变为0,即 \[L_{{2}}(L_{{1}}A)={\begin{bmatrix}1&0&0\\0&1&0\\0&1&1\\\end{bmatrix}}\times {\begin{bmatrix}1&2&3\\0&1&1\\0&-1&-6\\\end{bmatrix}}={\begin{bmatrix}1&2&3\\0&1&1\\0&0&-5\\\end{bmatrix}}=U\] 显然,\(L=(L_1^{-1}L_2^{-1})\),根据矩阵求逆笔记可知,消元矩阵的逆矩阵是主对角线元素不变,其他元素取反,则有: \[L_{1}^{-1}L_{2}^{-1}={\begin{bmatrix}1&0&0\\2&1&0\\3&0&1\\\end{bmatrix}} {\begin{bmatrix}1&0&0\\0&1&0\\0&-1&1\\\end{bmatrix}}\Rightarrow\\ L={\begin{bmatrix}1&0&0\\2&1&0\\3&-1&1\\\end{bmatrix}}\] 因此有 \[A=LU={\begin{bmatrix}1&0&0\\2&1&0\\3&-1&1\\\end{bmatrix}}{\begin{bmatrix}1&2&3\\0&1&1\\0&0&-5\\\end{bmatrix}}\]

如果存在主对角线元素为0时,则使用一个置换矩阵,把下面的一个非0元素换上来,如果该列元素都为0,则说明此矩阵不可逆。(但是也能进行LU分解,不管这一行,继续从下行开始消元分解。)

Crout分解

TODO

Doolittle分解

TODO

舒尔分解

舒尔分解(Schur分解)是最基本的矩阵分解之一,在矩阵分析中作为重要的理论工具,能够将任何一般方阵转化成上三角矩阵来研究。舒尔分解可以用来求解非对称矩阵的特征值,求不可对角化方阵的幂等。此外,舒尔分解也是推导特征值分解和SVD分解的一个有效途径。

舒尔分解定理:如果\(A∈\mathbb{C}^n\)\(n\)阶的复方阵,则存在\(n\)阶酉矩阵\(U\)\(n\)阶上三角矩阵\(T\),使得 \[A=UTU^{-1}=UTU^{H}\] 即任何一个\(n\)阶复方阵\(A\)酉相似于一个\(n\)阶上三角矩阵\(T\)

由于\(U\)为酉矩阵,所以有\(U^{-1}=U^H\)。因为\(A,T\)相似,所以两者有相同的特征值,且相同特征值的代数重数也相同。又因\(T\)是上三角矩阵,所以\(T\)的对角元素实际上是\(A\)的所有特征值。

可通过数学归纳法证明。

证明:显然,对于任意一阶矩阵,这个舒尔分解是平凡的,任意\(A_{1×1}=[1]A[1]^H\),而\([1]_{1×1}\)显然是个最简单的酉矩阵,\(A\)只有一个元素,符合三角矩阵的定义。

现在我们假设对于任意\(n-1\)维矩阵,舒尔分解定理是成立的。现在我们需要证明对于\(n\)阶矩阵,舒尔分解定理也是成立的。最重要的是构建连接\(n\)维矩阵和\(n-1\)维矩阵的桥梁。构造方法如下:

我们首先找到矩阵\(A\)任一非0特征值\(\lambda_1\)(如果特征值都是0,那么此矩阵只能是零矩阵,显然也满足舒尔分解)以及对应的标准化的(模为1)特征向量\(x_1\),接下来我们在与\(x_1\)所在一维子空间互补的\(n-1\)维子空间中,选出另外\(n-1\)个相互正交的单位向量\(x_2,x_3,\dotsb,x_n\),关于互补空间的概念请看笔记线性代数与矩阵之四类空间

由于\(n-1\)维子空间必然存在\(n-1\)个线性不相关的向量,因此我们可以选择任意\(n-1\)个线性不相关向量进行施密特正交化,就可以得到\(n-1\)个相互正交的单位向量。因为互补空间的向量是相互正交的,因此\(x_1\)也垂直与\(x_2,\dotsb,x_n\)。我们将\(x_1,x_2,\dotsb,x_n\)组合到一起,就得到一个酉矩阵\(X\),其中第1个向量是\(A\)的标准化的特征向量,后面\(n-2\)个是一般的向量。那么 \[AX=A\begin{bmatrix}x_1&x_2&\dotsb&x_n\end{bmatrix}=\begin{bmatrix}\lambda_1x_1&Ax_2&\dotsb&Ax_n\end{bmatrix}\\ X^HAX=\begin{bmatrix}x_1^H\\x_2^H\\\vdots\\x_n^H\end{bmatrix} \begin{bmatrix}\lambda_1x_1&Ax_2&\dotsb&Ax_n\end{bmatrix}=\begin{bmatrix} \lambda_1x_1^Hx_1&x_1^HAx_2&\dotsb&x_1^HAx_n\\ \lambda_1x_2^Hx_1&x_2^HAx_2&\dotsb&x_2^HAx_n\\ \vdots&\vdots&\ddots&\vdots\\ \lambda_1x_n^Hx_1&x_1^HAx_n&\dotsb&x_n^HAx_n \end{bmatrix}\\ (x_i \perp x_j,i\neq j)=\left[\begin{array}{c:c} \lambda_1 & &A_{12}& \\ \hdashline0& & &\\ \vdots& &A_{22} &\\ 0& & &\\ \end{array}\right]=\hat{T}\] 其中,\(A_{12}=\begin{bmatrix}x_1^HAx_2&\dotsb&x_1^HAx_n\end{bmatrix}\)是一个\(1×n\)维矩阵。\(A_{22}\)是由剩下的元素组成的\((n-1)×(n-1)\)维矩阵。

现在我们已经有了一个雏形,\(X^HAX=\hat{T}\Rightarrow A=XAX^H\),如果从分块矩阵的角度来看,这已经是一个分块上三角矩阵了,而且我们知道里面\((n-1)×(n-1)\)维矩阵\(A_{22}\)是能够进行了舒尔分解成\(A_{22}=P_1^H\tilde{T}P_1\),现在我们要做的就是将\(\hat{T}\)\(A_{22}=P_1^H\tilde{T}P_1\)联系起来。其实,\(\hat{T}\)就是多了一维,因此我们可以将\(n-1\)维酉矩阵\(P_1\)进行升维,如下: \[ P=\left[\begin{array}{c:c} 1 & 0 & \dotsb & 0\\ \hdashline0&\\ \vdots& &P_1\\ 0&\\ \end{array}\right] \] 显然,\(P^HP=I\)是一个\(n\)维酉矩阵。而\(P^H\hat{T}P\)的结果为: \[ P^H\hat{T}P=\left[\begin{array}{c:c} 1 & 0 & \dotsb & 0\\ \hdashline0&\\ \vdots& &P^H_1\\ 0&\\ \end{array}\right] \left[\begin{array}{c:c} \lambda_1 & &A_{12}& \\ \hdashline0& & &\\ \vdots& &A_{22} &\\ 0& & &\\ \end{array}\right] \left[\begin{array}{c:c} 1 & 0 & \dotsb & 0\\ \hdashline0&\\ \vdots& &P_1\\ 0&\\ \end{array}\right]\\ =\left[\begin{array}{c:c} \lambda_1 & &A_{12}P_1& \\ \hdashline0& & &\\ \vdots& &P_1^HA_{22}P_1 &\\ 0& & &\\ \end{array}\right] =\left[\begin{array}{c:c} \lambda_1 & &A_{12}P_1& \\ \hdashline0& & &\\ \vdots& &\tilde{T} &\\ 0& & &\\ \end{array}\right]=T \] 其中,\(\tilde{T}\)为上三角矩阵,因此\(P^H\hat{T}P\)的结果为一个上三角矩阵\(T\)。我们再将\(\hat{T}=X^HAX\)代入\(T=P^H\hat{T}P\)可得: \[T=X^HP^HAXP=(XP)^HAXP\] 因为,\(X,P\)都是\(n\)维酉矩阵,而酉矩阵的乘积依然是酉矩阵,因此\(XP\)也是酉矩阵,我们有: \[A=((XP)^H)^{-1}T(XP)^{-1}=(XP)T(XP)^H\\ \overset{令U=XP}{=}UTU^H\] 其中,\(U\)是一个酉矩阵,\(T\)是一个上三角矩阵。至此,我们证明了对于任意\(n\)阶矩阵,舒尔分解定理也是成立的。得证。

舒尔分解的证明过程证明了舒尔分解的存在性的同时,也提供了一种舒尔分解构造的方法,即从一阶矩阵开始,逐步使用\(1\sim n-1\)维酉矩阵经过升维相乘,最终得到\(n\)维酉矩阵\(U\)。然后,左乘、右乘原矩阵,得到上三角矩阵\(T\)(虽然这种方法相当麻烦)。此外,由于步骤中正交基的选择并不唯一,由此舒尔分解也是不唯一的。

拓展:实矩阵的舒尔分解

舒尔分解是针对复矩阵而言的,如果将数域缩小到实数域,舒尔分解就不完全适用了。问题就在于一个矩阵可能存在非实数特征值,即我们在递推过程中存在某个子矩阵找不到实数域内的特征值,导致后面就无法继续。

实数域的舒尔分解:\(A\in R^{n\times n}\),则存在实正交矩阵\(U\)和实上三角矩阵\(T\)使得\(A=UTU^H\)

上面的这结论是错的。然而在实数域,我们可以对上述舒尔分解定理做适当修正,使得在实数域也可以进行舒尔分解。

实数域的舒尔分解定理:如果\(A∈\mathbb{R}^n\)\(n\)阶的实方阵,则存在\(n\)阶正交矩阵\(Q\)\(n\)拟上三角矩阵\(T\),使得 \[A=QTQ^{-1}=QTQ^T\] 即任何一个\(n\)阶实方阵\(A\)正交相似于一个\(n\)拟上三角矩阵\(T\)

然而,虽然不能将任意实矩阵正交相似上三角化,但我们可以放宽要求,将任意实矩阵正交相似拟上三角化。区别就在于拟三角\[ T=\begin{bmatrix} R_{11}&R_{12}&\dotsb&R_{1m}\\ &R_{22}&\dotsb&R_{2m}\\ & & \ddots & \vdots\\ & & & R_{mm} \end{bmatrix} \] 其中对角子块\(R_{ii}\)\(1 × 1\)矩阵或有一对共轭的虚特征值的\(2\times 2\)矩阵,也因为对角子块的存在,最终的行列也不是\(n\),而是\(m\leq n\)。证明方法也是数学归纳法,这里我们就省略不证了。

极分解

一个复系数矩阵\(A\)的极分解将其分解成两个矩阵的乘积,可以表示为: \[A=UP\] 其中\(U\)是一个酉矩阵\(P\)是一个半正定的埃尔米特矩阵。这样的分解对任意的矩阵\(A\)都存在。当\(A\)是可逆矩阵时,分解是唯一的,并且\(P\)必然为正定矩阵。

QR分解

《线性代数与矩阵之正交(酉)矩阵与正交化》

满秩分解

定义:满秩分解:对于\(m×n\)的矩阵\(A\),假设其秩为\(r\),若存在秩同样为\(r\)两个矩阵:\(F_{m×r}\)(列满秩)和\(G_{r×n}\)(行满秩),使得\(A=FG\),则称其为矩阵\(A\)的满秩分解。

根据可逆矩阵和高斯消元法,容易得到以下定理。

定理:满秩分解有两个性质:不唯一性和存在性

  1. 满秩分解不唯一:假设存在\(r\)阶可逆方阵\(D\),则\(A=FG=F(DD^{−1})G=(FD)(D^{−1}G)=F'G'\)
  2. 任何非零矩阵一定存在满秩分解。

证明:假设存在初等变换矩阵\(B_{m×m}\),使得 \[BA=\begin{bmatrix}G\\O\end{bmatrix}\] 显然,\(B\)可以看成是带置换的高斯消元法。其中\(G\)是个\(m×r\)的行满秩矩阵。由上面的公式,可以推出, \[\begin{aligned} A &= B^{-1}\left( \begin{array}{c} G\\ O \end{array} \right)\\ &= (F|S) \left( \begin{array}{c} G\\ O \end{array} \right)\\ &= FG \end{aligned}\] 公式第二行中,我们将\(B^{−1}\)分块为\((F|S)\),其中\(F\)\(m×r\)矩阵(秩为\(r\)),\(G\)\(r×n\)矩阵(秩为\(r\))。

从满秩分解的存在性证明,也可以看出满秩分解的求法:先导出高斯消元的初等矩阵和主元矩阵,然后求高斯消元的初等矩阵的逆矩阵,在分割成两部分。此外,还可以用Hermite标准型来求满秩分解。

定义:Hermite标准型:对于\(m×n\)的矩阵\(H\),假设其秩为\(r\),若\(H\)满足 \(H\)\(j_1,j_2,…,j_r\)列是单位矩阵\(E_m\)的前\(r\)行,则称\(H\)为Hermite标准型。简单来说,\(H\)具有以下形式: \[H=\begin{bmatrix}I_{r×r}&X_{r×(n-r)}\\O_{(m-r)×r}&O_{(m-r)×(n-r)}\end{bmatrix}\]

Hermite标准型就是将秩为\(r\)\(m×n\)矩阵\(A\)经初等变换(高斯消元)而成的阶梯型矩阵。所以也叫做Hermite最简型。

算出Hermite标准型后,对于矩阵的满秩分解\(A=FG\)来说,矩阵\(F\)就是矩阵\(A\)\(j_1,j_2,…,j_r\)列构成的\(m×r\)矩阵,而\(G\)则是Hermite标准型的前\(r\)行构成的矩阵。

特征值分解(谱分解)

线性代数与矩阵之特征值与特征向量

奇异值分解(SVD)

特征值分解可以将矩阵分解成对角矩阵的形式,大大方便了矩阵的研究与计算,然后我们也知道只有正规矩阵才可以进行特征分解,那么是否能有一种能够分解成类似模式的分解,但是并没有矩阵类似的要求呢?

这就是这一小节要引入的奇异值分解(Singular value decomposition),简称SVD。SVD的一大好处就是任何矩阵都可以进行奇异值分解

假设\(A\)是一个\(m×n\)阶矩阵,其中的元素全部属于域\(K\),也就是实数域或复数域。如此则存在一个分解使得 \[A= U \Sigma V^*\] 其中\(U\)\(m×m\)阶酉矩阵;\(Σ\)\(m×n\)阶非负实数对角矩阵;而\(V*\),即\(V\)的共轭转置,是\(n×n\)阶酉矩阵。这样的分解就称作\(A\)奇异值分解\(Σ\)对角线上的元素\(Σ_{ii}\)即为\(A\)的奇异值。

奇异值分解

奇异值分解

常见的做法是将奇异值由大而小排列。如此\(Σ\)便能由\(A\)唯一确定了。(虽然\(U\)\(V\)仍然不能确定。)

SVD的存在性证明可以用谱定理或者变分法证明,这里不详述,维基百科的英文版上有。

那么我们如果找到这个奇异值分解呢?

这个分解中有相互正交的向量和很像特征值的奇异值,觉得和特征分解类似,那我们可不可以往特征分解上靠一靠呢。如果能有对称矩阵,就可以套用特征分解的方法获得特征值和正交(酉)矩阵了。

显然,\(A^TA,AA^T\)都是由\(A\)构成的对称矩阵,而且在\(A=U\Sigma V^T\)的前提下有: \[ A^TA=(U\Sigma V^T)^TU\Sigma V^T=V^T\Sigma^2V\\ AA^T=U\Sigma V^T(U\Sigma V^T)^T=U^T\Sigma^2U \] 这正好是两个对称矩阵\(A^TA,AA^T\)的对角化分解!那么我们只需要求出\(A^TA,AA^T\)的特征分解,就可以求出\(U,V,\Sigma\)的矩阵!!!

需要注意的是,我们\(A^TA,AA^T\)求出来的是奇异值的平方,实际使用记得要开根号。下面我们举两个例子:

例1:对矩阵\(A=\begin{bmatrix}0&1\\1&1\\1&0\end{bmatrix}\)进行奇异值分解。

svd分解例1

svd分解例1

接下来这个例子,给我们说明,完全依赖上面的方法有可能是错的!

例2:对矩阵\(A=\begin{bmatrix}4&4\\-3&3\end{bmatrix}\)进行奇异值分解。

我们首先求出\(A^TA,AA^T\)\[ A^TA=\begin{bmatrix}4&-3\\4&3\end{bmatrix}\begin{bmatrix}4&4\\-3&3\end{bmatrix}=\begin{bmatrix}25&7\\7&25\end{bmatrix}\\ AA^T=\begin{bmatrix}4&4\\-3&3\end{bmatrix}\begin{bmatrix}4&-3\\4&3\end{bmatrix}=\begin{bmatrix}32&0\\0&18\end{bmatrix} \] 出现了一个对角矩阵,显然奇异值为:\(\lambda_1=\sqrt{32},\lambda_2=\sqrt{18}\),剩余奇异值都是0。 进而求出\(V\)中的特征向量: \[A^TAv_1=\lambda_1 v_1=\sqrt{32}v_1\Rightarrow v_1=\begin{bmatrix}1\over\sqrt{2}\\1\over\sqrt{2}\end{bmatrix}\\ A^TAv_2=\lambda_2 v_2=\sqrt{18}v_2\Rightarrow v_2=\begin{bmatrix}1\over\sqrt{2}\\-1\over\sqrt{2}\end{bmatrix}\\ V=\begin{bmatrix}1\over\sqrt{2}&1\over\sqrt{2}\\1\over\sqrt{2}&-1\over\sqrt{2}\end{bmatrix}\] 同样求出\(U\)的特征向量: \[AA^Tu_1=\lambda_1 u_1=\sqrt{32}u_1\Rightarrow u_1=\begin{bmatrix}1\\0\end{bmatrix}\\ AA^Tu_2=\lambda_2 u_2=\sqrt{18}u_2\Rightarrow u_2=\begin{bmatrix}0\\1\end{bmatrix}\\ U=\begin{bmatrix}1&0\\0&1\end{bmatrix}\] 到这里看似没有问题,但是我们计算一下: \[ U\Sigma V^\ast=\begin{bmatrix}1&0\\0&1\end{bmatrix}\begin{bmatrix}\sqrt{32}&0\\0&\sqrt{18}\end{bmatrix}\begin{bmatrix}1\over\sqrt{2}&1\over\sqrt{2}\\1\over\sqrt{2}&-1\over\sqrt{2}\end{bmatrix}\\ =\begin{bmatrix}4&4\\3&-3\end{bmatrix} \] 这和矩阵\(A\)并不一样!!!底下两个正负号反了,难道奇异值分解有BUG吗?

这是因为确定特征向量的过程中,特征向量反向仍然符合要求,通过\(A^TA,AA^T\)求解特征向量的方法无法确认向量的正负符号,但是一旦我们确认\(V\)中向量的方向之后,\(U\)中向量的方向也就随之确定。关键是,我们在开\(\Sigma^2\)的时候只考虑使用正值,人为地忽略了\(U,V\)之间的正负号联系,为此可以使用\(AV=U\Sigma\)替代计算可以避免这种问题。 \[ U=AV\Sigma^{-1}=2\begin{bmatrix}1&0\\0&-1\end{bmatrix} \] 归一化可得\(U=\begin{bmatrix}1&0\\0&-1\end{bmatrix}\)。由于本例中\(\Sigma\)可逆,才可以直接用\(\Sigma^{-1}\),否则就老老实实求解。

因此\(A\)正确的SVD为: \[ A=U\Sigma V^\ast=\begin{bmatrix}1&0\\0&-1\end{bmatrix}\begin{bmatrix}\sqrt{32}&0\\0&\sqrt{18}\end{bmatrix}\begin{bmatrix}1\over\sqrt{2}&1\over\sqrt{2}\\1\over\sqrt{2}&-1\over\sqrt{2}\end{bmatrix}\\ \]

SVD应用的资料还可以看:这次终于彻底理解了奇异值分解(SVD)原理及应用

SVD几何解释

在几何中,任意的线性变换都可以拆成三步:旋转-拉伸-再旋转。至于为什么能这样,我还不知道。但是,这三布正好对应了SVD的三个矩阵分量。

我们知道,\(U,V\)是酉矩阵(单位正交矩阵),模长为1,这叫矩阵的几何意义正是向量的旋转。所以\(U\Sigma V^\ast\)就相当于先使用一个旋转矩阵\(V^\ast\)转动向量,然后再用对角矩阵\(\Sigma\)拉伸各个向量分量,最后再用矩阵\(U\)再旋转一次,得到线性变换的结果。

下图是矩阵\(M=U\Sigma V^\ast\)各个矩阵作用与一个二维空间基的演示:

SVD几何意义

SVD几何意义

奇异值分解与特征值分解的联系

奇异值分解能够用于任意\(m\times n\)矩阵,而特征分解只能适用于特定类型的方阵,故奇异值分解的适用范围更广。不过,这两个分解之间是有关联的。给定一个\(M\)的奇异值分解,根据上面的论述,两者的关系式如下:

\[ M^{*} M = V \Sigma^{*} U^{*}\, U \Sigma V^{*} = V (\Sigma^{*} \Sigma) V^{*}\,\] \[M M^{*} = U \Sigma V^{*} \, V \Sigma^{*} U^{*} = U (\Sigma \Sigma^{*}) U^{*}\,\] 关系式的右边描述了关系式左边的特征值分解。于是:

\(V\)的列向量(右奇异向量)是\(M^{*}M\)的特征向量。

\(U\)的列向量(左奇异向量)是\(MM^{*}\)的特征向量。

\(\Sigma\)的非零对角元(非零奇异值)是\(M^{*}M\)或者\(MM^{*}\)的非零特征值的平方根。

特殊情况下,当\(M\)是一个正规矩阵(因而必须是方阵)根据谱定理,M可以被一组特征向量酉对角化,所以它可以表为: \[M = U D U^\ast\] 其中\(U\)为一个酉矩阵,\(D\)为一个对角阵。如果\(M\)是半正定的,\(M = U D U^\ast\)的分解也是一个奇异值分解。

然而,一般矩阵的特征分解跟奇异值分解不同。特征分解如下: \[M=UDU^{-1}\] 其中\(U\)是不需要是酉的,\(D\)也不需要是半正定的。而奇异值分解如下: \[M=U\Sigma V^\ast\] 其中\(\Sigma\)是对角半正定矩阵,\(U\)\(V\)是酉矩阵,两者除了通过矩阵\(M\)没有必然的联系。