线性方程组
numpy.linalg.eig()
函数求解特征值和特征向量。numpy.linalg.solve()
函数求解未知量。下面分别给出齐次和非齐次线性方程组的例子,我们将使用 Python 和 NumPy 来求解这些例子。
import numpy as np
# 定义系数矩阵 A
A = np.array([[3, 1], [1, 3]])
# 使用 numpy.linalg.eig() 求解特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)
print("Eigenvalues:", eigenvalues)
print("Eigenvectors:", eigenvectors)
import numpy as np
# 定义系数矩阵 A 和右侧向量 b
A = np.array([[2, -1, 0], [-1, 2, -1], [0, -1, 2]])
b = np.array([1, 0, -1])
6
# 使用 numpy.linalg.solve() 求解未知量
x = np.linalg.solve(A, b)
print("Solution x:", x)
调用过程
import numpy as np
# 齐次线性方程组示例
# 定义系数矩阵 A
A_homogeneous = np.array([[3, 1], [1, 3]])
# 使用 numpy.linalg.eig() 求解特征值和特征向量
eigenvalues_homogeneous, eigenvectors_homogeneous = np.linalg.eig(A_homogeneous)
# 非齐次线性方程组示例
# 定义系数矩阵 A 和右侧向量 b
A_inhomogeneous = np.array([[2, -1, 0], [-1, 2, -1], [0, -1, 2]])
b_inhomogeneous = np.array([1, 0, -1])
# 使用 numpy.linalg.solve() 求解未知量
x_inhomogeneous = np.linalg.solve(A_inhomogeneous, b_inhomogeneous)
eigenvalues_homogeneous, eigenvectors_homogeneous, x_inhomogeneous
调用结果
(array([4., 2.]),
array([[ 0.70710678, -0.70710678],
[ 0.70710678, 0.70710678]]),
array([ 0.5, 0. , -0.5]))
特征值:
Eigenvalues: [4. 2.]
特征向量:
Eigenvectors: [[ 0.70710678 -0.70710678]
[ 0.70710678 0.70710678]]
解:
Solution x: [ 0.5 0. -0.5]
从上面的结果可以看出: