我有一个矩阵T
:
[ 0.2 0.4 0.4]
[ 0.8 0.2 0. ]
[ 0.8 0. 0.2]
我想将它乘以一个lhs行向量(s1,s2,s3),并将乘积表达式设置为对应的rhs列向量的元素,因此
^{pr2}$这相当于求解三个线性方程组,从中可以解出特征向量元素的比例因子。将元素之和设为1,就得到了单位特征向量。在
例如,首先,将lhs行向量乘以矩阵的第一列,然后将乘积设为s1,得到0.2x1+0.8xs2+0.8xs3=s1。在
另外两个方程是通过将lhs行向量乘以矩阵的第二列和第三列,并将乘积分别设置为s2和s3得到的。 求解这三个方程将得到s1、s2和s3之间的相对值。将这些值的和设为1,就可以得到单位特征向量元素。在
我想用python来实现这一点,下面是我的尝试:
>>> import numpy as np
>>> from scipy.linalg import eig
>>> np.set_printoptions(precision=4)
>>> T = np.mat("0.2 0.4 0.4;0.8 0.2 0.0;0.8 0.0 0.2")
>>> np.set_printoptions(precision=4)
>>> w, vl, vr = eig(T, left=True)
>>> vlUnit = vl[:,1]/sum(vl[:,1])
>>> s = vlUnit
>>> s
array([ 7.3543e+15, -3.6772e+15, -3.6772e+15])
所以我知道vl
和{numpy.array
,而{
我也看不懂s
的结果。在
我转换了它的7354300000000000, -3677200000000000, 3677200000000000
,这对我来说不太合适。我做错什么了??在
谢谢
克里斯
这将给出v1单位矢量:
相关问题 更多 >
编程相关推荐