public class BesselJ extends Object implements UnivariateFunction
This implementation is based on the rjbesl Fortran routine at Netlib.
From the Fortran code:
This program is based on a program written by David J. Sookne (2) that computes values of the Bessel functions J or I of real argument and integer order. Modifications include the restriction of the computation to the J Bessel function of non-negative real argument, the extension of the computation to arbitrary positive order, and the elimination of most underflow.
References:
Modifier and Type | Class and Description |
---|---|
static class |
BesselJ.BesselJResult
Encapsulates the results returned by
rjBesl(double, double, int) . |
Constructor and Description |
---|
BesselJ(double order)
Create a new BesselJ with the given order.
|
Modifier and Type | Method and Description |
---|---|
static BesselJ.BesselJResult |
rjBesl(double x,
double alpha,
int nb)
Calculates Bessel functions \(J_{n+alpha}(x)\) for
non-negative argument x, and non-negative order n + alpha.
|
double |
value(double x)
Returns the value of the constructed Bessel function of the first kind,
for the passed argument.
|
static double |
value(double order,
double x)
Returns the first Bessel function, \(J_{order}(x)\).
|
public BesselJ(double order)
order
- order of the function computed when using value(double)
.public double value(double x) throws MathIllegalArgumentException, ConvergenceException
value
in interface UnivariateFunction
x
- ArgumentMathIllegalArgumentException
- if x
is too large relative to order
ConvergenceException
- if the algorithm fails to convergepublic static double value(double order, double x) throws MathIllegalArgumentException, ConvergenceException
order
- Order of the Bessel functionx
- ArgumentMathIllegalArgumentException
- if x
is too large relative to order
ConvergenceException
- if the algorithm fails to convergepublic static BesselJ.BesselJResult rjBesl(double x, double alpha, int nb)
Before using the output vector, the user should check that nVals = nb, i.e., all orders have been calculated to the desired accuracy. See BesselResult class javadoc for details on return values.
x
- non-negative real argument for which J's are to be calculatedalpha
- fractional part of order for which J's or exponentially
scaled J's (\(J\cdot e^{x}\)) are to be calculated. 0 <= alpha < 1.0.nb
- integer number of functions to be calculated, nb > 0. The first
function calculated is of order alpha, and the last is of order
nb - 1 + alpha.Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.