趋近智
数字1在算术中有一个特殊性质:任何数乘以1,结果保持不变。例如,5×1=5。这个数被称为乘法单位元。矩阵代数也有类似的想法,它被称为单位矩阵。
单位矩阵,通常记作I,是一个方阵(行数和列数相等),其主对角线上的元素是1,其他所有元素都是0。主对角线从左上角延伸到右下角。
以下是2x2和3x3的单位矩阵:
I2=[1001] I3=100010001下标,例如I2中的2,表示矩阵的大小。通常,大小由具体情况决定,所以我们只写I。
单位矩阵的决定性特点是,当你用它乘以任何矩阵A时,结果仍然是A,没有变化。乘法必须是有效的,这意味着维度必须匹配。对于任何n×m矩阵A:
AIm=A InA=A让我们用一个2x2矩阵来观察这一点。假设我们有矩阵A:
A=[2435]当我们用2x2单位矩阵I2乘以A时:
AI=[2435][1001]=[(2⋅1+3⋅0)(4⋅1+5⋅0)(2⋅0+3⋅1)(4⋅0+5⋅1)]=[2435]正如你所看到的,结果是原始矩阵A。
那么,这如何帮助我们解决本章的主要问题Ax=b呢?
回想一下你是如何解像5x=10这样的简单代数方程的。你通过将方程两边乘以5的倒数,即51来分离出x。这使得x的系数变为1:
(51⋅5)x=51⋅10简化后得到:
1⋅x=2单位矩阵I在矩阵方程中扮演着数字“1”的角色。我们解决Ax=b的目标是找到一种方法来分离向量x。我们不能“除以”矩阵,但我们可以乘以一个称为逆矩阵的特殊矩阵(我们将在下一节讨论),以达到类似的效果。这个过程会是这样的:
A−1Ax=A−1b其中乘积A−1A得到单位矩阵I:
Ix=A−1b并且由于Ix=x,我们得到解:
x=A−1b单位矩阵是我们试图在方程一侧达到的目标,以找到我们的解。
NumPy使创建单位矩阵变得简单。你可以使用np.identity()函数,它接受一个整数参数来指定大小。
import numpy as np
# 创建一个3x3单位矩阵
I_3 = np.identity(3)
print("一个3x3单位矩阵:")
print(I_3)
# 创建一个5x5单位矩阵
I_5 = np.identity(5)
print("\n一个5x5单位矩阵:")
print(I_5)
让我们使用NumPy来验证乘法单位元性质。我们将创建一个矩阵A并将其乘以I。在NumPy中,@运算符用于矩阵乘法。
# 定义一个3x2矩阵 A
A = np.array([
[8, 1],
[6, 3],
[5, 7]
])
# 为 A @ I 创建一个2x2单位矩阵
I_2 = np.identity(2)
# 执行乘法运算
result = A @ I_2
print("矩阵 A:\n", A)
print("\n单位矩阵 I:\n", I_2)
print("\nA @ I 的结果:\n", result)
# 我们可以检查结果是否与原始矩阵 A 相同
are_equal = np.array_equal(A, result)
print(f"\n结果与 A 相同吗? {are_equal}")
正如代码所示,将A乘以一个正确大小的单位矩阵会得到A本身。这个简单而有用的矩阵是你求解方程组时会经常用到的基本工具。
这部分内容有帮助吗?
np.identity()函数生成单位矩阵。© 2026 ApX Machine Learning用心打造