用Numpy解线性方程组

矩阵可以通过线性方式把一个向量变换成另一个向量,因此从数值计算的角度看,
这种操作对应于一个线性方程组。Numpy.linalg中的 solve() 子例程可以求解类似 Ax=b 这种形式的线性方程组,其中A是一个矩阵,b是一维或者二维数组,二x是未知量。下面介绍如何使用 dot() 函数来计算两个浮点型数组的点积(dot product)。

这里举例说明解线性方程组的过程,具体步骤如下所示:

1、创建矩阵A和数组b

1
2
3
4
5
6
7
8
9
>>> import numpy as np
>>> A = np.mat("1 -2 1; 0 2 -8; -4 5 9") # mat函数可以将目标数据的类型转换为矩阵(matrix)
>>> A
matrix([[ 1, -2, 1],
[ 0, 2, -8],
[-4, 5, 9]])
>>> b = np.array([0, 8, -9])
>>> b
array([ 0, 8, -9])

2、调用solve()函数

1
2
3
>>> x = np.linalg.solve(A, b)
>>> x
array([29., 16., 3.])

如上述所示,得出该线性方程组的解为:[29., 16., 3.]

3、利用dot()函数进行验算

1
2
>>> np.dot(A, x)
matrix([[ 0., 8., -9.]])
坚持原创技术分享,您的支持将鼓励我继续创作!