Class Sinc
- java.lang.Object
-
- org.apache.commons.math3.analysis.function.Sinc
-
- All Implemented Interfaces:
DifferentiableUnivariateFunction
,UnivariateDifferentiableFunction
,UnivariateFunction
public class Sinc extends java.lang.Object implements UnivariateDifferentiableFunction, DifferentiableUnivariateFunction
Sinc function, defined bysinc(x) = 1 if x = 0, sin(x) / x otherwise.
- Since:
- 3.0
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
normalized
For normalized sinc function.private static double
SHORTCUT
Value below which the computations are done using Taylor series.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description UnivariateFunction
derivative()
Deprecated.as of 3.1, replaced byvalue(DerivativeStructure)
double
value(double x)
Compute the value of the function.DerivativeStructure
value(DerivativeStructure t)
Simple mathematical function.
-
-
-
Field Detail
-
SHORTCUT
private static final double SHORTCUT
Value below which the computations are done using Taylor series.The Taylor series for sinc even order derivatives are:
d^(2n)sinc/dx^(2n) = Sum_(k>=0) (-1)^(n+k) / ((2k)!(2n+2k+1)) x^(2k) = (-1)^n [ 1/(2n+1) - x^2/(4n+6) + x^4/(48n+120) - x^6/(1440n+5040) + O(x^8) ]
The Taylor series for sinc odd order derivatives are:
d^(2n+1)sinc/dx^(2n+1) = Sum_(k>=0) (-1)^(n+k+1) / ((2k+1)!(2n+2k+3)) x^(2k+1) = (-1)^(n+1) [ x/(2n+3) - x^3/(12n+30) + x^5/(240n+840) - x^7/(10080n+45360) + O(x^9) ]
So the ratio of the fourth term with respect to the first term is always smaller than x^6/720, for all derivative orders. This implies that neglecting this term and using only the first three terms induces a relative error bounded by x^6/720. The SHORTCUT value is chosen such that this relative error is below double precision accuracy when |x| <= SHORTCUT.
- See Also:
- Constant Field Values
-
normalized
private final boolean normalized
For normalized sinc function.
-
-
Method Detail
-
value
public double value(double x)
Compute the value of the function.- Specified by:
value
in interfaceUnivariateFunction
- Parameters:
x
- Point at which the function value should be computed.- Returns:
- the value of the function.
-
derivative
@Deprecated public UnivariateFunction derivative()
Deprecated.as of 3.1, replaced byvalue(DerivativeStructure)
Returns the derivative of the function- Specified by:
derivative
in interfaceDifferentiableUnivariateFunction
- Returns:
- the derivative function
-
value
public DerivativeStructure value(DerivativeStructure t) throws DimensionMismatchException
Simple mathematical function.UnivariateDifferentiableFunction
classes compute both the value and the first derivative of the function.- Specified by:
value
in interfaceUnivariateDifferentiableFunction
- Parameters:
t
- function input value- Returns:
- function result
- Throws:
DimensionMismatchException
- if t is inconsistent with the function's free parameters or order- Since:
- 3.1
-
-