一、转置
AAA 的转置(transpose)记作 ATA^TAT,ATA^TAT 的列就是 AAA 的行。
若 AAA 是 m×nm\times nm×n 的矩阵,则它的转置 ATA^TAT 就是 n×mn\times mn×m 的矩阵:转置如果 A=[123004]则AT=[102034]\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=[102034]则AT=123004可以将 AAA 的行写成 ATA^TAT 的列,也可以将 AAA 的列写成 ATA^TAT 的行,它的转置矩阵是关于其主对角线翻转(即交换关于主对角线对称的元素)。ATA^TAT 的行 iii 列 jjj 元素来自于原始矩阵 AAA 的行 jjj 列 iii 元素:
交换行与列(AT)ij=Aji\pmb{交换行与列}\kern 35pt(A^T)_{ij}=A_{ji}交换行与列(AT)ij=Aji
下三角矩阵的转置是上三角矩阵。ATA^TAT 的转置就是 AAA。
注: MATLAB 中 AAA 的转置使用 A′A'A′ 来表示,输入 [123]\begin{bmatrix}1&2&3\end{bmatrix}[123] 得到一个行向量,列向量 v=[123]′\boldsymbol v=\begin{bmatrix}1&2&3\end{bmatrix}'v=[123]′。若矩阵 MMM 的第二列是 w=[456]′\boldsymbol w=\begin{bmatrix}4&5&6\end{bmatrix}'w=[456]′,可以定义 M=[vw]M=\begin{bmatrix}\boldsymbol v&\boldsymbol w\end{bmatrix}M=[vw];也可以通过行快速输入,让后将整个矩阵转置 M=[123;456]′M=\begin{bmatrix}1&2&3;&4&5&6\end{bmatrix}'M=[123;456]′。
转置的一些运算法则:和(A+B)T=AT+BT(2.7.1)积(AB)T=BTAT(2.7.2)逆(A−1)T=(AT)−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)需要注意的是 (AB)T(AB)^T(AB)T 需要反序相乘 BTATB^TA^TBTAT,可以从 (Ax)T=xTAT(A\boldsymbol x)^T=\boldsymbol x^TA^T(Ax)T=xTAT 来理解该法则,此时 BBB 只是一个向量:Ax 是 A 列的线性组合,而 xTAT 是 AT 行的线性组合A\boldsymbol x\,是\,A\,列的线性组合,而\,\boldsymbol x^TA^T\,是\,A^T\,行的线性组合Ax是A列的线性组合,而xTAT是AT行的线性组合它们是相同的线性组合,在 AAA 中是列,在 ATA^TAT 中变成了行,所以 AxA\boldsymbol xAx 的转置就是 xTAT\boldsymbol x^TA^TxTAT,符合公式 (AB)T=BTAT(AB)^T=B^TA^T(AB)T=BTAT。下面证明当 BBB 有多个列时, (AB)T=BTAT(AB)^T=B^TA^T(AB)T=BTAT:
如果 B=[x1x2]B=\begin{bmatrix}\boldsymbol x_1&\boldsymbol x_2\end{bmatrix}B=[x1x2] 有两列,对这两列用同样的方法,则 ABABAB 的列就是 Ax1A\boldsymbol x_1Ax1 和 Ax2A\boldsymbol x_2Ax2,它们的转置将会出现在 BTATB^TA^TBTAT 的行:转置AB=[Ax1Ax2⋯]得到[x1TATx2TAT⋯]就是BTAT(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=Ax1Ax2⋯得到x1TATx2TAT⋯就是BTAT(2.7.4)下面是实际的例子:AB=[1011][5041]=[5091],BTAT=[5401][1101]=[5901]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=[1101][5401]=[5901],BTAT=[5041][1011]=[5091]反序的规则可以扩展到三个及三个以上的乘积:(ABC)T=CTBTAT(ABC)^T=C^TB^TA^T(ABC)T=CTBTAT。如果A=LDU,则 AT=UTDTLT,主元矩阵有 D=DT如果\kern 3ptA=LDU,则\,A^T=U^TD^TL^T,主元矩阵有\,D=D^T如果A=LDU,则AT=UTDTLT,主元矩阵有D=DT将上述乘积转置的规则应用中 A−1A=IA^{-1}A=IA−1A=I 两侧,因为 IT=II^T=IIT=I,可以得到 (A−1)T(A^{-1})^T(A−1)T 就是 ATA^TAT 的逆矩阵,因为它们的乘积是 III:转置逆矩阵A−1A=I转置后的AT(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)同理由 AA−1=IAA^{-1}=IAA−1=I,可以得到 (A−1)TAT=I(A^{-1})^TA^T=I(A−1)TAT=I。我们可以对转置求逆,也可以对逆求转置。尤其注意:AT\pmb{A^T}AT 可逆当且仅当 A\pmb AA 可逆。
【例1】A=[1061]A=\begin{bmatrix}1&0\\6&1\end{bmatrix}A=[1601] 的逆矩阵是 A−1=[10−61]A^{-1}=\begin{bmatrix}\kern 7pt1&0\\-6&1\end{bmatrix}A−1=[1−601],它的转置是 AT=[1601]A^T=\begin{bmatrix}1&6\\0&1\end{bmatrix}AT=[1061]。(A−1)T和(AT)−1 都等于 [1−601](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 xx 和 y\boldsymbol yy 的点积(内积)是 xiyix_iy_ixiyi 的累加和,现在我们可以使用更好地方式来表示 x⋅y\boldsymbol x\cdot\boldsymbol yx⋅y,不再需要点来表示,而是用矩阵表示:T在内点积或内积是 xTy(1×n)(n×1)T在外秩一的乘积或外积是 xyT(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)xTy\boldsymbol x^T\boldsymbol yxTy 是一个数字,xyT\boldsymbol {xy}^TxyT 是一个矩阵。量子力学中写成 <x∣y><\boldsymbol x|\boldsymbol y><x∣y>(内积),∣x><y∣|\boldsymbol x><\boldsymbol y|∣x><y∣(外积)。下面三个例子是内积的不同意义:力学功=(位移)(力)=xTf电路功率=(压降)(电流)=eTy经济收入=(数量)(单价)=qTp\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这里就比较接近应用数学的中心了,另一个重点强调的是内积与 AAA 的转置有很深的关联。
我们将矩阵沿其主对角线翻转定义为 ATA^TAT,这个不是数学,还有一个更好的方法来说明转置。ATA^TAT 是使任意两个向量 x\boldsymbol xx 和 y\boldsymbol yy 内积相等的矩阵:(Ax)Ty=xT(ATy)Ax与y的内积=x与ATy的内积(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)Ax与y的内积=x与ATy的内积假如 A=[−1100−11]A=\begin{bmatrix}-1&\kern 7pt1&0\\\kern 7pt0&-1&1\end{bmatrix}A=[−101−101],x=[x1x2x3]\boldsymbol x=\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}x=x1x2x3,y=[y1y2]\boldsymbol y=\begin{bmatrix}y_1\\y_2\end{bmatrix}y=[y1y2],左侧是 AxA\boldsymbol xAx 与 y\boldsymbol yy 的内积:(x2−x1)y1+(x3−x2)y2(x_2-x_1)y_1+(x_3-x_2)y_2(x2−x1)y1+(x3−x2)y2,整理得:x1(−y1)+x2(y1−y2)+x3(y2)x_1(-y_1)+x_2(y_1-y_2)+x_3(y_2)x1(−y1)+x2(y1−y2)+x3(y2),右侧是 x\boldsymbol xx 与 ATyA^T\boldsymbol yATy 的内积:ATy必须是[−y1y1−y2y2],可以得到AT=[−101−101]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必须是−y1y1−y2y2,可以得到AT=−1100−11
三、对称矩阵
对称(Symmetric)矩阵将其转置前后没有变化,即它的转置等于它本身。对称矩阵的元素关于主对角线对称,即有 (j,i)(j,i)(j,i) 元素等于 (i,j)(i,j)(i,j) 元素。一般使用字母 SSS 表示对称矩阵。
定义对称矩阵有 ST=S,即 Sji=Sij\pmb定义\kern 30pt对称矩阵有\, S^T=S,即\,S_{ji}=S_{ij}定义对称矩阵有ST=S,即Sji=Sij
对称矩阵S=[1225]=ST,D=[10010]=DT对称矩阵\kern 20ptS=\begin{bmatrix}1&2\\2&5\end{bmatrix}=S^T,D=\begin{bmatrix}1&0\\0&10\end{bmatrix}=D^T对称矩阵S=[1225]=ST,D=[10010]=DT对称矩阵的逆矩阵也是对称矩阵。(S−1)T=(ST)−1=S−1(S^{-1})^T=(S^T)^{-1}=S^{-1}(S−1)T=(ST)−1=S−1,所以若 SSS 可逆, S−1S^{-1}S−1 也是对称矩阵。对称的逆矩阵S−1=[5−2−21],D−1=[1000.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=[1000.1]
四、对称的乘积 ATAA^TAATA,AATAA^TAAT,LDLTLDL^TLDLT
任意的 m×nm\times nm×n 的矩阵 AAA,可以是矩形的,ATA^TAT 和 AAA 的乘积 S=ATAS=A^TAS=ATA 是一个对称的方阵。ATA 的转置 AT(AT)T 就是 ATA(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)下面快速证明 ATAA^TAATA 是对称矩阵。对于 ATAA^TAATA 的 (i,j)(i,j)(i,j) 位置的元素,它是 ATA^TAT 第 iii 行和 AAA 第 jjj 列的点积,而其 (j,i)(j,i)(j,i) 位置的元素是 ATA^TAT 第 jjj 行和 AAA 第 iii 列的点积,因为 ATA^TAT 的行 iii 就是 AAA 的列 iii,ATA^TAT 的列 jjj 就是 AAA 的行 jjj,所以这两个点积相等,因此 ATAA^TAATA 是对称矩阵。
同理 AATAA^TAAT 也是对称的,但是 AATAA^TAAT 与 ATAA^TAATA 不同。以我们的经验,大部分科学问题都是从矩形矩阵 AAA 开始,以 ATAA^TAATA 或 AATAA^TAAT 或二者皆有的情况下结束,例如最小二乘法。
【例2】将 A=[−1100−11]A=\begin{bmatrix}-1&\kern 7pt1&0\\\kern 7pt0&-1&1\end{bmatrix}A=[−101−101] 和 AT=[−101−101]A^T=\begin{bmatrix}-1&\kern 7pt0\\\kern 7pt1&-1\\\kern 7pt0&\kern 7pt1\end{bmatrix}AT=−1100−11 用两种顺序相乘。AAT=[2−1−11],ATA=[1−10−12−10−11]都是对称矩阵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−10−11都是对称矩阵ATAA^TAATA 是 n×nn\times nn×n 的矩阵,反序相乘的 AATAA^TAAT 是 m×mm\times mm×m 的矩阵,它们都是对称矩阵,对角线均为正数。大部分情况下 ATA≠AATA^TA\neq AA^TATA=AAT,即使 m=nm=nm=n 时,通常情况下等号也不成立。
对称矩阵的消元ST=S\kern 10ptS^T=SST=S 可以使得消元更快,因为我们只需要处理矩阵的一半就可以了(加上对角线)。三重乘积 S=LDUS=LDUS=LDU 会有对称性,这种分解使得 LLL 和 UUU 的对角线都是 111:[1227]=[1021][1203]LU分解不具有对称性[1227]=[1021][1003][1201]LDLT具有对称性此时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}[1227]=[1201][1023]LU分解不具有对称性[1227]=[1201][1003][1021]LDLT具有对称性此时U是L的转置当 SSS 是对称矩阵时,一般形式 A=LDUA=LDUA=LDU 变为 S=LDLT\pmb{S=LDL^T}S=LDLT。最后的 UUU(对角线均是 111)是 LLL(对角线也为 111)的转置。对角矩阵 DDD 包含主元,它本身也是对称的。
如果 S=ST 分解成 LDU,没有出现行交换,则 U就是 LT\pmb{如果\,S=S^T\,分解成\,LDU,没有出现行交换,则\,U就是\,L^T}如果S=ST分解成LDU,没有出现行交换,则U就是LT
对称矩阵的对称分解是 S=LDLT对称矩阵的对称分解是\,\pmb{S=LDL^T}对称矩阵的对称分解是S=LDLT注意到 LDLTLDL^TLDLT 的转置 (LT)TDTLT(L^T)^TD^TL^T(LT)TDTLT 就是 LDLTLDL^TLDLT。消元的工作就会减少一半,从 n3/3n^3/3n3/3 次乘法变成了 n3/6n^3/6n3/6 次乘法,存储空间基本上也减少一半,我们只需要保存 LLL 和 DDD,因为 UUU 就是 LTL^TLT。
五、置换矩阵
转置在置换矩阵中扮演了一个特殊角色,置换矩阵 PPP 在每一行每一列有且只有一个 111,PTP^TPT 也是一个置换矩阵,它可能与 PPP 相同,也可能与 PPP 不同。任意两个置换矩阵的乘积 P1P2P_1P_2P1P2 也是置换矩阵。
我们通过重新排列 III 行的顺序,可以得到来自这个单位矩阵的所有置换矩阵。
最简单的置换矩阵就是 P=IP=IP=I(没有行交换),然后是仅交换 III 两行的置换矩阵 PijP_{ij}Pij,其它的置换矩阵会交换更多的行。对 III 做所有可能的行交换,则可以得到全部的置换矩阵。
定义置换矩阵 P 有单位矩阵 I 任意顺序的行\pmb{定义}\kern 10pt置换矩阵\,P\,有单位矩阵\,I\,任意顺序的行定义置换矩阵P有单位矩阵I任意顺序的行
【例3】下面是 666 个 3×33\times33×3 的置换矩阵,没有写出 000:I=[111],P21=[111],P32P21=[111]\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=111,P21=111,P32P21=111P31=[111],P32=[111],P21P32=[111]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=111,P32=111,P21P32=111nnn 阶矩阵总共有 n!n!n! 个置换矩阵,nnn 的阶乘 n!=1×2×⋯×nn!=1\times2\times\cdots\times nn!=1×2×⋯×n,因此 3!=1×2×3=63!=1\times2\times3=63!=1×2×3=6。如果 444 阶矩阵 n=4n=4n=4,则有 242424 种置换矩阵,555 阶矩阵有 120120120 种置换矩阵。
对于 222 阶矩阵只有两种置换矩阵,分别是 [1001]\begin{bmatrix}1&0\\0&1\end{bmatrix}[1001] 和 [0110]\begin{bmatrix}0&1\\1&0\end{bmatrix}[0110]。
重点: P−1P^{-1}P−1 也是一个置换矩阵。在上面的 3×33\times33×3 的置换矩阵中,左边四个矩阵的逆矩阵就是它本身,右边的两个矩阵互为逆矩阵。对于所有的置换矩阵,只进行一次行交换的置换矩阵其逆矩阵就是它本身,因为重复两次相同的行交换就会回到 III。但是对于进行两次行交换的置换矩阵来说,其逆矩阵就是反序相乘,P32P21P_{32}P_{21}P32P21 的逆矩阵就是 P21P32P_{21}P_{32}P21P32。
更重要的: P−1\pmb{P^{-1}}P−1 总是与 PT\pmb{P^T}PT 相等。右边的两个矩阵互为逆矩阵,也互为转置矩阵。当我们计算 PPTPP^TPPT 时,PPP 的第一行中的 111 正好碰上 PTP^TPT 第一列中的 111(因为 PPP 的行 111 正好是 PTP^TPT 的列 111),而其它列的 111 正好错过,所以有 PPT=IPP^T=IPPT=I。
另一种证明 PT=P−1P^T=P^{-1}PT=P−1 的方法:将 PPP 看成行交换矩阵的乘积,因为每个行交换矩阵的转置(关于主对角线对称)和逆都是它本身,PTP^TPT 和 P−1P^{-1}P−1 都是行交换矩阵反序相乘,所以 PTP^TPT 与 P−1P^{-1}P−1 相同。
六、允许行交换的 PA = LU 分解
A=LUA=LUA=LU 分解从 A=(E21−1⋯Eij−1⋯ )UA=(E^{-1}_{21}\cdots E^{-1}_{ij}\cdots)UA=(E21−1⋯Eij−1⋯)U 开始,每个消元步骤执行一次 EijE_{ij}Eij 用来消元,然后取其逆矩阵 Eij−1E^{-1}_{ij}Eij−1,它们可以压缩成一个矩阵 LLL,LLL 是一个对角线都是 111 的下三角矩阵,最终得到 A=LUA=LUA=LU。
但是 A=LUA=LUA=LU 分解不一定一直都可以成功,因为有时候需要用到行交换得到主元。此时就会有 A=(E−1⋯P−1⋯E−1⋯P−1⋯ )UA=(E^{-1}\cdots P^{-1}\cdots E^{-1}\cdots P^{-1}\cdots)UA=(E−1⋯P−1⋯E−1⋯P−1⋯)U,每次行交换需要一个矩阵 PijP_{ij}Pij,然后取其逆矩阵 Pij−1P^{-1}_{ij}Pij−1,就得到上面的分解。我们如果将这些行交换矩阵压缩成一个置换矩阵 PPP,那么每一个可逆矩阵 AAA 都可以进行分解了。
那么如何得到这些行交换矩阵 PijP_{ij}Pij 呢?有两种可能的方法可以得到 PijP_{ij}Pij:第一种是在进行消元前就做好所有的行交换;第二种是在执行完所有消元步骤 EijE_{ij}Eij 后再做行交换。第一种方法会得到 PA=LUPA=LUPA=LU,而第二种方法会在中间得到一个置换矩阵 P1P_1P1。
- 可以提前做行交换。所有行交换矩阵的乘积 PPP 可以使 AAA 的每一行都处在正确位置,因此对于 PAPAPA 就不再需要进行行交换,可以得到 PA=LU\pmb{PA=LU}PA=LU。
- 如果在执行完所有的消元步骤后再进行行交换,那么主元将会是以一种比较奇怪的顺序排列。P1P_1P1 可以将 U1U_1U1 按照正确的方式排列,得到 A=L1P1U1A=L_1P_1U_1A=L1P1U1。
计算中基本上都是使用 PA=LUPA=LUPA=LU,我们主要关注这种形式。
下例中矩阵 AAA 从 a11=0a_{11}=0a11=0 开始,通过交换行 111 和行 222 将主元放在正确的位置,然后对 PAPAPA 进行消元:[011121279]→[121011279]→[121011037]→[121011004]APAl31=2l32=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}=3012127119→102217119→100213117→100210114APAl31=2l32=3矩阵 PAPAPA 行的顺序就很好,不需要再进行交换,可以进行 LULULU 分解:P=[010100001],PA=[100010231][121011004]=LU(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=010100001,PA=102013001100210114=LU(2.7.7)从 AAA 开始,到 UUU 结束,唯一的条件就是 AAA 是可逆的。
如果 AAA 是可逆矩阵,置换矩阵 PPP 将 AAA 的行交换成正确的顺序,然后可以分解为 PA=LU\pmb{PA = LU}PA=LU。行交换后必需存在一整组主元使得 AAA 可逆。
七、主要内容总结
- 转置使矩阵 AAA 的行变成 ATA^TAT 的列,有 (AT)ij=Aji(A^T)_{ij}=A_{ji}(AT)ij=Aji。
- ABABAB 的转置是 BTATB^TA^TBTAT,A−1A^{-1}A−1 的转置是 ATA^TAT 的逆矩阵。
- 点积就是 x⋅y=xTy\boldsymbol x\cdot\boldsymbol y=\boldsymbol x^T\boldsymbol yx⋅y=xTy。(Ax)Ty=xT(ATy)(A\boldsymbol x)^T\boldsymbol y=\boldsymbol x^T(A^T\boldsymbol y)(Ax)Ty=xT(ATy)。
- 若 SSS 是对称矩阵(ST=SS^T=SST=S),它的 LDULDULDU 分解也是对称的:S=LDLTS=LDL^TS=LDLT。
- 置换矩阵 PPP 的每一行每一列有且仅有一个 111,且有 PT=P−1P^T=P^{-1}PT=P−1。
- 阶数为 nnn 的置换矩阵共有 n!n!n! 个。
- 如果 AAA 可逆,置换矩阵 PPP 可以重新排列 AAA 的行,则有 PA=LUPA=LUPA=LU。
八、导数的转置
从矩阵变成导数,有 A=d/dtA=\textrm d/\textrm dtA=d/dt,为了求出 AAA 的转置,我们需要定义两个函数 x(t)x(t)x(t) 和 y(t)y(t)y(t) 的内积:两个函数的内积就是 x(t)y(t)x(t)y(t)x(t)y(t) 的积分
函数的内积xTy=(x,y)=∫−∞+∞x(t)y(t) dt\pmb{函数的内积}\kern 13ptx^Ty=(x,y)=\int_{-\infty}^{+\infty}x(t)y(t)\,\textrm dt函数的内积xTy=(x,y)=∫−∞+∞x(t)y(t)dt
对于导数来说,使用伴随 (adjoint) 比使用转置来说更准确。
矩阵的转置 (Ax)Ty=xT(ATy)(A\boldsymbol x)^Ty=\boldsymbol x^T(A^Ty)(Ax)Ty=xT(ATy)。A=ddtA=\displaystyle\frac{\textrm d}{\textrm dt}A=dtd 的伴随有(Ax,y)=∫−∞+∞dxdty(t) dt=∫−∞+∞x(t)(−dydt) dt=(x,ATy)(Ax,y)=\int_{-\infty}^{+\infty}\frac{\textrm dx}{\textrm dt}y(t)\,\textrm dt=\int_{-\infty}^{+\infty}x(t)(-\frac{\textrm dy}{\textrm dt})\,\textrm dt=(x,A^Ty)(Ax,y)=∫−∞+∞dtdxy(t)dt=∫−∞+∞x(t)(−dtdy)dt=(x,ATy)导数从第一个函数 x(t)x(t)x(t) 移到第二个函数 y(t)y(t)y(t) 时,出现了一个负号,即导数的转置就是导数的相反数。
导数是反对称的,A=d/dt,AT=−d/dtA=\textrm d/\textrm dt,A^T=-\textrm d/\textrm dtA=d/dt,AT=−d/dt。对称矩阵有 ST=SS^T=SST=S,反对称矩阵有 AT=−AA^T=-AAT=−A,导数和积分都是线性的。
导数的反对称可以应用到中心差分矩阵:A=[0100−10100−10100−10]转置成AT=[0−10010−10010−10010]=−AA=\begin{bmatrix}\kern 7pt0&\kern 7pt1&\kern 7pt0&0\\-1&\kern 7pt0&\kern 7pt1&0\\\kern 7pt0&-1&\kern 7pt0&1\\\kern 7pt0&\kern 7pt0&-1&0\end{bmatrix}转置成\kern 4ptA^T=\begin{bmatrix}0&-1&\kern 7pt0&\kern 7pt0\\1&\kern 7pt0&-1&\kern 7pt0\\0&\kern 7pt1&\kern 7pt0&-1\\0&\kern 7pt0&\kern 7pt1&0\end{bmatrix}=-AA=0−10010−10010−10010转置成AT=0100−10100−10100−10=−A前向差分矩阵的转置变成了后向差分矩阵,相当于乘 −1-1−1。在微分方程中,第二导数(加速度)是对称的,第一导数(正比于速度的阻尼)是反对称的。
九、例题
【例4】应用置换矩阵 PPP 到对称矩阵 SSS 的行会破坏其对称性。P=[010001100],S=[145426563],PS=[426563145]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=001100010,S=145426563,PS=451264635什么样的置换矩阵 QQQ 应用到 PSPSPS 的列可以恢复其对称性?即 PSQPSQPSQ 是对称矩阵。SSS 主对角线上的数字 1,2,31,2,31,2,3 一定再次要回到主对角线上(不一定是在原来的位置)。证明 Q=PTQ=P^TQ=PT,因此 PSPTPSP^TPSPT 是对称矩阵。
解: 要恢复其对称性,222 要回到对角线上,所以 PSPSPS 列 222 需要在列 111 的位置;333 回到对角线上,则列 333 要移到列 222;同理列 111 移到列 333 的位置,故可得到列交换矩阵 QQQ:PS=[426563145],Q=[001100010],PSQ=[264635451]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=451264635,Q=010001100,PSQ=264635451PSQPSQPSQ 是对称矩阵,QQQ 就是 PTP^TPT。这是因为若 SSS 是对称矩阵,则 PSPTPSP^TPSPT 也是对称矩阵,因为 (PSPT)T=(PT)TSTPT=PSPT(PSP^T)^T=(P^T)^TS^TP^T=PSP^T(PSPT)T=(PT)TSTPT=PSPT。矩阵 QQQ 也是 P−1P^{-1}P−1,因为 PPP 是置换矩阵,置换矩阵有 PT=P−1P^T=P^{-1}PT=P−1。
如果 DDD 是对角矩阵,那么 PDPTPDP^TPDPT 也是对角矩阵。左侧的 PPP 将行 111 下移到行 333,右侧的 PTP^TPT 会将列 111 移到列 333,即将主对角线上的元素从 (1,1)(1,1)(1,1) 移到 (3,1)(3,1)(3,1) 再移到 (3,3)(3,3)(3,3),它仍然在对角线上。
【例5】对于上例矩阵 SSS,将其分解成对称形式 S=LDLTS=LDL^TS=LDLT。
解: 要将 SSS 分解为 LDLTLDL^TLDLT,需要使用消元法得到 UUU:S=[145426563]→[1450−14−140−14−22]→[1450−14−1400−8]=US=\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}=US=145426563→1004−14−145−14−22→1004−1405−14−8=U消元过程中使用的乘数 l21=4l_{21}=4l21=4,l31=5l_{31}=5l31=5,l32=1l_{32}=1l32=1。将主元 1,−14,−81,-14,-81,−14,−8 放入到对角矩阵 DDD 中,若将 UUU 的每行都除以改行的主元,会得到 LTL^TLT:当 S=ST 时的对称分解S=LDLT=[100410511][1−14−8][145011001]\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=1450110011−14−8100410511对称矩阵 SSS 是可逆的,因为它有 333 个主元,它的逆矩阵 S−1=(LT)−1D−1L−1S^{-1}=(L^T)^{-1}D^{-1}L^{-1}S−1=(LT)−1D−1L−1 也是对称矩阵。
【例6】AAA 是一个矩阵矩阵,鞍点(saddle-point)矩阵 SSS 是对称的:来自最小二乘的分块矩阵S=[IAAT0]=ST其大小是 m+n来自最小二乘的分块矩阵\kern 10ptS=\begin{bmatrix}I&A\\A^T&0\end{bmatrix}=S^T\kern 10pt其大小是\,m+n来自最小二乘的分块矩阵S=[IATA0]=ST其大小是m+n注:一个矩阵的鞍点是该位置上的元素所在行上最大,所在列上最小。
利用分块消元可以得到分块矩阵的分解 S=LDLTS=LDL^TS=LDLT,然后测试其可逆性:S 可逆 ⟺ ATA 可逆 ⟺ 若x≠0,则 Ax≠0S\,可逆\iff A^TA\,可逆\iff 若\boldsymbol x\neq\boldsymbol0,则\,A\boldsymbol x\neq\boldsymbol0S可逆⟺ATA可逆⟺若x=0,则Ax=0解: 第一个分块的主元是 III,行 222 减去 ATA^TAT 乘行 111:分块消元S=[IAAT0]→[IA0−ATA]=U分块消元\kern 7ptS=\begin{bmatrix}I&A\\A^T&0\end{bmatrix}\rightarrow\begin{bmatrix}I&A\\0&-A^TA\end{bmatrix}=U分块消元S=[IATA0]→[I0A−ATA]=U分块主元矩阵 DDD 包含 III 和 −ATA-A^TA−ATA,LLL 和 LTL^TLT 包含 ATA^TAT 和 AAA:
分块分解S=LDLT=[I0ATI][I00−ATA][IA0I]\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=[IAT0I][I00−ATA][I0AI]
LLL 一定可逆,因为它的对角线都是 111。中间矩阵的逆矩阵与 (ATA)−1(A^TA)^{-1}(ATA)−1 有关。下面是关于 ATAA^TAATA 的问题:
ATAA^TAATA 什么时候可逆? 答:AAA 必须有无关列。
只有当 x=0\boldsymbol x=\boldsymbol 0x=0 时,才有 Ax=0A\boldsymbol x=\boldsymbol 0Ax=0,否则 Ax=0A\boldsymbol x=\boldsymbol 0Ax=0 会得到 ATAx=0。A^TA\boldsymbol x=\boldsymbol 0。ATAx=0。
6451





