📜  矩阵公式的逆(1)

📅  最后修改于: 2023-12-03 15:27:17.709000             🧑  作者: Mango

矩阵公式的逆

在线性代数中,矩阵的逆是一个非常重要的概念。矩阵的逆可以让我们在求解某些线性方程组时更加方便,也可以在统计、物理等领域被广泛地应用。

矩阵的逆表示为 $A^{-1}$,对于一个矩阵 $A$,如果存在一个矩阵 $A^{-1}$,使得 $A \times A^{-1} = A^{-1} \times A = I_n$,其中 $I_n$ 表示 $n$ 阶单位矩阵,则称矩阵 $A$ 是可逆的,$A^{-1}$ 是 $A$ 的逆。

逆矩阵的性质
  1. 如果 $A$ 可逆,则 $A^{-1}$ 唯一
  2. 如果 $A$ 可逆,则 $A^{-1}$ 也可逆,并且 $(A^{-1})^{-1}=A$
  3. 如果 $A$ 和 $B$ 都可逆,则 $AB$ 也可逆,并且 $(AB)^{-1}=B^{-1}A^{-1}$
  4. 如果 $A$ 可逆,则 $A^T$ 也可逆,并且 $(A^T)^{-1}=(A^{-1})^T$
求解逆矩阵
初等变换法

对于一个$n\times n$的矩阵$A$,我们可以通过初等变换的方式求得它的逆矩阵。其中初等变换包括:

  1. 交换矩阵的任意两行或任意两列
  2. 用非零常数乘以矩阵的任意一行或任意一列
  3. 将矩阵的某一行或某一列加上另一行或另一列的若干倍

具体步骤:

首先,将 $A$ 矩阵和一个 $n\times n$ 的单位矩阵 $I$ 水平拼接起来,得到一个 $n\times 2n$ 的矩阵,即$[A I]$。然后通过初等变换,将矩阵 $[A I]$ 变为 $[I B]$ 的形式。此时,$B$ 就是 $A$ 的逆矩阵。

代码实现:

import numpy as np

def invert_matrix(A):
    n = A.shape[0]
    # 水平拼接 A 和单位矩阵
    A_aug = np.hstack([A, np.eye(n)])
    # 初等变换
    for i in range(n):
        # 找到 A_aug[i][i] 不为零的行
        pivot = np.argmax(np.abs(A_aug[i:, i])) + i
        # 交换行
        A_aug[[i, pivot], :] = A_aug[[pivot, i], :]
        # 高斯消元
        A_aug[i, :] /= A_aug[i, i]
        for j in range(i + 1, n):
            A_aug[j] -= A_aug[j, i] * A_aug[i, :]
    # 反向代入
    for i in range(n - 1, 0, -1):
        for j in range(i):
            A_aug[j] -= A_aug[j, i] * A_aug[i, :]
    # 返回矩阵 B
    return A_aug[:, n:]
总结

矩阵的逆在线性代数、统计、物理等领域有着广泛的应用。求解逆矩阵的方法很多,其中比较常用的是初等变换法,通过初等变换将矩阵 $A$ 和单位矩阵 $I$ 水平拼接,并进行初等变换,求得 $A$ 的逆矩阵 $B$。