在下面的代码中:
我收到的结果是“NaN”,虽然正确的结果应该是“4/9”或“0.44444...”。
那么为什么会返回NaN?如何让它返回正确的值?
(-8/27)^(2/3)
我收到的结果是“NaN”,虽然正确的结果应该是“4/9”或“0.44444...”。
那么为什么会返回NaN?如何让它返回正确的值?
(-8/27)^(2/3)
help("^")
的记录:R> ((-8/27)^2)^(1/3)
[1] 0.4444444
man pow
说:“如果x是小于0的有限值,y是有限的非整数,则会发生域错误,并返回NaN。”(其中x是底数,y是指数)。 - Joshua Ulrich((-8/27)^5)^(1/3) [1] NaN ((-8/27)^1)^(1/3) [1] NaN`。感谢澄清。- Metrics
-2/3
。 - eddi以下是复数运算,R语言支持:
(-8/27+0i)^(2/3)
[1] -0.2222222+0.3849002i
测试:
> ((-8/27+0i)^(2/3) )^(3/2)
[1] -0.2962963+0i
> -8/27 # check
[1] -0.2962963
(-0.2222222-0.3849002i)^(3/2)
[1] -0.2962963-0i
polyroot( c(8/27,0,0,1) )
[1] 0.3333333+0.5773503i -0.6666667-0.0000000i 0.3333333-0.5773503i
0 = 8/27 + 0*x + 0*x^2 + x^2
polyroot
函数需要这4个系数值,并将返回复数和实数根。
(-1)^1.5
实际代表什么意思。任何非整数幂次都需要复杂的根号。 - Señor O-(8/27)^(2/3)
吗?这样答案就变成了-4/9
,而不是4/9
。 - Blaszard(-1) ^ 2 * (8/27)^(2/3)
。 - Señor O