【发布时间】:2013-10-18 08:10:37
【问题描述】:
我了解有时在某些浮点数计算中,R 会做出一些近似,从而导致错误,例如 9.143243e-16。
但是,当我只使用只有整数的 3x3 矩阵时,为什么我可以得到像 9.143243e-16 这样的行列式(使用 det 命令)?
9.143243e-16 来自哪里,在这种情况下我只有整数数字?
涉及整数的行列式只应该给出一个整数,对吧?
提前谢谢你。
PS:这是一个例子(4x4,但我也可以找到一个 3x3)(在 R 软件 x86 版本上):
C=matrix(c(9,3,12,6,-3,-1,-4,-2,2,-2,4,0,5,-1,8,2),4,4,byrow=TRUE)
det(C)
[1] -1.923137e-30
【问题讨论】:
-
答案是否定的。如果你除以整数,你会得到一个浮点数,所以你可以从整数开始,很容易得到一个浮点数。另外,与其强迫我们推测问题是什么,为什么不包括一些示例数据,一小段代码来说明您的问题?
-
det在 R 外部由需要浮点输入的编译代码计算。 -
nograpes,计算 3x3 矩阵行列式不需要除法。只有加法和乘法就足够了。即使在浮动中,
1.0000000000000 * 2.000000000000 + 3.0000000 * 4.000000000 + ..也应该以.00000000000结尾,不是吗? -
nograpes,我还在我的问题中添加了一个示例... 其他:如何进行一些测试,例如
if (a==0)?这是不可能的,因为0有时是0有时是别的东西...... -
“不需要”是一种拟人化,你不应该对计算机语言这样做,因为它们不喜欢被这样标记。
标签: r numeric numerical-methods