Java 分数指数和负基的数学修正pow函数

Java 分数指数和负基的数学修正pow函数,java,math,plot,numerical-methods,pow,Java,Math,Plot,Numerical Methods,Pow,我注意到,计算器和绘图程序(如Desmos、Geogebra或Google(Google search x^(1/3))必须修改了Math.pow()函数的版本,允许它们绘制一些负数基和分数指数,否则将无法使用常规Math.pow()函数定义 我正在尝试重新创建这个修改后的pow函数,以便能够绘制缺少的图形部分,例如$x^{\frac{1}{3}}$where$x overflow){ 返回Double.NaN; } EDIT:现在看来,围绕分数类的实例化添加try/catch语句并在catc

我注意到,计算器和绘图程序(如Desmos、Geogebra或Google(Google search x^(1/3))必须修改了Math.pow()函数的版本,允许它们绘制一些负数基和分数指数,否则将无法使用常规Math.pow()函数定义

我正在尝试重新创建这个修改后的pow函数,以便能够绘制缺少的图形部分,例如$x^{\frac{1}{3}}$where$x overflow){ 返回Double.NaN; } EDIT:现在看来,围绕分数类的实例化添加try/catch语句并在catch子句中返回NaN是一个很好的解决方法。而不是上面的代码

第2期


绘制数学函数$f(x)=x^{\frac{1}{x}}$会在左侧产生一个混乱的部分,$xI认为这样做的标准方法是1)取基
b
的自然对数,将结果乘以指数
z
,然后将e提高到该结果的幂。读起来:这似乎是做常规幂函数的另一种方法,你不能用自然对数的负基。所以我也必须修改这个版本,这是正常的幂函数。例如,x^(1/3)与x的第三个根相同。负数的第三根定义为绝对数的第三根的负结果。我知道第三根的负数是在数学中定义的,但它似乎不是在Java中定义的,例如Math.pow(-3,(double)1/3)=NaN。通过对数使用上面提到的公式,Math.exp(Math.log(-3)*((double)1/3))==nant看一看,我相信标准的方法是1)取基
b
的自然对数,将结果乘以指数
z
,然后将e提高到该结果的幂。读起来:这似乎是做常规幂函数的另一种方法,你不能用自然对数的负基。所以我也必须修改这个版本,这是正常的幂函数。例如,x^(1/3)与x的第三个根相同。负数的第三根定义为绝对数的第三根的负结果。我知道第三根的负数是在数学中定义的,但它似乎不是在Java中定义的,例如Math.pow(-3,(double)1/3)=NaN。通过对数使用上面提到的公式,Math.exp(Math.log(-3)*((double)1/3))==Nant看一看

        if (exponent != fraction.doubleValue() && negativeBase){
            return Double.NaN;
        }