edu.jhu.bme.smile.commons.optimize
Class FunctionNumeric1DDifferentiation

java.lang.Object
  extended by edu.jhu.bme.smile.commons.optimize.FunctionNumeric1DDifferentiation
All Implemented Interfaces:
Optimizable1DContinuous, Optimizable1DContinuousDifferentiable

public class FunctionNumeric1DDifferentiation
extends java.lang.Object
implements Optimizable1DContinuousDifferentiable

This class does numeric differentiation in 1D. There are lots of methods of doing so, and depending on how many points are used, enter that value in for the method variable. Also computes 2nd derivatives. Defaults to 3-point method.

Author:
Yufeng Guo, Hanlin Wan

Field Summary
static double DEFAULT_STEP
           
static int DIFF_3_POINT
           
static int DIFF_5_POINT
           
static int DIFF_7_POINT
           
static int DIFF_9_POINT
           
static int DIFF_BAC_EULER
           
static int DIFF_FWD_EULER
           
 
Constructor Summary
FunctionNumeric1DDifferentiation(Optimizable1DContinuous function)
          Constructor to create a 1D differentiable object.
FunctionNumeric1DDifferentiation(Optimizable1DContinuous function, double step, int method)
          Constructor to create a 1D differentiable object.
 
Method Summary
 double get2ndDerivative(double x)
          Gets the second derivative
 double getDerivative(double x)
          Gets the first derivative
 double getDomainMax()
          Gets the domain maximum
 double getDomainMin()
          Gets the domain minimum
 double getDomainTolerance()
          Gets the tolerance
 int getMethod()
          Gets the method
 double getValue(double x)
          Gets the value
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DIFF_FWD_EULER

public static final int DIFF_FWD_EULER
See Also:
Constant Field Values

DIFF_BAC_EULER

public static final int DIFF_BAC_EULER
See Also:
Constant Field Values

DIFF_3_POINT

public static final int DIFF_3_POINT
See Also:
Constant Field Values

DIFF_5_POINT

public static final int DIFF_5_POINT
See Also:
Constant Field Values

DIFF_7_POINT

public static final int DIFF_7_POINT
See Also:
Constant Field Values

DIFF_9_POINT

public static final int DIFF_9_POINT
See Also:
Constant Field Values

DEFAULT_STEP

public static final double DEFAULT_STEP
See Also:
Constant Field Values
Constructor Detail

FunctionNumeric1DDifferentiation

public FunctionNumeric1DDifferentiation(Optimizable1DContinuous function)
Constructor to create a 1D differentiable object. Default step size of 1e-5 and default method of 3 point are used.

Parameters:
function - function to differentiate

FunctionNumeric1DDifferentiation

public FunctionNumeric1DDifferentiation(Optimizable1DContinuous function,
                                        double step,
                                        int method)
Constructor to create a 1D differentiable object.

Parameters:
function - function to differentiate
step - step size to use
method - the differentiating method to use: 0,1,3,5,7, or 9. Default is 3.
Method Detail

get2ndDerivative

public double get2ndDerivative(double x)
Gets the second derivative

Specified by:
get2ndDerivative in interface Optimizable1DContinuousDifferentiable
Parameters:
x - location to evaluate derivative at
Returns:
second derivative at location x

getDerivative

public double getDerivative(double x)
Gets the first derivative

Specified by:
getDerivative in interface Optimizable1DContinuousDifferentiable
Parameters:
x - location to evaluate derivative at
Returns:
derivative at location x

getMethod

public int getMethod()
Gets the method

Returns:
method

getDomainMax

public double getDomainMax()
Gets the domain maximum

Specified by:
getDomainMax in interface Optimizable1DContinuous
Returns:
domain max

getDomainMin

public double getDomainMin()
Gets the domain minimum

Specified by:
getDomainMin in interface Optimizable1DContinuous
Returns:
domain min

getDomainTolerance

public double getDomainTolerance()
Gets the tolerance

Specified by:
getDomainTolerance in interface Optimizable1DContinuous
Returns:
tolerance

getValue

public double getValue(double x)
Gets the value

Specified by:
getValue in interface Optimizable1DContinuous
Parameters:
x - location to get value at
Returns:
value at location x