Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python linalg.eig不';不要遵从佩龙·弗罗贝尼乌斯理论_Python_Matrix_Scipy - Fatal编程技术网

Python linalg.eig不';不要遵从佩龙·弗罗贝尼乌斯理论

Python linalg.eig不';不要遵从佩龙·弗罗贝尼乌斯理论,python,matrix,scipy,Python,Matrix,Scipy,更新: 它适用于scipy.sparse.linalg.eigs方法,但仍不适用于scipy.linalg.eigs 我有一个实的,正的,平方矩阵,我试图找到它的第一个(最大的)特征向量。根据Perron-Frobenius定理,最大的特征向量应该有所有的正项,但在我的例子中没有。以下是我构建矩阵的代码: def build_adj_matrix(G): matrix = np.zeros(shape=(34,34)) for i in range(0,34): for j i

更新:

它适用于
scipy.sparse.linalg.eigs方法
,但仍不适用于
scipy.linalg.eigs

我有一个实的,正的,平方矩阵,我试图找到它的第一个(最大的)特征向量。根据Perron-Frobenius定理,最大的特征向量应该有所有的正项,但在我的例子中没有。以下是我构建矩阵的代码:

def build_adj_matrix(G):
  matrix = np.zeros(shape=(34,34))

  for i in range(0,34):
    for j in range(0,34):
        if j+1 in G.adj[i+1]:
            matrix[i][j] = 1.00001
        else:
            matrix[i][j] = 0.00001

  return matrix
这是我检索特征向量的代码:

from scipy import linalg as LA

我的输出是:

   [  3.55489549e-01 +0.00000000e+00j   3.86861181e-01 +0.00000000e+00j
   3.17170097e-01 +0.00000000e+00j   2.77301505e-01 +0.00000000e+00j
   5.54686086e-01 +0.00000000e+00j  -1.97848347e-01 +0.00000000e+00j
  -1.71390654e-01 +0.00000000e+00j  -1.42227261e-02 +0.00000000e+00j
   1.87538203e-03 +0.00000000e+00j  -6.71077427e-02 +0.00000000e+00j
   5.93338345e-02 +0.00000000e+00j   3.80034428e-02 +0.00000000e+00j
  -1.51430299e-01 +0.00000000e+00j  -6.33215778e-02 +0.00000000e+00j
   1.43005327e-01 +0.00000000e+00j  -7.33049336e-02 +0.00000000e+00j
  -1.64571850e-01 +0.00000000e+00j   5.91985880e-02 +0.00000000e+00j
  -1.31441525e-01 +0.00000000e+00j   1.35954155e-01 +0.00000000e+00j
  -2.30981270e-02 +0.00000000e+00j  -1.86533000e-01 +0.00000000e+00j
   7.84949962e-02 +0.00000000e+00j   9.41416444e-06 +0.00000000e+00j
  -1.92116017e-17 +0.00000000e+00j   1.10600656e-16 +0.00000000e+00j
   1.75023609e-17 -1.35088126e-17j   1.75023609e-17 +1.35088126e-17j
   4.75348687e-17 +0.00000000e+00j  -1.99584575e-18 +2.25485520e-17j
  -1.99584575e-18 -2.25485520e-17j  -6.78262748e-18 -8.13743189e-17j
  -6.78262748e-18 +8.13743189e-17j   8.83354389e-17 +0.00000000e+00j]

如果您能创建一个我们可以运行并尝试重现问题的模型,这将非常有用。输出中有些地方看起来不正确:代码显示为
print(evecs)
,但输出不是34x34矩阵。输出实际上是
evals
还是仅仅是
evecs
的一行或一列?M的决定因素是什么?它接近单数吗?对于输出,打印
evals[0]
evecs[:,0]
@hpaulj在这里应该无关紧要。Perron Frobenius也适用于奇异矩阵。我怀疑Warren是对的,我们看的是一行,而特征向量存储为列。
   [  3.55489549e-01 +0.00000000e+00j   3.86861181e-01 +0.00000000e+00j
   3.17170097e-01 +0.00000000e+00j   2.77301505e-01 +0.00000000e+00j
   5.54686086e-01 +0.00000000e+00j  -1.97848347e-01 +0.00000000e+00j
  -1.71390654e-01 +0.00000000e+00j  -1.42227261e-02 +0.00000000e+00j
   1.87538203e-03 +0.00000000e+00j  -6.71077427e-02 +0.00000000e+00j
   5.93338345e-02 +0.00000000e+00j   3.80034428e-02 +0.00000000e+00j
  -1.51430299e-01 +0.00000000e+00j  -6.33215778e-02 +0.00000000e+00j
   1.43005327e-01 +0.00000000e+00j  -7.33049336e-02 +0.00000000e+00j
  -1.64571850e-01 +0.00000000e+00j   5.91985880e-02 +0.00000000e+00j
  -1.31441525e-01 +0.00000000e+00j   1.35954155e-01 +0.00000000e+00j
  -2.30981270e-02 +0.00000000e+00j  -1.86533000e-01 +0.00000000e+00j
   7.84949962e-02 +0.00000000e+00j   9.41416444e-06 +0.00000000e+00j
  -1.92116017e-17 +0.00000000e+00j   1.10600656e-16 +0.00000000e+00j
   1.75023609e-17 -1.35088126e-17j   1.75023609e-17 +1.35088126e-17j
   4.75348687e-17 +0.00000000e+00j  -1.99584575e-18 +2.25485520e-17j
  -1.99584575e-18 -2.25485520e-17j  -6.78262748e-18 -8.13743189e-17j
  -6.78262748e-18 +8.13743189e-17j   8.83354389e-17 +0.00000000e+00j]