2.7 转置与置换

发布时间:2023年12月23日

一、转置

A A A转置(transpose)记作 A T A^T AT A T A^T AT 的列就是 A A A 的行。
A A A m × n m\times n m×n 的矩阵,则它的转置 A T A^T AT 就是 n × m n\times m n×m 的矩阵: 转置 如果 ? A = [ 1 2 3 0 0 4 ] 则 A T = [ 1 0 2 0 3 4 ] \pmb{转置}\kern 10pt如果\,A=\begin{bmatrix}\pmb1&\pmb2&\pmb3\\0&0&4\end{bmatrix}\kern 5pt则\kern 5ptA^T=\begin{bmatrix}\pmb1&0\\\pmb2&0\\\pmb3&4\end{bmatrix} 转置如果A=[10?20?34?]AT= ?123?004? ?可以将 A A A 的行写成 A T A^T AT 的列,也可以将 A A A 的列写成 A T A^T AT 的行,它的转置矩阵是关于其主对角线翻转(即交换关于主对角线对称的元素)。 A T A^T AT 的行 i i i j j j 元素来自于原始矩阵 A A A 的行 j j j i i i 元素:

交换行与列 ( A T ) i j = A j i \pmb{交换行与列}\kern 35pt(A^T)_{ij}=A_{ji} 交换行与列(AT)ij?=Aji?

下三角矩阵的转置是上三角矩阵。 A T A^T AT 的转置就是 A A A
注: MATLAB 中 A A A 的转置使用 A ′ A' A 来表示,输入 [ 1 2 3 ] \begin{bmatrix}1&2&3\end{bmatrix} [1?2?3?] 得到一个行向量,列向量 v = [ 1 2 3 ] ′ \boldsymbol v=\begin{bmatrix}1&2&3\end{bmatrix}' v=[1?2?3?]。若矩阵 M M M 的第二列是 w = [ 4 5 6 ] ′ \boldsymbol w=\begin{bmatrix}4&5&6\end{bmatrix}' w=[4?5?6?],可以定义 M = [ v w ] M=\begin{bmatrix}\boldsymbol v&\boldsymbol w\end{bmatrix} M=[v?w?];也可以通过行快速输入,让后将整个矩阵转置 M = [ 1 2 3 ; 4 5 6 ] ′ M=\begin{bmatrix}1&2&3;&4&5&6\end{bmatrix}' M=[1?2?3;?4?5?6?]
转置的一些运算法则: 和 ( A + B ) T = A T + B T ( 2.7.1 ) 积 ( A B ) T = B T A T ( 2.7.2 ) 逆 ( A ? 1 ) T = ( A T ) ? 1 ( 2.7.3 ) \begin{matrix}\pmb和&(A+B)^T=A^T+B^T&(2.7.1)\\\pmb积&(AB)^T=B^TA^T\kern 25pt&(2.7.2)\\\pmb逆&(A^{-1})^T=(A^T)^{-1}\kern 21pt&(2.7.3)\end{matrix} ?(A+B)T=AT+BT(AB)T=BTAT(A?1)T=(AT)?1?(2.7.1)(2.7.2)(2.7.3)?需要注意的是 ( A B ) T (AB)^T (AB)T 需要反序相乘 B T A T B^TA^T BTAT,可以从 ( A x ) T = x T A T (A\boldsymbol x)^T=\boldsymbol x^TA^T (Ax)T=xTAT 来理解该法则,此时 B B B 只是一个向量: A x ? 是 ? A ? 列的线性组合,而 ? x T A T ? 是 ? A T ? 行的线性组合 A\boldsymbol x\,是\,A\,列的线性组合,而\,\boldsymbol x^TA^T\,是\,A^T\,行的线性组合 AxA列的线性组合,而xTATAT行的线性组合它们是相同的线性组合,在 A A A 中是列,在 A T A^T AT 中变成了行,所以 A x A\boldsymbol x Ax 的转置就是 x T A T \boldsymbol x^TA^T xTAT,符合公式 ( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT。下面证明当 B B B 有多个列时, ( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT
如果 B = [ x 1 x 2 ] B=\begin{bmatrix}\boldsymbol x_1&\boldsymbol x_2\end{bmatrix} B=[x1??x2??] 有两列,对这两列用同样的方法,则 A B AB AB 的列就是 A x 1 A\boldsymbol x_1 Ax1? A x 2 A\boldsymbol x_2 Ax2?,它们的转置将会出现在 B T A T B^TA^T BTAT 的行: 转置 A B = [ A x 1 A x 2 ? ] 得到 [ x 1 T A T x 2 T A T ? ] 就是 B T A T ( 2.7.4 ) 转置\kern 3ptAB=\begin{bmatrix}\\A\boldsymbol x_1&A\boldsymbol x_2&\cdots\\&\end{bmatrix}\kern 3pt得到\kern 3pt\begin{bmatrix}\boldsymbol x_1^TA^T\\\boldsymbol x_2^TA^T\\\cdots\end{bmatrix}\kern 3pt就是\kern 3ptB^TA^T\kern 10pt(2.7.4) 转置AB= ?Ax1??Ax2???? ?得到 ?x1T?ATx2T?AT?? ?就是BTAT(2.7.4)下面是实际的例子: A B = [ 1 0 1 1 ] [ 5 0 4 1 ] = [ 5 0 9 1 ] , B T A T = [ 5 4 0 1 ] [ 1 1 0 1 ] = [ 5 9 0 1 ] AB=\begin{bmatrix}1&0\\1&1\end{bmatrix}\begin{bmatrix}5&0\\4&1\end{bmatrix}=\begin{bmatrix}\pmb5&\pmb0\\\pmb9&\pmb1\end{bmatrix},\kern 3ptB^TA^T=\begin{bmatrix}5&4\\0&1\end{bmatrix}\begin{bmatrix}1&1\\0&1\end{bmatrix}=\begin{bmatrix}\pmb5&\pmb9\\\pmb0&\pmb1\end{bmatrix} AB=[11?01?][54?01?]=[59?01?],BTAT=[50?41?][10?11?]=[50?91?]反序的规则可以扩展到三个及三个以上的乘积: ( A B C ) T = C T B T A T (ABC)^T=C^TB^TA^T (ABC)T=CTBTAT 如果 A = L D U ,则 ? A T = U T D T L T ,主元矩阵有 ? D = D T 如果\kern 3ptA=LDU,则\,A^T=U^TD^TL^T,主元矩阵有\,D=D^T 如果A=LDU,则AT=UTDTLT,主元矩阵有D=DT将上述乘积转置的规则应用中 A ? 1 A = I A^{-1}A=I A?1A=I 两侧,因为 I T = I I^T=I IT=I,可以得到 ( A ? 1 ) T (A^{-1})^T (A?1)T 就是 A T A^T AT 的逆矩阵,因为它们的乘积是 I I I 转置逆矩阵 A ? 1 A = I 转置后的 A T ( A ? 1 ) T = I ( 2.7.5 ) \pmb{转置逆矩阵}\kern 10ptA^{-1}A=I\kern 5pt转置后的\kern 5ptA^T(A^{-1})^T=I\kern 10pt(2.7.5) 转置逆矩阵A?1A=I转置后的AT(A?1)T=I(2.7.5)同理由 A A ? 1 = I AA^{-1}=I AA?1=I,可以得到 ( A ? 1 ) T A T = I (A^{-1})^TA^T=I (A?1)TAT=I。我们可以对转置求逆,也可以对逆求转置。尤其注意: A T \pmb{A^T} AT 可逆当且仅当 A \pmb A A 可逆

例1 A = [ 1 0 6 1 ] A=\begin{bmatrix}1&0\\6&1\end{bmatrix} A=[16?01?] 的逆矩阵是 A ? 1 = [ 1 0 ? 6 1 ] A^{-1}=\begin{bmatrix}\kern 7pt1&0\\-6&1\end{bmatrix} A?1=[1?6?01?],它的转置是 A T = [ 1 6 0 1 ] A^T=\begin{bmatrix}1&6\\0&1\end{bmatrix} AT=[10?61?] ( A ? 1 ) T 和 ( A T ) ? 1 ? 都等于 ? [ 1 ? 6 0 1 ] (A^{-1})^T\kern 2pt和\kern 2pt(A^{T})^{-1}\,都等于\,\begin{bmatrix}1&-6\\0&\kern 7pt1\end{bmatrix} (A?1)T(AT)?1都等于[10??61?]

二、内积的意义

我们知道 x \boldsymbol x x y \boldsymbol y y 的点积(内积)是 x i y i x_iy_i xi?yi? 的累加和,现在我们可以使用更好地方式来表示 x ? y \boldsymbol x\cdot\boldsymbol y x?y,不再需要点来表示,而是用矩阵表示: T 在内 点积或内积是 ? x T y ( 1 × n ) ( n × 1 ) T 在外 秩一的乘积或外积是 ? x y T ( n × 1 ) ( 1 × n ) \pmb{^T在内}\kern 10pt点积或内积是\,\boldsymbol x^T\boldsymbol y\kern 40pt(1\times n)(n\times1)\\\\\pmb{^T在外}\kern 10pt秩一的乘积或外积是\,\boldsymbol x\boldsymbol y^T\kern 10pt(n\times1)(1\times n) T在内点积或内积是xTy(1×n)(n×1)T在外秩一的乘积或外积是xyT(n×1)(1×n) x T y \boldsymbol x^T\boldsymbol y xTy 是一个数字, x y T \boldsymbol {xy}^T xyT 是一个矩阵。量子力学中写成 < x ∣ y > <\boldsymbol x|\boldsymbol y> <xy>(内积), ∣ x > < y ∣ |\boldsymbol x><\boldsymbol y| x><y(外积)。下面三个例子是内积的不同意义: 力学 功 = ( 位移 ) ( 力 ) = x T f 电路 功率 = ( 压降 ) ( 电流 ) = e T y 经济 收入 = ( 数量 ) ( 单价 ) = q T p \begin{matrix}\pmb{力学}&功=(位移)(力)=\boldsymbol x^T\boldsymbol f\\\pmb{电路}&功率=(压降)(电流)=\boldsymbol e^T\boldsymbol y\\\pmb{经济}&收入=(数量)(单价)=\boldsymbol q^T\boldsymbol p\end{matrix} 力学电路经济?=(位移)()=xTf功率=(压降)(电流)=eTy收入=(数量)(单价)=qTp?这里就比较接近应用数学的中心了,另一个重点强调的是内积与 A A A 的转置有很深的关联。
我们将矩阵沿其主对角线翻转定义为 A T A^T AT,这个不是数学,还有一个更好的方法来说明转置。 A T A^T AT 是使任意两个向量 x \boldsymbol x x y \boldsymbol y y 内积相等的矩阵: ( A x ) T y = x T ( A T y ) A x 与 y 的内积 = x 与 A T y 的内积 (A\boldsymbol x)^T\boldsymbol y=\boldsymbol x^T(A^T\boldsymbol y)\kern 10ptA\boldsymbol x与\boldsymbol y的内积=\boldsymbol x与A^T\boldsymbol y的内积 (Ax)Ty=xT(ATy)Axy的内积=xATy的内积假如 A = [ ? 1 1 0 0 ? 1 1 ] A=\begin{bmatrix}-1&\kern 7pt1&0\\\kern 7pt0&-1&1\end{bmatrix} A=[?10?1?1?01?] x = [ x 1 x 2 x 3 ] \boldsymbol x=\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix} x= ?x1?x2?x3?? ? y = [ y 1 y 2 ] \boldsymbol y=\begin{bmatrix}y_1\\y_2\end{bmatrix} y=[y1?y2??],左侧是 A x A\boldsymbol x Ax y \boldsymbol y y 的内积: ( x 2 ? x 1 ) y 1 + ( x 3 ? x 2 ) y 2 (x_2-x_1)y_1+(x_3-x_2)y_2 (x2??x1?)y1?+(x3??x2?)y2?,整理得: x 1 ( ? y 1 ) + x 2 ( y 1 ? y 2 ) + x 3 ( y 2 ) x_1(-y_1)+x_2(y_1-y_2)+x_3(y_2) x1?(?y1?)+x2?(y1??y2?)+x3?(y2?),右侧是 x \boldsymbol x x A T y A^T\boldsymbol y ATy 的内积: A T y 必须是 [ ? y 1 y 1 ? y 2 y 2 ] ,可以得到 A T = [ ? 1 0 1 ? 1 0 1 ] A^T\boldsymbol y\kern 5pt必须是\kern 5pt\begin{bmatrix}-y_1\\y_1-y_2\\y_2\end{bmatrix},可以得到\kern 3ptA^T=\begin{bmatrix}-1&\kern 7pt0\\\kern 7pt1&-1\\\kern 7pt0&\kern 7pt1\end{bmatrix} ATy必须是 ??y1?y1??y2?y2?? ?,可以得到AT= ??110?0?11? ?

三、对称矩阵

对称(Symmetric)矩阵将其转置前后没有变化,即它的转置等于它本身。对称矩阵的元素关于主对角线对称,即有 ( j , i ) (j,i) (j,i) 元素等于 ( i , j ) (i,j) (i,j) 元素。一般使用字母 S S S 表示对称矩阵。

定 义 对称矩阵有 ? S T = S ,即 ? S j i = S i j \pmb定义\kern 30pt对称矩阵有\, S^T=S,即\,S_{ji}=S_{ij} 对称矩阵有ST=S,即Sji?=Sij?

对称矩阵 S = [ 1 2 2 5 ] = S T , D = [ 1 0 0 10 ] = D T 对称矩阵\kern 20ptS=\begin{bmatrix}1&2\\2&5\end{bmatrix}=S^T,D=\begin{bmatrix}1&0\\0&10\end{bmatrix}=D^T 对称矩阵S=[12?25?]=STD=[10?010?]=DT对称矩阵的逆矩阵也是对称矩阵 ( S ? 1 ) T = ( S T ) ? 1 = S ? 1 (S^{-1})^T=(S^T)^{-1}=S^{-1} (S?1)T=(ST)?1=S?1,所以若 S S S 可逆, S ? 1 S^{-1} S?1 也是对称矩阵。 对称的逆矩阵 S ? 1 = [ 5 ? 2 ? 2 1 ] , D ? 1 = [ 1 0 0 0.1 ] \pmb{对称的逆矩阵}\kern 20ptS^{-1}=\begin{bmatrix}\kern 7pt5&-2\\-2&\kern 7pt1\end{bmatrix},D^{-1}=\begin{bmatrix}1&0\\0&0.1\end{bmatrix} 对称的逆矩阵S?1=[5?2??21?]D?1=[10?00.1?]

四、对称的乘积 A T A A^TA ATA A A T AA^T AAT L D L T LDL^T LDLT

任意的 m × n m\times n m×n 的矩阵 A A A,可以是矩形的, A T A^T AT A A A 的乘积 S = A T A S=A^TA S=ATA 是一个对称的方阵。 A T A ? 的转置 ? A T ( A T ) T ? 就是 ? A T A ( 2.7.6 ) A^TA\,的转置\,A^T(A^T)^T\,就是\,A^TA\kern 15pt(2.7.6) ATA的转置AT(AT)T就是ATA(2.7.6)下面快速证明 A T A A^TA ATA 是对称矩阵。对于 A T A A^TA ATA ( i , j ) (i,j) (i,j) 位置的元素,它是 A T A^T AT i i i 行和 A A A j j j 列的点积,而其 ( j , i ) (j,i) (j,i) 位置的元素是 A T A^T AT j j j 行和 A A A i i i 列的点积,因为 A T A^T AT 的行 i i i 就是 A A A 的列 i i i A T A^T AT 的列 j j j 就是 A A A 的行 j j j,所以这两个点积相等,因此 A T A A^TA ATA 是对称矩阵。
同理 A A T AA^T AAT 也是对称的,但是 A A T AA^T AAT A T A A^TA ATA 不同。以我们的经验,大部分科学问题都是从矩形矩阵 A A A 开始,以 A T A A^TA ATA A A T AA^T AAT 或二者皆有的情况下结束,例如最小二乘法。

例2】将 A = [ ? 1 1 0 0 ? 1 1 ] A=\begin{bmatrix}-1&\kern 7pt1&0\\\kern 7pt0&-1&1\end{bmatrix} A=[?10?1?1?01?] A T = [ ? 1 0 1 ? 1 0 1 ] A^T=\begin{bmatrix}-1&\kern 7pt0\\\kern 7pt1&-1\\\kern 7pt0&\kern 7pt1\end{bmatrix} AT= ??110?0?11? ? 用两种顺序相乘。 A A T = [ 2 ? 1 ? 1 1 ] , A T A = [ 1 ? 1 0 ? 1 2 ? 1 0 ? 1 1 ] 都是对称矩阵 AA^T=\begin{bmatrix}\kern 7pt2&-1\\-1&\kern 7pt1\end{bmatrix},A^TA=\begin{bmatrix}\kern 7pt1&-1&\kern 7pt0\\-1&\kern 7pt2&-1\\\kern 7pt0&-1&\kern 7pt1\end{bmatrix}\kern 2pt都是对称矩阵 AAT=[2?1??11?]ATA= ?1?10??12?1?0?11? ?都是对称矩阵 A T A A^TA ATA n × n n\times n n×n 的矩阵,反序相乘的 A A T AA^T AAT m × m m\times m m×m 的矩阵,它们都是对称矩阵,对角线均为正数。大部分情况下 A T A ≠ A A T A^TA\neq AA^T ATA=AAT,即使 m = n m=n m=n 时,通常情况下等号也不成立。
对称矩阵的消元 S T = S \kern 10ptS^T=S ST=S 可以使得消元更快,因为我们只需要处理矩阵的一半就可以了(加上对角线)。三重乘积 S = L D U S=LDU S=LDU 会有对称性,这种分解使得 L L L U U U 的对角线都是 1 1 1 [ 1 2 2 7 ] = [ 1 0 2 1 ] [ 1 2 0 3 ] L U 分解不具有对称性 [ 1 2 2 7 ] = [ 1 0 2 1 ] [ 1 0 0 3 ] [ 1 2 0 1 ] L D L T 具有对称性 此时 U 是 L 的转置 \kern16pt\begin{bmatrix}1&2\\2&7\end{bmatrix}=\begin{bmatrix}1&0\\2&1\end{bmatrix}\begin{bmatrix}1&2\\0&3\end{bmatrix}\kern 44ptLU分解不具有对称性\\\begin{bmatrix}1&2\\2&7\end{bmatrix}=\begin{bmatrix}1&0\\2&1\end{bmatrix}\begin{bmatrix}1&0\\0&3\end{bmatrix}\begin{bmatrix}1&2\\0&1\end{bmatrix}\kern 10pt\begin{matrix}LDL^T具有对称性\\此时U是L的转置\end{matrix} [12?27?]=[12?01?][10?23?]LU分解不具有对称性[12?27?]=[12?01?][10?03?][10?21?]LDLT具有对称性此时UL的转置? S S S 是对称矩阵时,一般形式 A = L D U A=LDU A=LDU 变为 S = L D L T \pmb{S=LDL^T} S=LDLT。最后的 U U U(对角线均是 1 1 1)是 L L L(对角线也为 1 1 1)的转置。对角矩阵 D D D 包含主元,它本身也是对称的。

如果 ? S = S T ? 分解成 ? L D U ,没有出现行交换,则 ? U 就是 ? L T \pmb{如果\,S=S^T\,分解成\,LDU,没有出现行交换,则\,U就是\,L^T} 如果S=ST分解成LDU,没有出现行交换,则U就是LT

对称矩阵的对称分解是 ? S = L D L T 对称矩阵的对称分解是\,\pmb{S=LDL^T} 对称矩阵的对称分解是S=LDLT注意到 L D L T LDL^T LDLT 的转置 ( L T ) T D T L T (L^T)^TD^TL^T (LT)TDTLT 就是 L D L T LDL^T LDLT。消元的工作就会减少一半,从 n 3 / 3 n^3/3 n3/3 次乘法变成了 n 3 / 6 n^3/6 n3/6 次乘法,存储空间基本上也减少一半,我们只需要保存 L L L D D D,因为 U U U 就是 L T L^T LT

五、置换矩阵

转置在置换矩阵中扮演了一个特殊角色,置换矩阵 P P P 在每一行每一列有且只有一个 1 1 1 P T P^T PT 也是一个置换矩阵,它可能与 P P P 相同,也可能与 P P P 不同。任意两个置换矩阵的乘积 P 1 P 2 P_1P_2 P1?P2? 也是置换矩阵。
我们通过重新排列 I I I 行的顺序,可以得到来自这个单位矩阵的所有置换矩阵。
最简单的置换矩阵就是 P = I P=I P=I(没有行交换),然后是仅交换 I I I 两行的置换矩阵 P i j P_{ij} Pij?,其它的置换矩阵会交换更多的行。对 I I I 做所有可能的行交换,则可以得到全部的置换矩阵。

定义 置换矩阵 ? P ? 有单位矩阵 ? I ? 任意顺序的行 \pmb{定义}\kern 10pt置换矩阵\,P\,有单位矩阵\,I\,任意顺序的行 定义置换矩阵P有单位矩阵I任意顺序的行

例3】下面是 6 6 6 3 × 3 3\times3 3×3 的置换矩阵,没有写出 0 0 0 I = [ 1 1 1 ] , P 21 = [ 1 1 1 ] , P 32 P 21 = [ 1 1 1 ] \kern 12ptI=\begin{bmatrix}1&&\\&1&\\&&1\end{bmatrix},P_{21}=\begin{bmatrix}&1&\\1&&\\&&1\end{bmatrix},P_{32}P_{21}=\begin{bmatrix}&1&\\&&1\\1\end{bmatrix} I= ?1?1?1? ?P21?= ?1?1?1? ?P32?P21?= ?1?1?1? ? P 31 = [ 1 1 1 ] , P 32 = [ 1 1 1 ] , P 21 P 32 = [ 1 1 1 ] P_{31}=\begin{bmatrix}&&1\\&1&\\1&&\end{bmatrix},P_{32}=\begin{bmatrix}1\\&&1\\&1\end{bmatrix},P_{21}P_{32}=\begin{bmatrix}&&1\\1\\&1\end{bmatrix} P31?= ?1?1?1? ?P32?= ?1?1?1? ?P21?P32?= ?1?1?1 ? n n n 阶矩阵总共有 n ! n! n! 个置换矩阵, n n n 的阶乘 n ! = 1 × 2 × ? × n n!=1\times2\times\cdots\times n n!=1×2×?×n,因此 3 ! = 1 × 2 × 3 = 6 3!=1\times2\times3=6 3!=1×2×3=6。如果 4 4 4 阶矩阵 n = 4 n=4 n=4,则有 24 24 24 种置换矩阵, 5 5 5 阶矩阵有 120 120 120 种置换矩阵。
对于 2 2 2 阶矩阵只有两种置换矩阵,分别是 [ 1 0 0 1 ] \begin{bmatrix}1&0\\0&1\end{bmatrix} [10?01?] [ 0 1 1 0 ] \begin{bmatrix}0&1\\1&0\end{bmatrix} [01?10?]
重点: P ? 1 P^{-1} P?1 也是一个置换矩阵。在上面的 3 × 3 3\times3 3×3 的置换矩阵中,左边四个矩阵的逆矩阵就是它本身,右边的两个矩阵互为逆矩阵。对于所有的置换矩阵,只进行一次行交换的置换矩阵其逆矩阵就是它本身,因为重复两次相同的行交换就会回到 I I I。但是对于进行两次行交换的置换矩阵来说,其逆矩阵就是反序相乘, P 32 P 21 P_{32}P_{21} P32?P21? 的逆矩阵就是 P 21 P 32 P_{21}P_{32} P21?P32?
更重要的: P ? 1 \pmb{P^{-1}} P?1 总是与 P T \pmb{P^T} PT 相等。右边的两个矩阵互为逆矩阵,也互为转置矩阵。当我们计算 P P T PP^T PPT 时, P P P 的第一行中的 1 1 1 正好碰上 P T P^T PT 第一列中的 1 1 1(因为 P P P 的行 1 1 1 正好是 P T P^T PT 的列 1 1 1),而其它列的 1 1 1 正好错过,所以有 P P T = I PP^T=I PPT=I
另一种证明 P T = P ? 1 P^T=P^{-1} PT=P?1 的方法:将 P P P 看成行交换矩阵的乘积,因为每个行交换矩阵的转置(关于主对角线对称)和逆都是它本身, P T P^T PT P ? 1 P^{-1} P?1 都是行交换矩阵反序相乘,所以 P T P^T PT P ? 1 P^{-1} P?1 相同。

六、允许行交换的 PA = LU 分解

A = L U A=LU A=LU 分解从 A = ( E 21 ? 1 ? E i j ? 1 ? ? ) U A=(E^{-1}_{21}\cdots E^{-1}_{ij}\cdots)U A=(E21?1??Eij?1??)U 开始,每个消元步骤执行一次 E i j E_{ij} Eij? 用来消元,然后取其逆矩阵 E i j ? 1 E^{-1}_{ij} Eij?1?,它们可以压缩成一个矩阵 L L L L L L 是一个对角线都是 1 1 1 的下三角矩阵,最终得到 A = L U A=LU A=LU
但是 A = L U A=LU A=LU 分解不一定一直都可以成功,因为有时候需要用到行交换得到主元。此时就会有 A = ( E ? 1 ? P ? 1 ? E ? 1 ? P ? 1 ? ? ) U A=(E^{-1}\cdots P^{-1}\cdots E^{-1}\cdots P^{-1}\cdots)U A=(E?1?P?1?E?1?P?1?)U,每次行交换需要一个矩阵 P i j P_{ij} Pij?,然后取其逆矩阵 P i j ? 1 P^{-1}_{ij} Pij?1?,就得到上面的分解。我们如果将这些行交换矩阵压缩成一个置换矩阵 P P P,那么每一个可逆矩阵 A A A 都可以进行分解了。
那么如何得到这些行交换矩阵 P i j P_{ij} Pij? 呢?有两种可能的方法可以得到 P i j P_{ij} Pij?:第一种是在进行消元前就做好所有的行交换;第二种是在执行完所有消元步骤 E i j E_{ij} Eij? 后再做行交换。第一种方法会得到 P A = L U PA=LU PA=LU,而第二种方法会在中间得到一个置换矩阵 P 1 P_1 P1?

  1. 可以提前做行交换。所有行交换矩阵的乘积 P P P 可以使 A A A 的每一行都处在正确位置,因此对于 P A PA PA 就不再需要进行行交换,可以得到 P A = L U \pmb{PA=LU} PA=LU
  2. 如果在执行完所有的消元步骤后再进行行交换,那么主元将会是以一种比较奇怪的顺序排列。 P 1 P_1 P1? 可以将 U 1 U_1 U1? 按照正确的方式排列,得到 A = L 1 P 1 U 1 A=L_1P_1U_1 A=L1?P1?U1?

计算中基本上都是使用 P A = L U PA=LU PA=LU,我们主要关注这种形式。
下例中矩阵 A A A a 11 = 0 a_{11}=0 a11?=0 开始,通过交换行 1 1 1 和行 2 2 2 将主元放在正确的位置,然后对 P A PA PA 进行消元: [ 0 1 1 1 2 1 2 7 9 ] → [ 1 2 1 0 1 1 2 7 9 ] → [ 1 2 1 0 1 1 0 3 7 ] → [ 1 2 1 0 1 1 0 0 4 ] A P A l 31 = 2 l 32 = 3 \begin{bmatrix}0&1&1\\1&2&1\\2&7&9\end{bmatrix}\rightarrow\begin{bmatrix}1&2&1\\0&1&1\\2&7&9\end{bmatrix}\rightarrow\begin{bmatrix}1&2&1\\0&1&1\\0&3&7\end{bmatrix}\rightarrow\begin{bmatrix}1&2&1\\0&1&1\\0&0&4\end{bmatrix}\\\kern 11ptA\kern 58ptPA\kern 47ptl_{31}=2\kern 40ptl_{32}=3 ?012?127?119? ? ?102?217?119? ? ?100?213?117? ? ?100?210?114? ?APAl31?=2l32?=3矩阵 P A PA PA 行的顺序就很好,不需要再进行交换,可以进行 L U LU LU 分解: P = [ 0 1 0 1 0 0 0 0 1 ] , P A = [ 1 0 0 0 1 0 2 3 1 ] [ 1 2 1 0 1 1 0 0 4 ] = L U ( 2.7.7 ) P=\begin{bmatrix}0&\pmb1&0\\\pmb1&0&0\\0&0&\pmb1\end{bmatrix},\kern 10pt\pmb{PA}=\begin{bmatrix}1&0&0\\0&1&0\\2&3&1\end{bmatrix}\begin{bmatrix}1&2&1\\0&1&1\\0&0&4\end{bmatrix}=\pmb{LU}\kern 12pt(2.7.7) P= ?010?100?001? ?,PA= ?102?013?001? ? ?100?210?114? ?=LU(2.7.7) A A A 开始,到 U U U 结束,唯一的条件就是 A A A 是可逆的。

如果 A A A 是可逆矩阵,置换矩阵 P P P A A A 的行交换成正确的顺序,然后可以分解为 P A = L U \pmb{PA = LU} PA=LU。行交换后必需存在一整组主元使得 A A A 可逆。

七、主要内容总结

  1. 转置使矩阵 A A A 的行变成 A T A^T AT 的列,有 ( A T ) i j = A j i (A^T)_{ij}=A_{ji} (AT)ij?=Aji?
  2. A B AB AB 的转置是 B T A T B^TA^T BTAT A ? 1 A^{-1} A?1 的转置是 A T A^T AT 的逆矩阵。
  3. 点积就是 x ? y = x T y \boldsymbol x\cdot\boldsymbol y=\boldsymbol x^T\boldsymbol y x?y=xTy ( A x ) T y = x T ( A T y ) (A\boldsymbol x)^T\boldsymbol y=\boldsymbol x^T(A^T\boldsymbol y) (Ax)Ty=xT(ATy)
  4. S S S 是对称矩阵( S T = S S^T=S ST=S),它的 L D U LDU LDU 分解也是对称的: S = L D L T S=LDL^T S=LDLT
  5. 置换矩阵 P P P 的每一行每一列有且仅有一个 1 1 1,且有 P T = P ? 1 P^T=P^{-1} PT=P?1
  6. 阶数为 n n n 的置换矩阵共有 n ! n! n! 个。
  7. 如果 A A A 可逆,置换矩阵 P P P 可以重新排列 A A A 的行,则有 P A = L U PA=LU PA=LU

八、例题

例4】应用置换矩阵 P P P 到对称矩阵 S S S 的行会破坏其对称性。 P = [ 0 1 0 0 0 1 1 0 0 ] , S = [ 1 4 5 4 2 6 5 6 3 ] , P S = [ 4 2 6 5 6 3 1 4 5 ] P=\begin{bmatrix}0&1&0\\0&0&1\\1&0&0\end{bmatrix},\kern 5ptS=\begin{bmatrix}\pmb1&4&5\\4&\pmb2&6\\5&6&\pmb3\end{bmatrix},\kern 5ptPS=\begin{bmatrix}4&\pmb2&6\\5&6&\pmb3\\\pmb1&4&5\end{bmatrix} P= ?001?100?010? ?,S= ?145?426?563? ?,PS= ?451?264?635? ?什么样的置换矩阵 Q Q Q 应用到 P S PS PS 的列可以恢复其对称性?即 P S Q PSQ PSQ 是对称矩阵。 S S S 主对角线上的数字 1 , 2 , 3 1,2,3 1,2,3 一定再次要回到主对角线上(不一定是在原来的位置)。证明 Q = P T Q=P^T Q=PT,因此 P S P T PSP^T PSPT 是对称矩阵。
解: 要恢复其对称性, 2 2 2 要回到对角线上,所以 P S PS PS 2 2 2 需要在列 1 1 1 的位置; 3 3 3 回到对角线上,则列 3 3 3 要移到列 2 2 2;同理列 1 1 1 移到列 3 3 3 的位置,故可得到列交换矩阵 Q Q Q P S = [ 4 2 6 5 6 3 1 4 5 ] , Q = [ 0 0 1 1 0 0 0 1 0 ] , P S Q = [ 2 6 4 6 3 5 4 5 1 ] PS=\begin{bmatrix}4&\pmb2&6\\5&6&\pmb3\\\pmb1&4&5\end{bmatrix},\kern 5ptQ=\begin{bmatrix}0&0&1\\1&0&0\\0&1&0\end{bmatrix},\kern 5ptPSQ=\begin{bmatrix}\pmb 2&6&4\\6&\pmb3&5\\4&5&\pmb1\end{bmatrix} PS= ?451?264?635? ?,Q= ?010?001?100? ?,PSQ= ?264?635?451? ? P S Q PSQ PSQ 是对称矩阵, Q Q Q 就是 P T P^T PT。这是因为若 S S S 是对称矩阵,则 P S P T PSP^T PSPT 也是对称矩阵,因为 ( P S P T ) T = ( P T ) T S T P T = P S P T (PSP^T)^T=(P^T)^TS^TP^T=PSP^T (PSPT)T=(PT)TSTPT=PSPT。矩阵 Q Q Q 也是 P ? 1 P^{-1} P?1,因为 P P P 是置换矩阵,置换矩阵有 P T = P ? 1 P^T=P^{-1} PT=P?1
如果 D D D 是对角矩阵,那么 P D P T PDP^T PDPT 也是对角矩阵。左侧的 P P P 将行 1 1 1 下移到行 3 3 3,右侧的 P T P^T PT 会将列 1 1 1 移到列 3 3 3,即将主对角线上的元素从 ( 1 , 1 ) (1,1) (1,1) 移到 ( 3 , 1 ) (3,1) (3,1) 再移到 ( 3 , 3 ) (3,3) (3,3),它仍然在对角线上。

例5】对于上例矩阵 S S S,将其分解成对称形式 S = L D L T S=LDL^T S=LDLT
解: 要将 S S S 分解为 L D L T LDL^T LDLT,需要使用消元法得到 U U U S = [ 1 4 5 4 2 6 5 6 3 ] → [ 1 4 5 0 ? 14 ? 14 0 ? 14 ? 22 ] → [ 1 4 5 0 ? 14 ? 14 0 0 ? 8 ] = U S=\begin{bmatrix}1&4&5\\4&2&6\\5&6&3\end{bmatrix}\rightarrow\begin{bmatrix}1&4&5\\0&-14&-14\\0&-14&-22\end{bmatrix}\rightarrow\begin{bmatrix}1&4&5\\0&-14&-14\\0&0&-8\end{bmatrix}=U S= ?145?426?563? ? ?100?4?14?14?5?14?22? ? ?100?4?140?5?14?8? ?=U消元过程中使用的乘数 l 21 = 4 l_{21}=4 l21?=4 l 31 = 5 l_{31}=5 l31?=5 l 32 = 1 l_{32}=1 l32?=1。将主元 1 , ? 14 , ? 8 1,-14,-8 1?14?8 放入到对角矩阵 D D D 中,若将 U U U 的每行都除以改行的主元,会得到 L T L^T LT 当 ? S = S T ? 时 的对称分解 S = L D L T = [ 1 0 0 4 1 0 5 1 1 ] [ 1 ? 14 ? 8 ] [ 1 4 5 0 1 1 0 0 1 ] \begin{matrix}当\,S=S^T\,时\\的对称分解\end{matrix}\kern 10ptS=LDL^T=\begin{bmatrix}1&0&0\\4&1&0\\5&1&1\end{bmatrix}\begin{bmatrix}1&&\\&-14&\\&&-8\end{bmatrix}\begin{bmatrix}1&4&5\\0&1&1\\0&0&1\end{bmatrix} S=ST的对称分解?S=LDLT= ?145?011?001? ? ?1??14??8? ? ?100?410?511? ?对称矩阵 S S S 是可逆的,因为它有 3 3 3 个主元,它的逆矩阵 S ? 1 = ( L T ) ? 1 D ? 1 L ? 1 S^{-1}=(L^T)^{-1}D^{-1}L^{-1} S?1=(LT)?1D?1L?1 也是对称矩阵。

例6 A A A 是一个矩阵矩阵,鞍点(saddle-point)矩阵 S S S 是对称的: 来自最小二乘的分块矩阵 S = [ I A A T 0 ] = S T 其大小是 ? m + n 来自最小二乘的分块矩阵\kern 10ptS=\begin{bmatrix}I&A\\A^T&0\end{bmatrix}=S^T\kern 10pt其大小是\,m+n 来自最小二乘的分块矩阵S=[IAT?A0?]=ST其大小是m+n注:一个矩阵的鞍点是该位置上的元素所在行上最大,所在列上最小。
利用分块消元可以得到分块矩阵的分解 S = L D L T S=LDL^T S=LDLT,然后测试其可逆性: S ? 可逆 ?? ? ?? A T A ? 可逆 ?? ? ?? 若 x ≠ 0 ,则 ? A x ≠ 0 S\,可逆\iff A^TA\,可逆\iff 若\boldsymbol x\neq\boldsymbol0,则\,A\boldsymbol x\neq\boldsymbol0 S可逆?ATA可逆?x=0,则Ax=0解: 第一个分块的主元是 I I I,行 2 2 2 减去 A T A^T AT 乘行 1 1 1 分块消元 S = [ I A A T 0 ] → [ I A 0 ? A T A ] = U 分块消元\kern 7ptS=\begin{bmatrix}I&A\\A^T&0\end{bmatrix}\rightarrow\begin{bmatrix}I&A\\0&-A^TA\end{bmatrix}=U 分块消元S=[IAT?A0?][I0?A?ATA?]=U分块主元矩阵 D D D 包含 I I I ? A T A -A^TA ?ATA L L L L T L^T LT 包含 A T A^T AT A A A

分块分解 S = L D L T = [ I 0 A T I ] [ I 0 0 ? A T A ] [ I A 0 I ] \pmb{分块分解}\kern 10ptS=LDL^T=\begin{bmatrix}I&0\\A^T&I\end{bmatrix}\begin{bmatrix}I&0\\0&-A^TA\end{bmatrix}\begin{bmatrix}I&A\\0&I\end{bmatrix} 分块分解S=LDLT=[IAT?0I?][I0?0?ATA?][I0?AI?]

L L L 一定可逆,因为它的对角线都是 1 1 1。中间矩阵的逆矩阵与 ( A T A ) ? 1 (A^TA)^{-1} (ATA)?1 有关。下面是关于 A T A A^TA ATA 的问题:

A T A A^TA ATA 什么时候可逆? 答: A A A 必须有无关列。
只有当 x = 0 \boldsymbol x=\boldsymbol 0 x=0 时,才有 A x = 0 A\boldsymbol x=\boldsymbol 0 Ax=0,否则 A x = 0 A\boldsymbol x=\boldsymbol 0 Ax=0 会得到 A T A x = 0 。 A^TA\boldsymbol x=\boldsymbol 0。 ATAx=0

文章来源:https://blog.csdn.net/passxgx/article/details/135050908
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。