Class Sinc
java.lang.Object
org.apache.commons.math3.analysis.function.Sinc
- All Implemented Interfaces:
DifferentiableUnivariateFunction
,UnivariateDifferentiableFunction
,UnivariateFunction
public class Sinc
extends Object
implements UnivariateDifferentiableFunction, DifferentiableUnivariateFunction
Sinc function,
defined by
sinc(x) = 1 if x = 0,
sin(x) / x otherwise.
- Since:
- 3.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final boolean
For normalized sinc function.private static final double
Value below which the computations are done using Taylor series. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionDeprecated.double
value
(double x) Compute the value of the function.Simple mathematical function.
-
Field Details
-
SHORTCUT
private static final double SHORTCUTValue 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| invalid input: '<'= SHORTCUT.
- See Also:
-
normalized
private final boolean normalizedFor normalized sinc function.
-
-
Constructor Details
-
Sinc
public Sinc()The sinc function,sin(x) / x
. -
Sinc
public Sinc(boolean normalized) Instantiates the sinc function.- Parameters:
normalized
- Iftrue
, the function issin(πx) / πx
, otherwisesin(x) / x
.
-
-
Method Details
-
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.as of 3.1, replaced byvalue(DerivativeStructure)
Returns the derivative of the function- Specified by:
derivative
in interfaceDifferentiableUnivariateFunction
- Returns:
- the derivative function
-
value
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
-
value(DerivativeStructure)