趋近智
本课程已归档: 现已推出包含更新教学大纲和改进内容的新版本。
矩阵逆 A−1 在矩阵乘法中起着倒数的作用,使得方程 Ax=b 有可能通过计算 x=A−1b 来求解。然而,就像普通算术中不能除以零一样,并非所有矩阵都有逆。这引出了一个基本问题:我们何时才能真正找到 A−1?
首先,一个重要事项:只有方阵(行数和列数相等的矩阵,例如2x2、3x3等)才可能具有逆矩阵。 如果一个矩阵不是方阵,这里定义的逆矩阵(AA−1=A−1A=I)就不适用。
对于方阵 A,存在两种情况:
如果 A 是可逆的,则方程组 Ax=b 恰好有一个唯一解,我们发现其为 x=A−1b。
想想简单的标量方程。方程 5x=10 有一个唯一解(x=2),因为 5 有一个乘法逆元(1/5)。相比之下,方程 0x=10 没有解。而方程 0x=0 有无限多个解(任何 x 都适用)。数字零没有乘法逆元。奇异矩阵在此上下文中,相当于数字零在矩阵中的对应情况。它们表示以某种方式“压缩”空间的变换,使得无法唯一地反转操作。
方阵的什么性质会导致其奇异?直观上,奇异性通常出现在矩阵包含冗余信息时。这通常意味着矩阵的一行或多行(或一列或多列)可以通过其他行(或列)的倍数相加或相减得到。发生这种情况时,我们称这些行(或列)是线性相关的。
我们再来看一个方程组:
x+2y2x+4y=3=6其矩阵形式为 Ax=b,具体如下:
A=(1224),x=(xy),b=(36)仔细观察矩阵 A。第二行 (24) 恰好是第一行 (12) 的 2 倍。行之间的这种线性相关性意味着矩阵 A 是奇异的。它没有逆矩阵。
这对方程有什么影响?第二个方程 2x+4y=6 仅仅是第一个方程 x+2y=3 乘以 2 得到的结果。它没有增加任何关于 x 和 y 的新约束或信息。任何满足第一个方程的 (x,y) 对都会自动满足第二个方程。由于对于两个变量只有一个独立的约束,因此存在无限多个解(直线 x+2y=3 上的所有点)。因为没有唯一解,我们无法找到逆矩阵 A−1。
那么,如果系统稍有不同呢?
x+2y2x+4y=3=7矩阵 A=(1224) 仍然是同一个奇异矩阵。但现在,第二个方程(2x+4y=7)与第一个方程(这意味着 2x+4y 必须等于 2×3=6)矛盾。由于方程不一致,该系统无解。同样,矩阵 A 的奇异性与缺乏唯一解相关。
将其与可逆矩阵进行对比:
A′=(1324)在这个矩阵中,第二行 (34) 不是 第一行 (12) 的倍数。这些行是线性独立的,这意味着它们提供了不同的信息。这个矩阵 A′ 是 可逆的(非奇异的),并且任何系统 A′x=b 都将有一个唯一解。
虽然理解线性相关性能够提供直观理解,但数学提供了一个精确的可逆性检验。每个方阵都关联着一个称为其行列式的单一数值。本课程中我们不会涵盖行列式的计算,但其规则本身是基本原则:
方阵 A 可逆当且仅当其行列式不为零。
如果 A 的行列式恰好为零,则该矩阵是奇异的(不可逆的)。
行列式为零是数学条件,它确认了矩阵行(和列)之间存在线性相关性。它表明矩阵涉及某种冗余或维度坍缩,使得逆矩阵不可能存在。
在使用像 Python 的 NumPy 库这样的计算工具时,您通常不需要自己计算行列式来检查可逆性,然后再求解系统或寻找逆矩阵。
np.linalg.inv(A) 计算奇异矩阵的逆,NumPy 通常会检测到这种情况并引发 LinAlgError,提示您矩阵是奇异的。np.linalg.solve(A, b) 来求解系统 Ax=b,如果 A 是奇异的,它通常也会引发 LinAlgError,因为唯一解不存在。还值得指出的是,在数值计算中,矩阵有时可能接近奇异。这意味着它们的行列式非常接近零。虽然理论上可逆,但处理此类矩阵可能导致数值不稳定,并在计算出的逆矩阵或解中产生较大的误差。NumPy 的算法通常是可靠的,但需要注意接近奇异的矩阵可能会导致问题。
总而言之,矩阵 A 可逆的能力取决于它是否是方阵且非奇异。奇异性与矩阵行或列内的线性相关性(冗余)相关,这在数学上对应于行列式为零。此条件阻止了 Ax=b 存在唯一解,从而使逆矩阵 A−1 未定义。幸运的是,数值计算库通常会为我们处理奇异性的识别。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造