单位特征向量乘以单位矩阵

2024-05-21 03:48:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个矩阵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,这对我来说不太合适。我做错什么了??在

谢谢

克里斯


Tags: importnumpy元素s3np单位矩阵乘积