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 <[email protected]>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<[email protected]>
>> For additional commands, e-mail: [email protected]
>>
>>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]