首页 > 解决方案 > 三次根行为 R

问题描述

在R中,为什么

(-27)^(1/3)

返回NaN

然而

(27)^(1/3)

返回 3?

据我了解,(-27)^(1/3)有三解-3, 1.5+2.5971i, 1.5-2.5971i(27)^(1/3)有三解3, -1.5+2.5971i, -1.5-2.5971i。那么,为什么不返回 -27 的解而只返回 27 的实际值呢?

标签: rsquare-root

解决方案


help('^')

用户有时会对返回的值感到惊讶,例如为什么 (-8)^(1/3) 是 NaN。对于双输入,R 在所有平台上使用 IEC 60559 算法,以及用于 ^ 运算符的 C 系统函数 pow。相关标准定义了许多极端情况下的结果。特别是,上面示例中的结果是由 C99 标准规定的。在许多类 Unix 系统上,命令 man pow 提供了大量极端情况下的值的详细信息。


推荐阅读