第一篇在这里:Numpy库进阶教程(一)求解线性方程组
求解特征值和特征向量
关于特征值和特征向量的介绍,可以点击这里
首先创建一个矩阵
In [1]: A=mat("3 -2;1 0")
In [2]: A
Out[2]:
matrix([[ 3, -2],
[ 1, 0]])
在numpy.linalg模块中,eigvals函数可以计算矩阵的特征值,而eig函数可以返回一个包含特征值和对应特征向量的元组。
使用eigvals函数求解特征值
In [3]: linalg.eigvals(A)
Out[3]: array([ 2., 1.])
使用eig函数求解特征值和特征向量。该函数将返回一个元祖,按列排放着特征值和对应的特征向量,其中第一列为特征值,第二列为特征向量。
In [5]: B=eig(A)
In [6]: B
Out[6]:
(array([ 2., 1.]), matrix([[ 0.89442719, 0.70710678],
[ 0.4472136 , 0.70710678]]))
使用dot函数使矩阵相乘验证求得的解是否正确
eigenvalues, eigenvectors = np.linalg.eig(A)
print "First tuple of eig", eigenvalues
print "Second tuple of eig\n", eigenvectors
for i in range(len(eigenvalues)):
print "Left", np.dot(A, eigenvectors[:,i])
print "Right", eigenvalues[i] * eigenvectors[:,i]
print
输出为
Left [[ 1.78885438]
[ 0.89442719]]
Right [[ 1.78885438]
[ 0.89442719]]
Left [[ 0.70710678]
[ 0.70710678]]
Right [[ 0.70710678]
[ 0.70710678]]
计算矩阵行列式
In [51]: A = np.mat("3 4;5 6")
In [52]: print "A\n", A
A
[[3 4]
[5 6]]
使用det函数计算行列式
In [53]: print "Determinant", np.linalg.det(A)
Determinant -2.0
时间: 2024-10-11 21:46:55