数字1在普通乘法中作为乘法单位元。如果将任何数字乘以1,结果仍是该数字。例如,$5 \times 1 = 5$ 和 $1 \times (-3) = -3$。这个属性使得数字1成为标量乘法的乘法单位元。线性代数中,矩阵乘法也有类似思想。有一个特殊的矩阵,它的行为与数字1相似。当你用这个特殊矩阵乘以另一个矩阵时,原矩阵保持不变。这个特殊矩阵被称为单位矩阵,通常用$I$表示。什么是单位矩阵?单位矩阵$I$始终是一个方阵,这意味着它的行数和列数相等。它有非常明确的结构:它的主对角线(从左上角到右下角的对角线)上的元素是1。主对角线之外的所有其他元素都是0。以下是一些例子:$2 \times 2$单位矩阵,有时写作$I_2$: $$ I_2 = \begin{bmatrix} 1 & 0 \ 0 & 1 \end{bmatrix} $$$3 \times 3$单位矩阵,$I_3$: $$ I_3 = \begin{bmatrix} 1 & 0 & 0 \ 0 & 1 & 0 \ 0 & 0 & 1 \end{bmatrix} $$更大的方阵以此类推。下标(如$I_2$中的'2')表示方阵的大小($n \times n$)。通常,大小可以从矩阵乘法的背景中清楚看出,因此我们可能只写$I$。矩阵乘法中的单位元性质单位矩阵$I$的基本性质是,对于任何矩阵$A$,只要乘法有定义(即维度兼容),以下关系成立:$$ AI = A $$且$$ IA = A $$让我们看一个简单例子。考虑矩阵$A$: $$ A = \begin{bmatrix} 2 & 3 \ 4 & 5 \end{bmatrix} $$现在,将$A$乘以$2 \times 2$单位矩阵$I_2$: $$ AI_2 = \begin{bmatrix} 2 & 3 \ 4 & 5 \end{bmatrix} \begin{bmatrix} 1 & 0 \ 0 & 1 \end{bmatrix} $$如果我们逐步进行矩阵乘法:左上角元素:$(2 \times 1) + (3 \times 0) = 2 + 0 = 2$右上角元素:$(2 \times 0) + (3 \times 1) = 0 + 3 = 3$左下角元素:$(4 \times 1) + (5 \times 0) = 4 + 0 = 4$右下角元素:$(4 \times 0) + (5 \times 1) = 0 + 5 = 5$结果矩阵是: $$ AI_2 = \begin{bmatrix} 2 & 3 \ 4 & 5 \end{bmatrix} = A $$ 你可以按另一种顺序进行乘法,$I_2A$,并验证结果也是$A$。单位矩阵$I$在矩阵乘法中作为中性元素,非常类似于数字1在标量乘法中的作用。为什么这对于解$Ax = b$很重要让我们回顾一个简单的标量方程,例如$5x = 10$。你如何求解$x$?你将方程两边乘以5的乘法逆元(或倒数),即$1/5$: $$ (1/5) \times 5x = (1/5) \times 10 $$ 这会简化,因为$(1/5) \times 5 = 1$: $$ 1x = 2 $$ 且由于$1x$就是$x$: $$ x = 2 $$ 重要的步骤是乘以逆元$(1/5)$,使$x$的系数变为1(乘法单位元),从而分离出$x$。当我们希望解$Ax = b$形式的矩阵方程时,单位矩阵$I$也扮演类似的角色。目标通常是分离出向量$x$。如果我们能找到一个特殊的矩阵,我们称之为$A^{-1}$(读作“A逆”),它具有$A^{-1}A = I$的性质,那么我们就可以将方程$Ax = b$两边乘以这个$A^{-1}$矩阵(从左侧): $$ A^{-1}(Ax) = A^{-1}b $$ 利用矩阵乘法的结合律,我们可以重新组合左侧: $$ (A^{-1}A)x = A^{-1}b $$ 现在,由于我们选择了$A^{-1}$,使得$A^{-1}A = I$: $$ Ix = A^{-1}b $$ 最后,就像$1x = x$一样,将单位矩阵$I$乘以向量$x$会使向量保持不变($Ix = x$): $$ x = A^{-1}b $$ 这种代数操作表明,如果我们能找到这个“逆”矩阵$A^{-1}$,我们就有办法找到解向量$x$。单位矩阵$I$是这个原理的依据,它表示原矩阵$A$的作用已被抵消,从而使$x$被分离。我们将在下一节讨论这个逆矩阵$A^{-1}$。在NumPy中创建单位矩阵NumPy通过numpy.eye(n)函数使得创建单位矩阵变得简单直接,该函数会生成一个$n \times n$的单位矩阵。import numpy as np # 创建一个2x2单位矩阵 I2 = np.eye(2) print("2x2 单位矩阵:") print(I2) # 创建一个4x4单位矩阵 I4 = np.eye(4) print("\n4x4 单位矩阵:") print(I4) # 创建一个整数类型的3x3单位矩阵 I3_int = np.eye(3, dtype=int) print("\n3x3 整数单位矩阵:") print(I3_int)执行这段代码将输出:2x2 单位矩阵: [[1. 0.] [0. 1.]] 4x4 单位矩阵: [[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.]] 3x3 整数单位矩阵: [[1 0 0] [0 1 0] [0 0 1]]请注意,NumPy默认通常使用浮点数(例如1.和0.)。如果你需要特定地使用整数或其他类型,可以通过dtype参数指定数据类型,如第三个例子所示。了解了单位矩阵及其类似于数字1的作用后,我们就可以讨论矩阵逆$A^{-1}$,以及它如何帮助解决线性方程组。