齐次线性方程组及python求解

时间:2025-04-01 07:05:21

齐次线性方程组的概念

齐次线性方程组是指所有常数项都为零的线性方程组,其一般形式为:

a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = 0 a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n = 0 a11x1+a12x2++a1nxn=0
a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = 0 a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n = 0 a21x1+a22x2++a2nxn=0
⋮ \vdots
a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n = 0 a_{m1}x_1 + a_{m2}x_2 + \cdots + a_{mn}x_n = 0 am1x1+am2x2++amnxn=0

其中, a i j a_{ij} aij 是系数, x i x_i xi 是未知数,方程组中的常数项都是0。

求解方法

  1. 高斯消元法:通过行变换将系数矩阵转换为行最简形式,从而找到方程组的解。高斯消元法是一种求解线性方程组的算法,它通过对方程组的增广矩阵进行行变换,将矩阵转换为行阶梯形或行最简形,从而找到方程组的解。对于齐次线性方程组,由于常数项都是0,所以增广矩阵就是系数矩阵。

以下是使用高斯消元法求解齐次线性方程组的步骤:

写出系数矩阵:将方程组的系数写成矩阵形式 A A A

进行行变换:通过以下三种基本行变换将矩阵转换为行阶梯形或行最简形:

  • 交换两行。
  • 将某一行乘以一个非零常数。
  • 将某一行加上另一行的倍数。

找到解:当矩阵转换为行最简形时,可以很容易地读出方程组的解。

考虑以下齐次线性方程组:

x 1 + 2 x 2 + 3 x 3 = 0 x_1 + 2x_2 + 3x_3 = 0 x1+2x2+3x3=0
4 x 1 + 5 x 2 + 6 x 3 = 0 4x_1 + 5x_2 + 6x_3 = 0 4x1+5x2+6x3=0
7 x 1 + 8 x 2 + 9 x 3 = 0 7x_1 + 8x_2 + 9x_3 = 0 7x1+8x2+9x3=0

系数矩阵 A A A 为:

A = ( 1 2 3 4 5 6 7 8 9 ) A = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} A= 147258369

我们可以通过高斯消元法将这个矩阵转换为行最简形。以下是具体的行变换步骤:

从第二行减去第一行的4倍:
R 2 ← R 2 − 4 R 1 R_2 \leftarrow R_2 - 4R_1 R2R24R1
( 1 2 3 0 − 3 − 6 7 8 9 ) \begin{pmatrix} 1 & 2 & 3 \\ 0 & -3 & -6 \\ 7 & 8 & 9 \end{pmatrix} 107238369

从第三行减去第一行的7倍:
R 3 ← R 3 − 7 R 1 R_3 \leftarrow R_3 - 7R_1 R3R37R1
( 1 2 3 0 − 3 − 6 0 − 6 − 12 ) \begin{pmatrix} 1 & 2 & 3 \\ 0 & -3 & -6 \\ 0 & -6 & -12 \end{pmatrix} 1002363612

将第二行除以-3:
R 2 ← R 2 − 3 R_2 \leftarrow \frac{R_2}{-3} R23R2
( 1 2 3 0 1 2 0 − 6 − 12 ) \begin{pmatrix} 1 & 2 & 3 \\ 0 & 1 & 2 \\ 0 & -6 & -12 \end{pmatrix} 1002