Jump to: navigation, search
Explicit plot of BesselY0 (red), BesselJ1 (green) and BesselJ0 (blue)
\(u+\mathrm i v=\mathrm{BesselJ}_0 (x+\mathrm i y)\)

BesselJ0 called also the Bessel function of zero order and also \(J_0\), is entire function, solution of equation

\( \!\!\!\!\!\!\!\!\!\! (1) \displaystyle ~ ~ ~ J_0''(z)+ J_0'(z)/z+ J_0(z)=0 \)
\( \!\!\!\!\!\!\!\!\!\! (2) \displaystyle ~ ~ ~ J_0(0)=1 ~, ~~ J_0'(0)=0\)

Complex map of function BesselJ0 is shown in figure at right. The short notation \(J_0=\mathrm{BesselJ0}\) is also valid.

Integral representation

\( \!\!\!\!\!\!\!\!\!\! (3) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(z)= \frac{1}{\pi}\int_0^\pi \cos\!\big( z \cos (t) \big)~ \mathrm d t \)


The BesselJ0 is real-holomorphic,

\( \!\!\!\!\!\!\!\!\!\! (4) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(z^*)= \mathrm{BesselJ}_0(z)^*\)

The BesselJ0 is symmetric function,

\( \!\!\!\!\!\!\!\!\!\! (5) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(-z)= \mathrm{BesselJ}_0(z)\)

Expansion at zero

The straightforward Taylor expansion at zero can be written as follows:

\( \!\!\!\!\!\!\!\!\!\! (6) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(z)= \sum_{n=0}^{\infty} \frac{ (-z^2/4)^n } {\mathrm{Factorial}(n)^2} = 1 -\frac{z^2}{4} +\frac{z^4}{64} -\frac{z^6}{2304}+ ... \)

The series converges in the whole complex plane and, at the complex(double) arithmetics, gives of order of dozen significant figures at least for \(|z|\!<\!20\); it is sufficient to keep few tens of terms in the expansion. For larger values of the argument, the expansion below can be used.

Expansion at infinity

Expansion at large vales of the argument can be written as follows:

\( \!\!\!\!\!\!\!\!\!\! (8) \displaystyle ~ ~ ~ J_0(z) \approx \sqrt{\frac{2}{\pi z}} \cos\!\left(z-\frac{\pi}{4}\right) \left( 1 - \frac{9}{128 z^2}+ ..\right) \) \(+\) \(\displaystyle \sqrt{\frac{2}{\pi z}} \sin\!\left(z-\frac{\pi}{4}\right) \frac{1}{8z}\left( 1 - \frac{75}{128 z^2}+ ..\right) \)

Mathematica allows to calculate a dozen of term of this expansion; they can be extracted also from the complex(double) implementation Besselj0.cin.

Amplitude and phase

Another expansion represents BesselJ0 in terms of its amplitude and phase [1]:

\(J_0(x) = \displaystyle \frac{2}{\pi x} A(x) \, \cos(x-\pi/4+\Phi(x))\)

\(A(x)\approx 1-\frac{1}{16 x^2}+\frac{53}{512 x^4}-\frac{4447}{8192 x^6} +\frac{3066403}{524288x^8} -\frac{896631415}{8388608 x^{10}} +\frac{796754802993}{268435456 x^{12}} +..\)

\(\Phi(x)\approx \frac{-1}{8x}+\frac{25}{384 x^3} -\frac{1073}{5120 x^5} +\frac{375733}{229376 x^7} -\frac{55384775}{2359296 x^9} +\frac{24713030909}{46137344 x^{11}} +..\)

Coefficients of the expansions above can be calculated and verified with the Mathematica code below:

sL[x_] = Normal[Series[Log[HankelH1[0, x] Sqrt[Pi I x/2]], {x, Infinity, 16}]]
sLr[x_] = Expand[(sL[x] + sL[-x])/2]
sLi[x_] = Expand[(sL[x] - sL[-x])/2/I]
sLA[x_] = Normal[Series[HankelH1[0, x] Sqrt[Pi I x/2] Exp[-I sLi[x]], {x, Infinity, 16}]]
Plot[{Re[HankelH1[0, x]], Re[sLA[x] Sqrt[2/(Pi I x)] Exp[I sLi[x]]]}, {x,1,21}]
Plot[{10^15 (sLA[x] Sqrt[2/(Pi x)] Cos[- Pi/4 + sLi[x]] - BesselJ[0,x])}, {x,18,29}, AspectRatio -> .3, GridLines -> {{20}, {}}]

The precision of corresponding approximation of BesselJ0\((x)\) reaches the machine precision at \(x>20\).

The asymptotic expansions for BesselJ0 diverge, but are useful for precise evaluation of [[BesseoJ0[[\((z)\) at \(|z|>20\), giving of order of 16 significant figures.

Behavior along the real axis

Along the real axis, BesselJ0 oscillates (like other Bessel functions). The zeros of are denoted with \(j_{0,n}\); where \(n\) is supposed to be positive integer. The WebMatematica offers the on-line service to evaluate these zeros [2]; a thousand of zeros can be evaluated within few seconds. In particular, the first 5 values are


In C++, zeros of the Bessel function can be implemented with the code beginning with

#define DB double
DB jnp(int n,DB x){ return .5*( jn(n-1,x)-jn(n+1,x) ) ; } // Derivative of n th Bessel
DB jnz(int v, int k){ DB x,t; t=M_PI*(k+.5*v-.25); x= t - (v*v-.25)*.5/t;
                x-= jn(v,x)/jnp(v,x); // Newton adjustment of the root
                x-= jn(v,x)/jnp(v,x);
                x-= jn(v,x)/jnp(v,x);
                return x; } // the k th zero of v th Bessel

Integral properties

The orthogonality properties for the zero-th Bessel is suggested [3] in the following form:

\( \displaystyle \int_0^W ~ J_0(s_p r)~ j_0(s_q r) ~r~ \mathrm d r = \delta_{p,q} \frac{W^2}{2} J_0'(s_p W)^2\)
\( \displaystyle \int_0^W ~ J_0(s r_q)~ j_0(s r_p) ~r~ \mathrm d r = \delta_{p,q} \frac{S^2}{2} J_0'(S\, r_p )^2\)
\( r_{2n+1}=W ~ ~ , ~ ~ s_{n+1}=S\)
\( \zeta_{2n+1}=SW\)

That needs to be somehow interpreted.

Numerical implementation

The numerical implementation of BesselJ0 can be extracted from description of figure

In Mathematica, BesselJ0\((z)\) can be calculated with the built-in function, BesselJ[0,z] .

For real values of the argument, in C++, there is built-in function j0 that evaluates \(J_0\).


The Bessel function appear at the consideration of wave equations with circular symmetry.


  1. John Harrison. Fast and Accurate Bessel Function Computation.
  3. ANALYSIS AND DESIGN OF VERTICAL CAVITY SURFACE EMITTING LASERS. WILEY SERIES IN LASERS AND APPLICATIONS. D. R. VIJ, Editor, Kurukshetra University. S.F.Yu. School of Electrical & Electronic Engineering, Nanyang Technological University.Singapore.


BesselJ1, BesselY0, BesselH0 Bessel function