# commons-dev mailing list archives

##### Site index · List index
Message view
Top
From Luc Maisonobe <Luc.Maison...@free.fr>
Subject Re: [MATH] What is the derivative of 0^x
Date Fri, 23 Aug 2013 16:39:25 GMT
```Hi Ajo,

Le 23/08/2013 17:48, Ajo Fod a écrit :
> Try this and I'm happy to explain if necessary:
>
> public class Derivative {
>
>     public static void main(final String[] args) {
>         DerivativeStructure dsA = new DerivativeStructure(1, 1, 0, 1d);
>         System.out.println("Derivative of constant^x wrt x");
>         for (int a = -3; a < 3; a++) {

We have chosen the classical definition which implies c^x is not defined
for real r and negative c.

Our implementation is based on the decomposition c^r = exp(r * ln(c)),
so the NaN comes from the logarithm when c <= 0.

Noe also that as explained in the documentation here:
<http://commons.apache.org/proper/commons-math/userguide/analysis.html#a4.7_Differentiation>,
there are no concepts of "constants" and "variables" in this framework,
so we cannot draw a line between c^r as seen as a univariate function of
r, or as a univariate function of c, or as a bivariate function of c and
r, or even as a pentavariate function of p1, p2, p3, p4, p5 with both c
and r being computed elsewhere from p1...p5. So we don't make special
cases for the case c = 0 for example.

Does this explanation make sense to you?

best regards,
Luc

>             final DerivativeStructure a_ds = new DerivativeStructure(1, 1,
> a);
>             final DerivativeStructure out = a_ds.pow(dsA);
>             System.out.format("Derivative@%d=%f\n", a,
> out.getPartialDerivative(new int[]{1}));
>         }
>     }
> }
>
>
>
> On Fri, Aug 23, 2013 at 7:59 AM, Gilles <gilles@harfang.homelinux.org>wrote:
>
>> On Fri, 23 Aug 2013 07:17:35 -0700, Ajo Fod wrote:
>>
>>> Seems like the DerivativeCompiler returns NaN.
>>>
>>> IMHO it should return 0.
>>>
>>
>> What should be 0?  And Why?
>>
>>
>>
>>> Is this worthy of an issue?
>>>
>>
>> As is, no.
>>
>> Gilles
>>
>>
>>> Thanks,
>>> -Ajo
>>>
>>
>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: dev-unsubscribe@commons.**apache.org<dev-unsubscribe@commons.apache.org>
>> For additional commands, e-mail: dev-help@commons.apache.org
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org