scipy / numpy linalg.eigval结果解释

时间:2015-04-25 17:19:16

标签: python numpy linear-algebra eigenvalue

在使用python库进行数字任务时,我是新手。我正在读LexRank上的一篇论文,想知道如何计算转移矩阵的特征向量。我使用了a = numpy.zeros(shape=(4,4)) a[0,0]=0.333 a[0,1]=0.333 a[0,2]=0 a[0,3]=0.333 a[1,0]=0.25 a[1,1]=0.25 a[1,2]=0.25 a[1,3]=0.25 a[2,0]=0.5 a[2,1]=0.0 a[2,2]=0.0 a[2,3]=0.5 a[3,0]=0.0 a[3,1]=0.333 a[3,2]=0.333 a[3,3]=0.333 print LA.eigval(a) 函数并得到了一个我很难解释的结果:

[ 0.99943032+0.j         
-0.13278637+0.24189178j  
-0.13278637-0.24189178j  
  0.18214242+0.j        ]

,特征值为:

j

任何人都可以解释/** * Accepts two grid positions are arguments. The current position * of the object and the next grid position. Returns an angle representing * the direction of travel from the current position towards the next position. By converting the Cartesian coordinates into polar coordinates. * */ public void setAngle(Vector2d currentPos, Vector2d nextPos ) { Double delta_x = current.xPos - next.xPos; Double delta_y = current.yPos - next.yPos; Double theta = Math.atan2(delta_y, delta_x); this.angle = theta; } Example: || current: 1031.1438073417544 , 268.3133503758045 || next: 1033.101761841174 , 269.0819944286846 || Angle: 0.0 || current: 1033.1901579769194 , 242.19363555578593 || next: 1035.1281222295695 , 243.08778242413436 || Angle: 0.0 || current: 1022.1577455080815 , 255.24422527831163 || next: 1024.0301966330894 , 256.19078788718997 || Angle: 0.0 在这里做了什么吗?特征值不应该是标量吗?我怎样才能广泛地解释这个结果?

2 个答案:

答案 0 :(得分:2)

j是虚数,是负1的平方根。在数学中,它通常用i表示,在工程中,in Python, it is denoted by j

答案 1 :(得分:1)

特征值是标量,但(m,m)矩阵将具有 m 特征值(和 m 特征向量)。 The Wiki page on eigenvalues and eigenvectors有一些示例可以帮助您了解概念。

正如@unutbu提到的,j表示Python中的虚数。通常,矩阵可以具有复杂的特征值(即,具有实部和虚部),即使它仅包含实数值(see here, for example)。对称实值矩阵是一个例外,因为它们保证只有真正的特征值。