作为编程中比较简单的编程方法,python可以实现线性计算,numpy库提供矩阵操作,可以实现矩阵特征向量的获取,还可以实现scipynumpy库提供的矩阵操作功能是正确的numpy库提供矩阵操作的扩展。本文介绍了计算python中矩阵特征向量的两种方法:1、使用numpy.linalg.eig(a)函数;2、使用scipy.linalg.eig()计算方阵的特征向量(扩展numpy方法的扩展方法)。
一、使用numpy.linalg.eig(a)函数
参数:
a:计算奇异值和右奇异值的方阵。
返回值:
w:特征值。每个特征值根据其多重性重复。除非虚数部分为0,否则该数组将是一种复杂的类型。当传输的参数a为实数时,特征值为实数。
v:特征向量。
使用实例
>>>fromnumpyimportlinalgasLA >>>a=np.array([1,1j],[-1j,1]]) >>>w,v=LA.eig(a) >>>w;v array([2.00000000e+00000+000.j,5.98651912e-36+0.j])#i.e.,{2,0} array(0.70710678j,0.70710678j,0.70710678+00.j], [0.70710678+0.j,0.000000+0.70710678j]) >>>a=np.array([1+1e-9,0],[0,1-1e-9]] >>>#Theor.e-valuesare1+/-1e-9 >>>w,v=LA.eig(a) >>>w;v array([1.,1.]) array([[1.,0.], [0.,1.]])
使用scipy.linalg.eig()计算方阵的特征向量(numpy方法的扩展)
1、语法格式
print('Eig:',lg.eig(arr))#求矩阵arr的特征向量
2、使用实例
#coding:utf-8 from__future__importpision fromscipyimportlinalgasla fromscipyimportoptimize importsympy importnumpyasnp sympy.init_printing() importmatplotlib.pyplotasplt #使用scipy求解矩阵的特征值 A=np.array([[1,[3,5,3],[5,3],[5,3,9]] evals,evecs=la.eig(A) eigvalues=la.eigvalsh(A)
以上是计算python中矩阵特征向量的两种方法。我希望它能帮助你~