置换矩阵的应用:逆矩阵的对角线元素求法

本文详细介绍了置换矩阵的概念及其在矩阵排列中的作用,通过实例展示了如何通过置换矩阵调整矩阵的行或列顺序。此外,探讨了置换矩阵的性质,特别是其正交性,并推导了求解(ATA)^{-1}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

置换矩阵是一种非常实用的数学工具, 其确切定义如下:

一个正方矩阵,若其每一行和每一列有且仅有一个非零元素111,则称之为置换矩阵。

顾名思义,其作用是:

当将某一矩阵左乘置换矩阵,相当于将矩阵的行重新排列。 而右乘置换矩阵,则相当于对列重新排列。

因此,当我们想对矩阵的行或列重新排列时,就可以等效地将其写为左/右乘置换矩阵的形式。 插一句题外话,对某矩阵左乘一个对角阵,相当于对其每一行都分别乘上对应的对角元素。 右乘一个对角阵,则相当于每一列乘上一个对角元素。 因此,左乘代表对行操作,右乘代表对列操作

以一个实例来说明,假设有如下矩阵:

A=[a11a12a13a14a21a22a23a24a31a32a33a34a41a42a43a44a51a52a53a54] A=\left[\begin{array}{llll} a_{11} & a_{12} & a_{13} & a_{14} \\ a_{21} & a_{22} & a_{23} & a_{24} \\ a_{31} & a_{32} & a_{33} & a_{34} \\ a_{41} & a_{42} & a_{43} & a_{44} \\ a_{51} & a_{52} & a_{53} & a_{54} \end{array}\right] A=a11a21a31a41a51a12a22a32a42a52a13a23a33a43a53a14a24a34a44a54

和置换矩阵
P4=[0001010010000010] \boldsymbol{P}_{4}=\left[\begin{array}{llll} 0 & 0 & 0 & 1 \\ 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right] P4=0010010000011000
那么我们有:
AP4=[a13a12a14a11a23a22a24a21a33a32a34a31a43a42a44a41a53a52a54a51] A P_{4}=\left[\begin{array}{llll} a_{13} & a_{12} & a_{14} & a_{11} \\ a_{23} & a_{22} & a_{24} & a_{21} \\ a_{33} & a_{32} & a_{34} & a_{31} \\ a_{43} & a_{42} & a_{44} & a_{41} \\ a_{53} & a_{52} & a_{54} & a_{51} \end{array}\right] AP4=a13a23a33a43a53a12a22a32a42a52a14a24a34a44a54a11a21a31a41a51

注意到,AP4AP_4AP4事实上就是将原矩阵AAA中的列的顺序重新调换后的结果。我们再来看看这是如何操作的:首先可以将A写为:
A=[a1,a2,a3,a4] A = [a_1,a_2,a_3,a_4]A=[a1,a2,a3,a4]
其中ana_nan分别代表第nnn列。 那么,根据线性代数基本知识,可知,AP4AP_4AP4的第一列由Ap1Ap_1Ap1给出,其中p1p_1p1代表P4P_4P4的第一列,也即:
[a1,a2,a3,a4][0010]=a3 [a_1,a_2,a_3,a_4]\left[\begin{array}{c}0\\0\\1\\0\end{array}\right] =a_3[a1,a2,a3,a4]0010=a3
因此,AP4AP_4AP4的第一列就是AAA的第三列。 其他列的结果可类似得出。 好,我们可以发现其中的规律:

右乘置换矩阵的第nnn列的非零元素在第mmm行,则代表将第mmm列换到第nnn。比如P4P_4P4第一列的1元素在第三行,因此就将AAA的第3列换到第1列。 这也就是为什么置换矩阵的定义中,要求每一行,每一列均只有一个1的原因,只有这样才能保证最后的结果是将AAA矩阵的列进行调换。

类似的,假如有:
P5=[0000100100010000001010000] P_{5}=\left[\begin{array}{lllll} 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 1 & 0 & 0 & 0 & 0 \end{array}\right] P5=0000100100010000001010000
则有:
P5A=[a51a52a53a54a31a32a33a34a21a22a23a24a41a42a43a44a11a12a13a14] P_{5} A=\left[\begin{array}{llll} a_{51} & a_{52} & a_{53} & a_{54} \\ a_{31} & a_{32} & a_{33} & a_{34} \\ a_{21} & a_{22} & a_{23} & a_{24} \\ a_{41} & a_{42} & a_{43} & a_{44} \\ a_{11} & a_{12} & a_{13} & a_{14} \end{array}\right] P5A=a51a31a21a41a11a52a32a22a42a12a53a33a23a43a13a54a34a24a44a14
其操作与右乘置换矩阵时类似。 对于左乘的置换矩阵,第nnn行的非零元素在第mmm列,则代表将第mmm行调换到第nnn行。

接下来介绍下置换矩阵的几个性质,对后面的推导将有所帮助:

  • PTP=PPT=IP^TP=PP^T=IPTP=PPT=I,也就是说,置换矩阵是正交矩阵。因此我们也可知P−1=PTP^{-1}=P^TP1=PT。这也就是说,如果我们通过PPP矩阵调换了行列的顺序,我们可以通过乘以其转置,将行列顺序复原。
  • PTAPP^TAPPTAPAAA的对角线元素相同,但顺序可能不同。

接下来,我们讨论问题,如何求出逆矩阵(ATA)−1(A^TA)^{-1}(ATA)1的对角元素结果?

先给出结论为:

