这是Matrix类中的红宝石错误吗?

时间:2017-05-31 10:12:59

标签: ruby matrix eigenvalue eigenvector

我在ruby中使用Matrix类来计算特征值和特征向量。使用此代码:

Area

正确的结果应该是:

m = Matrix[[0.6868,0.6067],[0.6067,0.5978]]
v, d, v_inv = m.eigensystem

我使用Python确认[ 1.25057433 0.03398123] [[ 0.73251454 -0.68075138] [ 0.68075138 0.73251454]]

但是,我得到了以下结果:

numpy

这是一个红宝石的错误吗?我的红宝石版本如下:

d=[[0.033970204576497576,   0],
 [0,    1.2506297954235022]]

v=[[0.6807528514962294, 0.7325131774785713],
 [-0.7325131774785713,  0.6807528514962294]]

1 个答案:

答案 0 :(得分:0)

这绝不是一个答案,但为了格式化,我会把它放在这里:

说到数学,我会用来检查结果的正确性

> entries <- c(0.6868, 0.6067, 0.6067, 0.5978)
> input <- matrix(entries, nrow=2, byrow=TRUE)
> input

#        [,1]   [,2]
# [1,] 0.6868 0.6067
# [2,] 0.6067 0.5978

> input_eigen <- eigen(input)
> input_eigen 

$values
# [1] 1.2506298 0.0339702

$vectors
#            [,1]       [,2]
# [1,] -0.7325132  0.6807529
# [2,] -0.6807529 -0.7325132

我相信上面的结果,这意味着ruby可能比python / numpy做得更好。