小编rwp*_*rwp的帖子

Ruby矩阵计算中的浮点错误

我正在编写一些涉及查找给定矩阵的特征向量的代码,并且很惊讶Ruby在简单的情况下会产生一些不合理的结果.

例如,以下矩阵具有与特征值1相关联的特征向量:

> m = Matrix[[0r, 1/2r, 1/2r, 1/3r],
             [0r,  0r,  1/4r, 1/3r],
             [0r, 1/4r,  0r,  1/3r],
             [1r, 1/4r, 1/4r,  0r]]
Run Code Online (Sandbox Code Playgroud)

Ruby发现特征值足够好,但特征向量爆炸:

> m.eigen.eigenvalues[2]
=> 1.0000000000000009

m.eigen.eigenvectors[2]
=> Vector[5.957702309312754e+15, 5.957702309312748e+15, 5.957702309312743e+15, 5.957702309312753e+15]
Run Code Online (Sandbox Code Playgroud)

实际的特征向量应为(7,4,4,9).

这不是麻烦吗?如果Ruby无法处理微小的矩阵,那么我们怎么能相信呢?或者我做错了什么?

ruby eigenvector

24
推荐指数
1
解决办法
581
查看次数

如何在data.table中使用fread()指示row.names = 1?

我想将.csv文件中的第一列视为一系列rownames.通常我以前做过以下事情:

read.csv("example_file.csv", row.names=1)
Run Code Online (Sandbox Code Playgroud)

但我想用R包中的fread()函数来做这件事data.table,因为它运行得非常快.

r data.table

17
推荐指数
2
解决办法
6859
查看次数

标签 统计

data.table ×1

eigenvector ×1

r ×1

ruby ×1