9 NumPy求解线性方程
线性代数是数学的一个重要分支。numpy.linalg模块包含线性代数的函数。使用这个模块,我们可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等。
9.1 数学概念
根据矩阵的乘法,可以将线性方程组写成矩阵形式。
1). n元齐次线性方程组 $A_{m\times n}x_n = 0$
2). n元非齐次线性方程组 $A_{m\times n}x_n = b$
3). 称A为方程组的系数矩阵,B=(A,b)为非齐次线性方程组的增广矩阵。
9. 1.1 判定方程有解没解的定理
定理1:n元齐次线性方程组 $A_{m\times n}x_n = 0$有非零解的充分必要条件的系数矩阵A的秩即R(A)
定理2:n元非齐次线性方程组 $A_{m\times n}x_n = b$有解的充分必要条件的系数矩阵A的秩等于增广矩阵B=(A,b)的秩, R(A) = R(A, b) = n有唯一解,R(A) = R(A, b) < n有无穷个解。
9.1.2 NumPy里求秩序函数
Numpy的linalg模块里的matrix_rank函数可以求得矩阵的秩。
import numpy as np
c = np.eye(2, dtype=int)
print c, '# c'
print 'rank->', np.linalg.matrix_rank(c)
程序执行结果:
[[1 0]
[0 1]]# c
rank-> 2
9.2 求方程组的解
9.2.1