Logo
Section 1 / 7

构建与求解线性方程

在本课程中,你将学习如何在 Python 中构建并求解线性方程组。

导入

构建与求解线性方程

在本课程中,你将学习如何在 Python 中构建并求解线性方程组。

NumPy 的线性代数模块 linalg 提供了多种功能,包括求解线性方程组的能力。这可以通过矩阵方法实现。

假设我们有以下线性方程组:

2x+3y+z=172x+3y+z=17

3x+4y+2z=253x+4y+2z=25

x+y−z=6x+y-z=6

我们需要将这些方程转换为 AX=bAX=b 的形式,并求解 XX。

[23134211−1][xyz]=[17256]\begin{bmatrix}2 & 3 & 1 \\3 & 4 & 2 \\1 & 1 & -1 \end{bmatrix} \begin{bmatrix}x \\y \\z \end{bmatrix} = \begin{bmatrix}17 \\25 \\6 \end{bmatrix}

构建线性方程

在求解线性方程组之前,重要的是使用任意一种数组创建方法,将这些方程转化为 Python 能理解的格式。让我们看一个例子:

1import numpy as np 2 3A = np.array([[2, 3, 1], [3, 4, 2], [1, 1, -1]]) # 构建一个二维数组 4b = np.array([17, 25, 6]) # 构建一个一维数组 5 6print(A) 7print(b)

求解方程

该系统可以使用 linalg 子包中的 solve 方法求解。solve 方法接收一个二维数组(矩阵)和一个一维数组(右侧向量)作为输入,并返回解。

1import numpy as np 2 3A = np.array([[2, 3, 1], [3, 4, 2], [1, 1, -1]]) 4b = np.array([17, 25, 6]) 5 6x = np.linalg.solve(A, b) 7print(x)

为了验证解是否正确,我们需要将数组 A 中存储的矩阵与待验证的解 x 相乘。我们可以使用 np.dot() 方法对输入参数执行矩阵乘法。需要注意的是,矩阵乘法的顺序会影响计算结果。

1import numpy as np 2 3A = np.array([[2, 3, 1], [3, 4, 2], [1, 1, -1]]) 4b = np.array([17, 25, 6]) 5 6x = np.linalg.solve(A, b) 7print(np.dot(A, x))

由于结果等于矩阵 b,因此解是正确的。


下一课将讨论如何求矩阵的特征向量和特征值。

绘图

特征值和特征向量