分类目录:《算法设计与分析》总目录
对于非方矩阵而言,其逆矩阵没有定义。假设在下面的问题中,我们希望通过矩阵
A
A
A的左逆
B
B
B来求解线性方程:
A
X
=
y
AX=y
AX=y
等式两边左乘左逆
B
B
B后,我们得到:
x
=
B
y
x=By
x=By
取决于问题的形式,我们可能无法设计一个唯一的映射将 A A A映射到 B B B。如果矩阵 A A A的行数大于列数,那么上述方程可能没有解。如果矩阵 A A A的行数小于列数,那么上述矩阵可能有多个解。
Moore-Penrose伪逆使我们在这类问题上取得了一定的进展。矩阵
A
A
A的伪逆定义为:
A
+
=
lim
α
↘
0
(
A
T
A
+
α
I
)
−
1
A
T
A^+=\lim_{\alpha\searrow0}(A^TA+\alpha I)^{-1}A^T
A+=α↘0lim(ATA+αI)−1AT
计算伪逆的实际算法没有基于这个定义,而是使用下面的公式:
A
+
=
V
D
+
U
T
A^+=VD^+U^T
A+=VD+UT
其中,矩阵 U U U, D D D和 V V V是矩阵 A A A奇异值分解后得到的矩阵。对角矩阵 D D D的伪逆 D D D是其非零元素取倒数之后再转置得到的。
当矩阵 A A A的列数多于行数时,使用伪逆求解线性方程是众多可能解法中的种。特别地 x = A + y x=A^+y x=A+y是方程所有可行解中欧几里得范数 ∣ ∣ x ∣ ∣ 2 ||x||_2 ∣∣x∣∣2最小的一个。
当矩阵 A A A的行数多于列数时,可能没有解。在这种情况下,通过伪逆得到的 x x x使得 A x Ax Ax和y 的 的 的欧几里得距离 ∣ ∣ A x − y ∣ ∣ 2 ||Ax-y||_2 ∣∣Ax−y∣∣2最小