在使用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
在这里做了什么吗?特征值不应该是标量吗?我怎样才能广泛地解释这个结果?
答案 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)。对称实值矩阵是一个例外,因为它们保证只有真正的特征值。