📜  基本运算求矩阵的逆矩阵12年级数学(1)

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

基本运算求矩阵的逆矩阵

在线性代数中,矩阵的逆矩阵是一个很重要的概念。矩阵的逆矩阵在很多领域都有广泛的应用,比如在工程学、物理学、经济学中的线性方程组求解、计算机图形学中的几何变换等。

本文将介绍如何使用基本运算求矩阵的逆矩阵,主要涉及到高斯-约旦消元法和初等变换法。

高斯-约旦消元法

高斯-约旦消元法是打通矩阵的逆矩阵最常用的方法之一。它通过矩阵变化的方式来求出矩阵的逆矩阵。

原始矩阵

我们首先需要一个原始矩阵,假设原始矩阵为A,它的大小为n*m,其中n表示矩阵的行数,m表示矩阵的列数。

A = [
    [1, 2],
    [3, 4]
]
求单位矩阵

接下来,我们需要求出一个对角线上全为1的矩阵,称为单位矩阵I。其大小与原始矩阵A相同。

I = [
    [1, 0],
    [0, 1]
]
矩阵变换

接下来,我们将原始矩阵A和单位矩阵I按照以下方式拼接起来,并对它们进行初等变换(即加减乘除变换)。

[A | I]

初等变换分为以下三种:

  • 交换矩阵的两行或两列;
  • 用一个非零标量乘以矩阵的某行或某列;
  • 将两行(或两列)中的一个乘以某个非零标量,并加到另一行(或另一列)上。

我们通过一系列的初等变换,将矩阵A变换成单位矩阵I,同时将单位矩阵I变换成A的逆矩阵B。

# 将第2行乘以-3,加到第1行
A[0][0] += -3*A[1][0]
A[0][1] += -3*A[1][1]
I[0][0] += -3*I[1][0]
I[0][1] += -3*I[1][1]

# 将第1行除以-2
A[0][0] /= -2
A[0][1] /= -2
I[0][0] /= -2
I[0][1] /= -2

# 将第2行除以2
A[1][0] /= 2
A[1][1] /= 2
I[1][0] /= 2
I[1][1] /= 2

# 将第1列加上2倍的第2列
A[0][1] += 2*A[1][1]
I[0][1] += 2*I[1][1]

# 将第2列减去3倍的第1列
A[1][0] += -3*A[0][0]
I[1][0] += -3*I[0][0]

# 将第1列除以2
A[0][0] /= 2
I[0][0] /= 2

# 最后得到的单位矩阵即为矩阵的逆矩阵
B = I

最终得到的逆矩阵B为:

B = [
    [-2, 1],
    [1.5, -0.5]
]
初等变换法

除了高斯-约旦消元法之外,还有一种方法可以求出矩阵的逆矩阵,那就是初等变换法。初等变换法的基本思想是通过初等变换将原始矩阵A变成一个单位矩阵I,同时将单位矩阵I变成矩阵的逆矩阵B。

与高斯-约旦消元法类似,初等变换法也分为以下三种:

  • 交换矩阵的两行或两列;
  • 用一个非零标量乘以矩阵的某行或某列;
  • 将两行(或两列)中的一个乘以某个非零标量,并加到另一行(或另一列)上。

我们还是以矩阵A为例,假设矩阵A的大小为nn,可以将单位矩阵I逐行连接在A的右侧,形成一个2nn的矩阵:

# 初始化一个2n*n的矩阵
C = [[0]*(2*n) for _ in range(n)]

# 将A右侧连接一个单位矩阵I
for i in range(n):
    C[i][0:n] = A[i]
    C[i][n+i] = 1

我们通过一系列的初等变换,得到最终的逆矩阵B。

# 将第1行除以A[0][0]
k = 1/A[0][0]
for j in range(2*n):
    C[0][j] *= k

# 将第1行加到第2行上
k = -C[1][0]
for j in range(2*n):
    C[1][j] += k*C[0][j]

# 将第2行加到第1行上
k = -C[0][n+1]
for j in range(2*n):
    C[0][j] += k*C[1][j]

# 将第2行除以A[1][1]
k = 1/A[1][1]
for j in range(2*n):
    C[1][j] *= k

# 此时C的左侧2n*2n部分已经变成了单位矩阵,右侧变成了逆矩阵
B = [[0]*n for _ in range(n)]
for i in range(n):
    B[i] = C[i][n:2*n]

最终得到的逆矩阵B为:

B = [
    [-2, 1],
    [1.5, -0.5]
]
总结

通过高斯-约旦消元法和初等变换法,我们都可以求出矩阵的逆矩阵。如果矩阵较大,使用高斯-约旦消元法可能更加高效;如果矩阵较小,使用初等变换法可能更加简单。无论哪种方法,掌握基本的矩阵运算和初等变换方式是非常重要的。