Java - Computation of Derivations with Apache Commons Mathematic Library

前端 未结 2 1187
刺人心
刺人心 2021-01-01 04:20

I have a problem in using the apache commons math library.
I just want to create functions like f(x) = 4x^2 + 2x and I want to compute the derivative of this function

2条回答
  •  无人及你
    2021-01-01 05:01

    The following thread from the Apache mailing list seems to illustrate the two possible ways of how the derivative of a UnivariateDifferentiableFunction can be defined. I am adding a new answer as I'm unable to comment on the previous one (insufficient reputation).

    The used sample specification of the function is f(x) = x^2.

    (1) Using a DerivativeStructure:

    public DerivativeStructure value(DerivativeStructure t) {
         return t.multiply(t);
    }
    

    (2) By writing a classical UnivariateFunction:

    public UnivariateRealFunction derivative() {
        return new UnivariateRealFunction() {
              public double value(double x) {
                    // example derivative
                    return 2.*x;
              }
         }
    }
    

    If I understand well, the advantage of the first case is that the derivative does not need to be obtained manually, as in the second case. In case the derivative is known, there should thus be no advantage of defining a DerivativeStructure, right? The application I have in mind is that of a Newton-Raphson solver, for which generally the function value and its derivative need to be known.

    The full example is provided on the aforementioned web site (authors are Thomas Neidhart and Franz Simons). Any further comments are most welcome!

提交回复
热议问题