自学内容网 自学内容网

矩阵分解及计算

矩阵分解

满秩分解

满秩分解的形式:
A = B C A = BC A=BC
满秩分解定理:设 m × n m \times n m×n矩阵 A A A的秩为r,存在 m × r m \times r m×r矩阵 B B B r × n r \times n r×n矩阵 C C C使得 A = B C A =BC A=BC,并且rank( B B B)=rank( C C C)。

分解步骤:

  1. 初等变换法,将原来矩阵写为:
    ( A ∣ I ) (A | I) (AI)
    然后将A变换为一个行阶梯形,右侧的单位阵就会变换为一个初等矩阵。

    然后根据去掉A中全为0的行,同时相应的去掉I变换后相应的列,就构成了一个行满秩和列满秩矩阵,其中A变换后应当作为行满秩( C C C)放在右边,I变换后做处理的矩阵作为列满秩( B B B)放在左边。

    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

去掉B最后一行

img

由P求可逆阵对应去最后一列,最后得到在这里插入图片描述

在这里插入图片描述

  1. 利用下三角矩阵变换

    与法1同理,只不过写成下三角形式,不需要进行行变换过程,只是一个矩阵乘法的过程。

    首先化去第一列,使得第一个元素不为0,其余都为0,此时对应的下三角矩阵 L 1 L_1 L1应当第一列第一个元素为1,剩下为行变换操作的系数。同理继续化去第二列,使得满足阶梯型,获得 L 2 L_2 L2,直至到满足阶梯型。

    其次将所有的下三角矩阵相乘,并去逆矩阵。

    那么下三角矩阵就作为左侧的列满秩,得到的行阶梯型作为右边的行满秩(需要去除对应的0行以及相应的列)。

    注意如果一开始以0打头,那么先需要做一个交换然后再进行后续操作,即第一个元素绝对不能为0。

    在这里插入图片描述

    此处由于0元素在第一列第一个,需要做一个行交换。

    在这里插入图片描述

    然后再使用下三角进行转换求解。

    在这里插入图片描述

在这里插入图片描述

三角分解

  1. LU分解

    LU的分解形式为:
    A = ( ∗ 0 0 0 ∗ ∗ 0 0 ∗ ∗ ∗ 0 ∗ ∗ ∗ ∗ ) ( ∗ ∗ ∗ ∗ 0 ∗ ∗ ∗ 0 0 ∗ ∗ 0 0 0 ∗ ) A = \left( \begin{matrix} * & 0 & 0 &0 \\ * & * & 0 & 0 \\ * & * & * & 0 \\ * & * & * & * \end{matrix}\right) \left( \begin{matrix} * & * & * & * \\ 0 & * & * & * \\ 0 & 0 & * & * \\ 0 & 0 & 0 & * \end{matrix}\right) A= 000000 000000
    能够LU分解的充要条件是 A A A的所有顺序主子是均非0。

    分解步骤与满秩分解相同,构造多个下三角矩阵,然后计算到下三角,和上三角,但是不需要去0行。

    我们看满秩分解的

    在这里插入图片描述

    此时第一行不进行行变换得到的结果其实就是一个三角分解。

  2. LDU分解

    相比于LU分解,只是将形式改变为
    A = ( ∗ 0 0 0 ∗ ∗ 0 0 ∗ ∗ ∗ 0 ∗ ∗ ∗ ∗ ) ( ∗ 0 0 0 0 ∗ 0 0 0 0 ∗ 0 0 0 0 ∗ ) ( 1 ∗ ∗ ∗ 0 1 ∗ ∗ 0 0 1 ∗ 0 0 0 1 ) A = \left( \begin{matrix} * & 0 & 0 &0 \\ * & * & 0 & 0 \\ * & * & * & 0 \\ * & * & * & * \end{matrix}\right) \left( \begin{matrix} * & 0 & 0 &0 \\ 0 & * & 0 & 0 \\ 0 & 0 & * & 0 \\ 0 & 0 & 0 & * \end{matrix}\right) \left( \begin{matrix} 1 & * & * & * \\ 0 & 1 & * & * \\ 0 & 0 & 1 & * \\ 0 & 0 & 0 & 1 \end{matrix}\right) A= 000000 000000000000 1000100101
    在LU分解的基础上提取出上三角矩阵对角线的元素,上三角矩阵中除对角线外的元素除以该行的第一个非0元素。

QR分解

QR分解将形式为
A = Q ( ∗ ∗ ∗ ∗ 0 ∗ ∗ ∗ 0 0 ∗ ∗ 0 0 0 ∗ ) A =Q \left( \begin{matrix} * & * & * & * \\ 0 & * & * & * \\ 0 & 0 & * & * \\ 0 & 0 & 0 & * \end{matrix}\right) A=Q 000000
其中Q是一个正交矩阵。

分解步骤:

