-3

R 在 uniroot 和处理浮点方面是否存在已知问题?

>str(uniroot(function(x) x*(x^2-1) + .5, lower = -2, upper = 2,
+                  tol = 0.0001))

List of 4
$ root      : num -1.19
$ f.root    : num -2.55e-07
$ iter      : int 7
$ estim.prec: num 5e-05
> -1.19 * ( 1.19 ^ 2 - 1 ) + 0.5 
[1] 0.004841

显然 的值f.root不等于手动计算的函数值。

4

1 回答 1

3

您的 root 值仅显示为 2 sf,但它估计精度为 5e-5。这表明它“知道”您没有查看的答案中的其他数字。试着打印出来root-1.19,你会明白我的意思。

特别是,str它旨在作为一种快速查看 R 对象结构的方法,因此它有意打印有限数量的数字:默认值为digits.d3(请参阅 参考资料?str)。只需打印结果(如uniroot(...)oru1 <- uniroot(...); u1会向您显示更多数字,也许可以避免混淆。

于 2013-01-31T13:47:35.310 回答