我不知道其他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
有没有人可以解释这个矛盾?
答案 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
但其他答案可能更接近解决您的真实问题。