[(ATA)−1]nn=1anTan−anTAn(AnTAn)−1AnTan \left[\left(\mathbf{A}^{T} \mathbf{A}\right)^{-1}\right]_{n n}=\frac{1}{\mathbf{a}_{n}^{T} \mathbf{a}_{n}-\mathbf{a}_{n}^{T} \mathbf{A}_{n}\left(\mathbf{A}_{n}^{T} \mathbf{A}_{n}\right)^{-1} \mathbf{A}_{n}^{T} \mathbf{a}_{n}} [(ATA)1]nn=anTananTAn(AnTAn)1AnTan1

ana_nan代表矩阵AAA的第nnn列。

我们不妨先考虑最后一个对角元素的求取。 将AAA矩阵写为:A=[Anan]A=\left[\begin{array}{ll}A_{n} & a_{n}\end{array}\right]A=[Anan],因此
ATA=[AnTAnAnTananTAnanTan] A^{T} A=\left[\begin{array}{cc} A_{n}^{T} A_{n} & A_{n}^{T} a_{n} \\ a_{n}^{T} A_{n} & a_{n}^{T} a_{n} \end{array}\right] ATA=[AnTAnanTAnAnTananTan]
此时,我们利用块对角矩阵求逆公式,即:
[AUVD]−1=[A−1+A−1U(D−VA−1U)−1VA−1−A−1U(D−VA−1U)−1−(D−VA−1U)−1VA−1(D−VA−1U)−1] \left[\begin{array}{ll} \boldsymbol{A} & \boldsymbol{U} \\ \boldsymbol{V} & \boldsymbol{D} \end{array}\right]^{-1}=\left[\begin{array}{cc} \boldsymbol{A}^{-1}+\boldsymbol{A}^{-1} \boldsymbol{U}\left(\boldsymbol{D}-\boldsymbol{V} \boldsymbol{A}^{-1} \boldsymbol{U}\right)^{-1} \boldsymbol{V} \boldsymbol{A}^{-1} & -\boldsymbol{A}^{-1} \boldsymbol{U}\left(\boldsymbol{D}-\boldsymbol{V} \boldsymbol{A}^{-1} \boldsymbol{U}\right)^{-1} \\ -\left(\boldsymbol{D}-\boldsymbol{V} \boldsymbol{A}^{-1} \boldsymbol{U}\right)^{-1} \boldsymbol{V} \boldsymbol{A}^{-1} & \left(\boldsymbol{D}-\boldsymbol{V} \boldsymbol{A}^{-1} \boldsymbol{U}\right)^{-1} \end{array}\right] [AVUD]1=[A1+A1U(DVA1U)1VA1(DVA1U)1VA1A1U(DVA1U)1(DVA1U)1]
由于我们只关心最后一个对角元素,因此只考虑(D−VA−1U)−1\left(\boldsymbol{D}-\boldsymbol{V} \boldsymbol{A}^{-1} \boldsymbol{U}\right)^{-1}(DVA1U)1这一项, 我们把 D=anTanD=a_n^Ta_nD=anTanV=anTAnV=a_n^TA_nV=anTAnU=AnTanU=A_n^Ta_nU=AnTanA=AnTAnA=A_n^TA_nA=AnTAn代入,即可得到:
[(ATA)−1]nn=1anTan−anTAn(AnTAn)−1AnTan \left[\left(\mathbf{A}^{T} \mathbf{A}\right)^{-1}\right]_{n n}=\frac{1}{\mathbf{a}_{n}^{T} \mathbf{a}_{n}-\mathbf{a}_{n}^{T} \mathbf{A}_{n}\left(\mathbf{A}_{n}^{T} \mathbf{A}_{n}\right)^{-1} \mathbf{A}_{n}^{T} \mathbf{a}_{n}} [(ATA)1]nn=anTananTAn(AnTAn)1AnTan1
因此,最后一个对角元素的取值得到了证明。接下来,考虑一般情况,假设要求取第iii个对角元素。 显然,存在置换矩阵PPP,有:
AP=[Ai,ai]AP = [A_i, a_i]AP=[Ai,ai]
即将AAA的第iiiaia_iai调换到最后一列,而将最后一列调换到第iii列,其他列均不变。因此有:
[(PTATAP)−1]nn=1aiTai−aiTAi(AiTAi)−1AiTai[(P^TA^TAP)^{-1}]_{nn} =\frac{1}{\mathbf{a}_{i}^{T} \mathbf{a}_{i}-\mathbf{a}_{i}^{T} \mathbf{A}_{i}\left(\mathbf{A}_{i}^{T} \mathbf{A}_{i}\right)^{-1} \mathbf{A}_{i}^{T} \mathbf{a}_{i}}[(PTATAP)1]nn=aiTaiaiTAi(AiTAi)1AiTai1
此时注意到:根据P−1=PTP^{-1}=P^TP1=PT,我们有:
(PTATAP)−1=PT(ATA)−1P(P^TA^TAP)^{-1}=P^T(A^TA)^{-1}P(PTATAP)1=PT(ATA)1P
也就是说,(PTATAP)−1(P^TA^TAP)^{-1}(PTATAP)1是将(ATA)−1(A^TA)^{-1}(ATA)1的第iii列与最后一列调换,第iii行与最后一行调换后的结果。换言之, 我们刚刚求取的(PTATAP)−1(P^TA^TAP)^{-1}(PTATAP)1的最后一个对角元素就是(ATA)−1(A^TA)^{-1}(ATA)1的第iii个对角元素!因此,得证。

对此其实我们也可以看出:

调换顺序后求逆,等价于求逆后再调换顺序,不过前提是形式应为(ATA)−1(A^TA)^{-1}(ATA)1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B417科研笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值