np.linalg模块是NumPy中提供的一个数学函数库,它提供了一系列线性代数函数,可以用来解决各种线性代数问题。np.linalg模块提供的函数可以用来求解矩阵的行列式、特征值、特征向量、逆矩阵、解线性方程组等,是科学计算中经常使用的线性代数函数。
np.linalg模块中最常用的函数有:
- np.linalg.det:求解矩阵的行列式
- np.linalg.eig:求解矩阵的特征值和特征向量
- np.linalg.inv:求解矩阵的逆矩阵
- np.linalg.solve:求解线性方程组
下面给出np.linalg模块中几个常用函数的使用方法:
求解矩阵的行列式
import numpy as np # 定义一个3x3的矩阵 A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 计算矩阵A的行列式 detA = np.linalg.det(A) # 输出行列式 print(detA)
输出结果:
-9.51619735392994e-16
求解矩阵的特征值和特征向量
import numpy as np # 定义一个3x3的矩阵 A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 计算矩阵A的特征值和特征向量 eigvals, eigvecs = np.linalg.eig(A) # 输出特征值和特征向量 print(eigvals) print(eigvecs)
输出结果:
[ 1.61168440e+01 -1.11684397e+00 -9.75918483e-16] [[-0.23197069 -0.78583024 0.40824829] [-0.52532209 -0.08675134 -0.81649658] [-0.8186735 0.61232756 0.40824829]]
求解矩阵的逆矩阵
import numpy as np # 定义一个3x3的矩阵 A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 计算矩阵A的逆矩阵 invA = np.linalg.inv(A) # 输出逆矩阵 print(invA)
输出结果:
[[-4.50359963e+15 9.00719925e+15 -4.50359963e+15] [ 9.00719925e+15 -1.80143985e+16 9.00719925e+15] [-4.50359963e+15 9.00719925e+15 -4.50359963e+15]]
求解线性方程组
import numpy as np # 定义一个3x3的矩阵 A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 定义一个3x1的矩阵 b = np.array([1, 2, 3]) # 求解线性方程组 x = np.linalg.solve(A, b) # 输出解 print(x)
输出结果:
[-2.23606798e-16 1.00000000e+00 -1.00000000e+00]