矩阵分解
矩阵的分解
矩阵的分解非常重要,很多时候我们都需要使用到矩阵的分解,这会给我们提供极大的方便,笔者学习这一类问题花费了很多时间,想要看懂这一章,需要先看{ post_link 矩阵的类型及性质 } ### 矩阵的特征值分解 要求\(n*n\)矩阵拥有\(n\)个线性无关的特征向量 矩阵的特征值分解指的是利用特征值构造的矩阵进行分解。特征值与特征向量是这样定义的 \[ \begin{aligned} &若矩阵A,列向量X,常数\lambda满足 \\&AX = \lambda X \\&则X为A的特征向量,\lambda为A的特征值 \end{aligned} \] 这里我们注意到如果\(n*n\)的矩阵\(A\)拥有\(n\)个线性无关的特征向量,我们很容易就可以列出下面的式子: \[ \begin{aligned} \\&AX_1 = \lambda_1X_1 \\&AX_2 = K_2X_2 \\&AX_n = \lambda_nX_n \\&每个式子都是列向量,我们把这些式子横着排列成矩阵 \\&[AX_1,AX_2...AX_n] = [\lambda_1X_1,\lambda_2X_2...\lambda_nX_n] \\&提取 \\& A[X_1,X_2...X_n] = [X_1,X_2...X_n]\left[\begin{matrix} &\lambda_1,&,&...&, \\&,&\lambda_2&...&, \\&,&,&...&, \\&,&,&...&\lambda_n \end{matrix}\right] \\& A = [X_1,X_2...X_n]\left[\begin{matrix} &\lambda_1,&,&...&, \\&,&\lambda_2&...&, \\&,&,&...&, \\&,&,&...&\lambda_n \end{matrix}\right][X_1,X_2...X_n]^{-1} \end{aligned} \] 这就是矩阵的特征值分解了 ### 矩阵的QR分解 要求矩阵列满秩 我们通过Gram-Schmidt正交化手段,可以得到一个所有列向量正交的矩阵,这个过程叫矩阵的正交化 Gram-Schmidt在正交化矩阵A第i个列向量的时候,使用前i-1个已经正交化了的列向量对其进行消除分量,这个过程逆过来看待就是从正交化矩阵到原始矩阵的过程,原始矩阵到正交化矩阵的时候,原始矩阵的前i个列向量线性组合能够得到正交矩阵的第i个列向量,那么,正交矩阵的前i个向量线性组合能够得到原始矩阵的第i个列向量,我们把正交矩阵得到原始矩阵的组合方式用矩阵来表示的话,这个矩阵显然是一个上三角矩阵。那个正交矩阵叫做\(Q\),上三角矩阵叫做\(R\),我们就有了\(A=QR\),\(Q\)其实就是Gram-Schmidt的结果,R不好计算,但是原理都懂,不好模拟,但是在A是方阵的时候,\(R\)我们偷个懒,我们可以这样得到\(R=Q^{-1}A=Q^TA\) ### 矩阵的LU分解 矩阵的LU分解要求,可逆方阵 即将矩阵A分解为LU,L是下三角矩阵,U是上三角矩阵,大家手动模拟一下就知道怎么处理了,这里开个头,A(0,0)只能有L(0,0)*U(0,0)得到,通常我们假设L(0,0)=1,然后类似于这种,再考虑L的第二行和R的第二列,这时候,所有的值都是固定的了。。。这个过程中如果A对角线出现了0,记录初等行互换就行了,这时候我们的行互换会构成一个矩阵P,即\(PA = LU\) , 即\(A = P^TLU\) ### 矩阵的LR分解 无要求 通过初等行变化,将矩阵A变为Hermite型(阶梯矩阵)R,这个过程中,我们可以在A右边增广一个单位阵L,当算法结束的时候R是阶梯型,L也是,我们只保留R的非零行和L相应的列即可,最终\(A=LR\),且L为列满秩,R为行满秩
矩阵的SVD分解
现在有个\(n\*m\)的矩阵\(A\),注意到矩阵\(A^HA\)是一个厄米特矩阵,且是半正定矩阵,由正规矩阵的性质我们不难得出一个式子\(V^HA^HAV = D_2\),其中\(V\)是\(A^HA\)的特征向量构成的酉矩阵,\(D_2\)是对角矩阵,根据半正定矩阵的性质,我们得出\(D_2\)中的元素非负,进而我们可以构建\(n\*m\)矩阵\(D\),\(D\)只在对角线上的值非零,且\(D(i,i)=\sqrt{D_2(i,i)}\),使得的\(D\*D^H=D_2\),进而我们得到了分解\(V^HA^HAV = D^HD\),对\(AV\)来说他的前r个列向量间正交,取出他们\(\{v_1,v_2...,v_r\}\),这些其实就是\(A^HA\)的特征向量,对应的特征值是\(\sigma_i^2\),我们构造\(u_i = \frac{Av_i}{\sigma_i}\)得到了\(\{u_1,u_2,...u_r\}\)加0扩充为\(\{u_1,u_2,...u_n\}\)这就是一个酉矩阵U,不难发现\(AV=UD\),即我们得到了分解\(A = UDV^H\),这就是\(SVD\)分解。 ### 方阵的极分解 根据矩阵的\(SVD\)分解我们不妨设\(P=UDU^H\)和\(Q=UV^H\),不难发现,现在\(A=PQ\),这是一个非常好的性质,P是半正定矩阵,Q是酉矩阵。