无论如何要计算 Java 中非整数指数的负底数?

Is there anyway to compute a negative base to the power of a non integer exponent in Java?

根据我自己的经验和 Java 文档,在 Math.pow(i,j) 中,只要 i 是负数且 j 是非整数,Math.pow将始终 return NaN,但是,根据我尝试过的所有不同计算器,在某些情况下,对于非整数指数的负底数的幂有一个实数解。

例如:

System.out.println(Math.pow(-3, 0.6));

returns NaN

有什么解决办法吗?

提前致谢。

你如何定义这种力量?标准方法是分别找到极分解。底数的复对数并将电源插入其中,

pow(-3, 0.6) = exp( 0.6 * (log(3) + i*pi) )
= pow(3,0.6) * (cos(0.6*pi) + i*sin(0.6*pi))

现在你也可以选择对数的其他分支来表示Ln(-3),因为-1=exp(-i*pi)=exp(i*3*pi)=exp(-5*i*pi)=exp(i*7*pi)=…也是如此。这些变体中只有一个会产生真正的效果。然而,计算机如何知道你想要的正是那个变体?你为 pow(-3,0.61) 做了什么?

根据我自己的经验和 Java 文档,在 Math.pow(i,j) 中,只要 i 是负数且 j 是非整数,Math.pow 将始终 return NaN,但是,根据我尝试过的所有不同计算器,在某些情况下,对于非整数指数的负底数的幂有一个实数解.

例如:

System.out.println(Math.pow(-3, 0.6));

returns NaN

抱歉没有解决此问题的方法