Ruby 这是红宝石吗;什么是类矩阵中的bug?

Ruby 这是红宝石吗;什么是类矩阵中的bug?,ruby,matrix,eigenvalue,eigenvector,r,Ruby,Matrix,Eigenvalue,Eigenvector,R,我使用ruby中的矩阵类来计算特征值和特征向量。使用此代码: m = Matrix[[0.6868,0.6067],[0.6067,0.5978]] v, d, v_inv = m.eigensystem 正确的结果应该是: [ 1.25057433 0.03398123] [[ 0.73251454 -0.68075138] [ 0.68075138 0.73251454]] 我用Python用numpy确认了这一点 然而,我得到的结果如下: d=[[0.03397020457649

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

m = Matrix[[0.6868,0.6067],[0.6067,0.5978]]
v, d, v_inv = m.eigensystem
正确的结果应该是:

[ 1.25057433  0.03398123]
[[ 0.73251454 -0.68075138]
 [ 0.68075138  0.73251454]]
我用Python用
numpy
确认了这一点

然而,我得到的结果如下:

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

v=[[0.6807528514962294, 0.7325131774785713],
 [-0.7325131774785713,  0.6807528514962294]]
这是ruby的bug吗?我的ruby版本如下:

ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]

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

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

> 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
>条目输入
#        [,1]   [,2]
# [1,] 0.6868 0.6067
# [2,] 0.6067 0.5978
>输入特征输入特征
美元价值
# [1] 1.2506298 0.0339702
$vectors
#            [,1]       [,2]
# [1,] -0.7325132  0.6807529
# [2,] -0.6807529 -0.7325132

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

谢谢你的回答。你能告诉我,在你看来,为什么ruby在这个问题上比python/numpy好?正如我在总结中所写的,在数学方面,我比两者都更信任。ruby的结果与使用R生成的结果相同,而python的结果则不同。谢谢^^@Ireul,您将此标记为正确答案。这是否意味着你从另一个来源(wolfram/手工)检查了它,发现numpy确实错了?如果是的话,这不是比你原来的问题更有趣吗?您是否在某个地方问了后续问题,或者联系了软件包维护人员或其他什么?