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\,行的线性组合
Ax是A列的线性组合,而xTAT是AT行的线性组合它们是相同的线性组合,在
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>
<x∣y>(内积),
∣
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)Ax与y的内积=x与ATy的内积假如
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?]=ST,D=[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?]
任意的
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具有对称性此时U是L的转置?当
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 相同。
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?。
计算中基本上都是使用
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 可逆。
【例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。