Class NumericalDifferentiation

java.lang.Object
org.episteme.core.mathematics.analysis.differentiation.NumericalDifferentiation

public class NumericalDifferentiation extends Object
Numerical differentiation methods.
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • NumericalDifferentiation

      public NumericalDifferentiation()
  • Method Details

    • forwardDifference

      public static double forwardDifference(DoubleUnaryOperator f, double x, double h)
      Forward difference: f'(x) ≈ (f(x+h) - f(x)) / h First-order accurate: O(h)
    • backwardDifference

      public static double backwardDifference(DoubleUnaryOperator f, double x, double h)
      Backward difference: f'(x) ≈ (f(x) - f(x-h)) / h First-order accurate: O(h)
    • centralDifference

      public static double centralDifference(DoubleUnaryOperator f, double x, double h)
      Central difference: f'(x) ≈ (f(x+h) - f(x-h)) / 2h Second-order accurate: O(h²)
    • fivePointStencil

      public static double fivePointStencil(DoubleUnaryOperator f, double x, double h)
      Five-point stencil: f'(x) ≈ (-f(x+2h) + 8f(x+h) - 8f(x-h) + f(x-2h)) / 12h Fourth-order accurate: O(h⁴)
    • secondDerivative

      public static double secondDerivative(DoubleUnaryOperator f, double x, double h)
      Second derivative using central difference: f''(x) ≈ (f(x+h) - 2f(x) + f(x-h)) / h²
    • richardsonExtrapolation

      public static double richardsonExtrapolation(DoubleUnaryOperator f, double x, double h, int order)
      Richardson extrapolation for improved accuracy.
    • gradient

      public static double[] gradient(Function<double[],Double> f, double[] x, double h)
      Compute gradient for multivariate function.
      Parameters:
      f - Function f(x) -> y
      x - Point to evaluate
      h - Step size
      Returns:
      Gradient vector
    • hessian

      public static double[][] hessian(Function<double[],Double> f, double[] x, double h)
      Compute Hessian matrix (second partial derivatives).
    • jacobian

      public static double[][] jacobian(Function<double[],double[]> f, double[] x, double h)
      Compute Jacobian matrix for vector-valued function.
    • laplacian

      public static double laplacian(Function<double[],Double> f, double[] x, double h)
      Laplacian: ∇²f = ∂²f/∂x² + ∂²f/∂y² + ...