无论如何计算Java中非整数指数的幂的负基数?

时间:2017-02-09 14:42:05

标签: java math exponent

根据我自己的经验和Java文档,在Math.pow(i,j)中,每当i为负数且j为非整数时,Math.pow将始终返回NaN,但是,根据所有在我尝试过的不同计算器中,有一些情况下,对于非整数指数的幂的负基础有一个真正的解决方案。

例如:

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

返回NaN

这有什么工作吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

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

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)做了什么?

答案 1 :(得分:0)

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

例如:

NaN

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

没有对此抱歉的任何工作