指数和负数

时间:2014-05-23 09:48:05

标签: r

我不知道其他R用户是否发现了以下问题。

在R中我执行以下操作:

> (3/-2)^(1/3)
[1] NaN

我获得NaN结果。

如果我设置,我的方式类似:

> w<-(3/-2)
> g<-1/3
> w^g
[1] NaN

但是,如果我这样做:

> 3/-2
[1] -1.5
> -1.5^(1/3)
[1] -1.144714

有没有人可以解释这个矛盾?

4 个答案:

答案 0 :(得分:3)

你在哪里看到问题? -1.5^(1/3)(-1.5)^(1/3)不同。如果你有基础的数学教育,你不应该期望这些是相同的。

阅读help("Syntax"),了解^的优先级高于R中的-

答案 1 :(得分:1)

首先执行(3/2)^(1/3),然后添加“-” 你无法计算负数的立方根!

答案 2 :(得分:1)

这是由于取幂的数学定义。对于连续实数取幂运算符,不允许使用负数。

答案 3 :(得分:0)

如果您真的想要答案,可以对复数进行计算,即得到-1.5+0i的立方根:

complex(real=-1.5,im=0)^(1/3)
## [1] 0.5723571+0.9913516i

这实际上只是x^3+1.5==0的三个复杂根源之一:

polyroot(c(1.5,0,0,1))
[1]  0.5723571+0.9913516i -1.1447142+0.0000000i  0.5723571-0.9913516i

但其他答案可能更接近解决您的真实问题。