伴随矩阵乘以原矩阵等于什么?
伴随矩阵乘以原矩阵等于什么?一个常见的技术问题是:为何对于任意 n 阶方阵 A,都有 A 的伴随矩阵 adj(A) 满足 adj(A)·A = A·adj(A) = det(A)·I?特别是在奇异矩阵(即 det(A)=0)的情况下,该等式如何成立?许多初学者误以为此时乘积应为零矩阵,但实际上结果是标量 0 与单位矩阵的乘积,即零矩阵。理解这一性质对掌握矩阵可逆性、求逆公式 A⁻¹ = adj(A)/det(A) 及其应用至关重要。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
希芙Sif 2025-09-21 04:50关注伴随矩阵与原矩阵乘积的数学本质及其在工程中的意义
1. 什么是伴随矩阵?——基础定义与构建方式
对于一个 n 阶方阵 A,其伴随矩阵(adjugate matrix),记作 adj(A),是由 A 的代数余子式构成的矩阵的转置。具体地:
- 设 \( C_{ij} \) 为元素 \( a_{ij} \) 的代数余子式;
- 构造余子式矩阵 \( C = [C_{ij}] \);
- 则 \( \text{adj}(A) = C^T \)。
例如,对 2×2 矩阵:
\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix},\quad \text{adj}(A) = \begin{bmatrix} d & -b \\ -c & a \end{bmatrix} \]这一结构是后续推导的核心起点。
2. 核心等式:adj(A)·A = A·adj(A) = det(A)·I
这是线性代数中一个关键恒等式。我们从分量角度分析为何成立。
维度 A adj(A) det(A) adj(A)·A 2×2 \( \begin{smallmatrix}1&2\\3&4\end{smallmatrix} \) \( \begin{smallmatrix}4&-2\\-3&1\end{smallmatrix} \) -2 \( -2I \) 3×3 任意 按余子式构造 行列式值 结果为 det(A)·I 该等式可通过展开矩阵乘法并利用拉普拉斯展开定理严格证明。
3. 数学证明路径:从余子式到行列式展开
考虑 adj(A)·A 的第 (i,j) 元素:
\[ [\text{adj}(A) \cdot A]_{ij} = \sum_{k=1}^{n} (\text{adj}(A))_{ik} a_{kj} = \sum_{k=1}^{n} C_{ki} a_{kj} \]当 i = j 时,上式即为按第 i 行展开的 det(A);
当 i ≠ j 时,它等价于将 A 的第 j 行替换为第 i 行后的行列式(两行相同 → 行列式为 0)。
因此:
\[ \text{adj}(A) \cdot A = \det(A) \cdot I \]同理可证左乘情况。
4. 奇异矩阵情形下的深入解析
当 det(A) = 0 时,A 不可逆,但 adj(A) 仍存在。
此时有:
\[ \text{adj}(A) \cdot A = A \cdot \text{adj}(A) = 0 \cdot I = \mathbf{0}_{n\times n} \]注意:这不是“未定义”或“无意义”,而是明确的零矩阵。
常见误解在于认为 adj(A) 必须为零矩阵才能满足此式,但实际上 adj(A) 可非零,只要其与 A 相乘后每一列都落在 A 的零空间中即可。
例如:
\[ A = \begin{bmatrix} 1 & 2 \\ 2 & 4 \end{bmatrix},\quad \text{adj}(A) = \begin{bmatrix} 4 & -2 \\ -2 & 1 \end{bmatrix},\quad \text{adj}(A)\cdot A = \begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix} \]5. 工程视角:在系统稳定性与故障检测中的应用
在控制系统中,状态转移矩阵若接近奇异,其伴随矩阵可用于评估系统退化程度。
代码示例(Python + NumPy)验证关系:
import numpy as np def verify_adj_identity(A): det_A = np.linalg.det(A) cofactors = np.zeros_like(A) for i in range(A.shape[0]): for j in range(A.shape[1]): minor = np.delete(np.delete(A, i, axis=0), j, axis=1) cofactors[i,j] = (-1)**(i+j) * np.linalg.det(minor) adj_A = cofactors.T lhs = adj_A @ A rhs = det_A * np.eye(A.shape[0]) print("adj(A)@A ≈ det(A)*I:", np.allclose(lhs, rhs)) return adj_A # 测试奇异矩阵 A_singular = np.array([[1,2],[2,4]]) verify_adj_identity(A_singular)6. 深层联系:与矩阵求逆公式的统一框架
当 det(A) ≠ 0 时,由 adj(A)·A = det(A)·I 可得:
\[ A^{-1} = \frac{1}{\det(A)} \text{adj}(A) \]这不仅是理论公式,在嵌入式系统或资源受限环境中,小规模矩阵求逆常直接使用伴随法实现。
流程图展示计算逻辑:
graph TD A[输入矩阵 A] --> B{det(A) == 0?} B -- 是 --> C[输出 adj(A), 用于分析零空间] B -- 否 --> D[计算代数余子式矩阵] D --> E[转置得 adj(A)] E --> F[计算 A⁻¹ = adj(A)/det(A)] F --> G[返回逆矩阵]7. 高阶推广:在张量与多维数组处理中的延伸思考
在机器学习中,高维数据常需降维或正则化处理。当协方差矩阵接近奇异时,使用 adj(A) 提供了一种避免显式求逆的数值稳定策略。
此外,在图神经网络中,图拉普拉斯矩阵的伪逆可通过伴随结构近似,尤其适用于大规模稀疏图。
这种思想也体现在 Tikhonov 正则化中:
\[ (A^TA + \lambda I)^{-1}A^T \approx \frac{\text{adj}(A^TA + \lambda I)}{\det(A^TA + \lambda I)}A^T \]其中分母不为零确保了稳定性。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报