假设 A A A为一个 3 × 3 3\times3 3×3的矩阵,记为 ( α 1 , α 2 , α 3 ) (\alpha_1,\alpha_2,\alpha_3) (α1,α2,α3)

  1. α 1 , α 2 , α 3 \alpha_1,\alpha_2,\alpha_3 α1,α2,α3进行正交化,有:
    β 1 = α 1 β 2 = α 2 − k 21 β 1 β 3 = α 3 − k 31 β 1 − k 3 2 β 2 \beta_1 = \alpha_1\\ \beta_2 = \alpha_2 - k_{21}\beta_1\\ \beta_3 = \alpha_3 - k_{31}\beta_1 - k_{3_2}\beta_2 β1=α1β2=α2k21β1β3=α3k31β1k32β2
    其中 k 21 = < α 2 , β 1 > < β 1 , β 1 > k_{21} = \frac{<\alpha_2,\beta_1>}{<\beta_1,\beta_1>} k21=<β1,β1><α2,β1>, k 31 = < α 3 , β 1 > < β 1 , β 1 > k_{31} = \frac{<\alpha_3,\beta_1>}{<\beta_1,\beta_1>} k31=<β1,β1><α3,β1>, k 32 = < α 3 , β 2 > < β 2 , β 2 > k_{32} = \frac{<\alpha_3,\beta_2>}{<\beta_2,\beta_2>} k32=<β2,β2><α3,β2>

  2. 单位化,得到矩阵 Q : Q = ( β 1 ∥ β 1 ∥ , β 2 ∥ β 2 ∥ , β 3 ∥ β 3 ∥ ) Q:Q = (\frac{\beta_1}{\lVert \beta_1 \rVert},\frac{\beta_2}{\lVert \beta_2 \rVert},\frac{\beta_3}{\lVert \beta_3 \rVert}) Q:Q=(β1β1,β2β2,β3β3)

    1、2两步实际上是进行了施密特正交化。

  3. 得到R矩阵
    R = ( ∥ β 1 ∥ ∥ β 2 ∥ ∥ β 3 ∥ ) ( 1 k 21 k 31 1 k 32 1 ) R =\left( \begin{matrix} \lVert \beta_1 \rVert & & \\ & \lVert \beta_2 \rVert & \\ & & \lVert \beta_3 \rVert\end{matrix}\right) \left( \begin{matrix} 1 & k_{21} & k_{31} \\ & 1 & k_{32} \\ & & 1\end{matrix}\right) R= β1β2β3 1k211k31k321

  4. A = Q R A = QR A=QR

奇异值分解

奇异值分解形式为
A = U ( ∑ 0 0 0 ) V H A = U\left( \begin{matrix} \sum & 0\\ 0 & 0 \end{matrix}\right)V^H A=U(000)VH
其中 ∑ = d i a g ( σ 1 , ⋯   , σ r ) \sum = diag(\sigma_1, \cdots , \sigma_r) =diag(σ1,,σr)

分解步骤:

假设A为 m × n m \times n m×n,那么奇异值分解就应该为 m × m m \times m m×m m × n m \times n m×n n × n n \times n n×n

  1. 首先求 A H A A^HA AHA,并求出对应的特征值 λ i \lambda_i λi, λ i \lambda_i λi开方,按照大小排序,得到 σ i \sigma_i σi,从而构造 ∑ \sum 矩阵,然后补零,就可以构造出 ( ∑ 0 0 0 ) \left( \begin{matrix} \sum & 0\\ 0 & 0 \end{matrix}\right) (000)
  2. 解出特征之 λ i \lambda_i λi对应 A H A A^HA AHA的特征向量 ξ i \xi_i ξi,并进行单位化,得到 v i v_i vi,从构造出矩阵 V = ( v 1 , ⋯   , v n ) V = \left( \begin{matrix} v_1,\cdots,v_n \end{matrix}\right) V=(v1,,vn)
  3. 根据奇异值分解,进行变换,得到 U 1 = A V ( ∑ 0 0 0 ) − 1 U_1 = A V \left( \begin{matrix} \sum & 0\\ 0 & 0 \end{matrix}\right)^{-1} U1=AV(000)1,此时得到的 U 1 U_1 U1矩阵为 m × r m \times r m×r,需要进行扩充。
  4. 我们构造一个 U 2 U_2 U2 ( r × n ) (r \times n) (r×n)矩阵,使得 U 1 H U 2 = 0 U_1^HU_2 = 0 U1HU2=0
  5. 最后将 U 1 U_1 U1 U 2 U_2 U2拼接,得到 U U U
  6. 最后得到SVD A = U ( ∑ 0 0 0 ) V H A = U\left( \begin{matrix} \sum & 0\\ 0 & 0 \end{matrix}\right)V^H A=U(000)VH

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

考点

  1. 满秩分解
  2. 奇异值分解和QR分解选其一

参考

矩阵论-戴华

【矩阵论】Chapter 6—矩阵分解知识点总结复习(附Python实现)


原文地址:https://blog.csdn.net/m0_52049033/article/details/143645032

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!