Class Derivative

java.lang.Object
org.opensourcephysics.numerics.Derivative

public class Derivative extends Object
Derivative defines various derivative algorithms. This class cannot be subclassed or instantiated because all methods are static.
Author:
Wolfgang Christian
  • Method Summary

    Modifier and Type
    Method
    Description
    static double
    backward(Function f, double x, double h)
    Calculates the first derivative of a function using the finite difference approximation toward decreasing x.
    static double
    centered(Function f, double x, double h)
    Calculates the first derivative of a function using the centered finite difference approximation.
    static double
    first(Function f, double x, double h)
    Calculates the first derivative of a function at the given point.
    static double
    firstPartial(MultiVarFunction f, double[] x, int n, double h)
    Gets the partial derivate of a multivariable function using the centered finite difference approximation.
    static double
    forward(Function f, double x, double h)
    Calculates the first derivative of a function using the finite difference approximation toward increasing x.
    static Function
    getFirst(Function f, double h)
    Gets a derivative function using the centered difference approximation.
    static Function
    getSecond(Function f, double h)
    Gets a second derivative function using a second order finite difference approximation.
    static double
    romberg(Function f, double x0, double h, double tol, double[] d6)
    Calculates the derivative using the Romberg scheme for Richardson extrapolation.
    static double
    second(Function f, double x, double h)
    Computes the second derivate using the centered finite difference approximation.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • getFirst

      public static Function getFirst(Function f, double h)
      Gets a derivative function using the centered difference approximation.
      Parameters:
      f - Function f(x)
      h - double change in x
      Returns:
      Function
    • getSecond

      public static Function getSecond(Function f, double h)
      Gets a second derivative function using a second order finite difference approximation.
      Parameters:
      f - Function f(x)
      h - double change in x
      Returns:
      Function second derivate
    • romberg

      public static double romberg(Function f, double x0, double h, double tol, double[] d6)
      Calculates the derivative using the Romberg scheme for Richardson extrapolation. This method runs until all Romberg rows are filled or until the step size drops below defaultNumericalPrecision or if the desired tolerance is reached.
      Parameters:
      f - the function
      x0 - where derivative is to be calculated
      h - initial step size
      tol - desired accuracy
      d6 - scratch double[6]
      Returns:
      first derivative
    • first

      public static double first(Function f, double x, double h)
      Calculates the first derivative of a function at the given point. The current implementation uses the centered finite difference method but this may change.
      Parameters:
      f - the function
      x - the x value
      h -
      Returns:
      first derivative
    • centered

      public static double centered(Function f, double x, double h)
      Calculates the first derivative of a function using the centered finite difference approximation.
      Parameters:
      f - the function
      x - the x value
      h -
      Returns:
      first derivatve
    • backward

      public static double backward(Function f, double x, double h)
      Calculates the first derivative of a function using the finite difference approximation toward decreasing x.
      Parameters:
      f - the function
      x - the x value
      h -
      Returns:
      first derivative
    • forward

      public static double forward(Function f, double x, double h)
      Calculates the first derivative of a function using the finite difference approximation toward increasing x.
      Parameters:
      f - the function
      x - the x value
      h -
      Returns:
      first derivative
    • firstPartial

      public static double firstPartial(MultiVarFunction f, double[] x, int n, double h)
      Gets the partial derivate of a multivariable function using the centered finite difference approximation.
      Parameters:
      f - MultiVarFunction
      x - double[] variables
      n - int index
      h - double change in the varible with index i
      Returns:
      double
    • second

      public static double second(Function f, double x, double h)
      Computes the second derivate using the centered finite difference approximation.
      Parameters:
      f - Function
      x - double
      h - double
      Returns:
      double