Difference between revisions of "BesselJ0"

From TORI
Jump to: navigation, search
m (Text replacement - "\$([^\$]+)\$" to "\\(\1\\)")
 
Line 3: Line 3:
 
[[File:BesselY0J0J1plotT060.png|500px|thumb|
 
[[File:BesselY0J0J1plotT060.png|500px|thumb|
 
[[Explicit plot]] of [[BesselY0]] (red), [[BesselJ1]] (green) and [[BesselJ0]] (blue)]]
 
[[Explicit plot]] of [[BesselY0]] (red), [[BesselJ1]] (green) and [[BesselJ0]] (blue)]]
[[File:Besselj0map1T080.png|right|500px|thumb|$u+\mathrm i v=\mathrm{BesselJ}_0 (x+\mathrm i y)$]]
+
[[File:Besselj0map1T080.png|right|500px|thumb|\(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
+
'''BesselJ0''' called also the '''[[Bessel function]] of zero order''' and also \(J_0\), is [[entire function]], solution of equation
: $ \!\!\!\!\!\!\!\!\!\! (1) \displaystyle ~ ~ ~
+
: \( \!\!\!\!\!\!\!\!\!\! (1) \displaystyle ~ ~ ~
 
J_0''(z)+
 
J_0''(z)+
 
J_0'(z)/z+
 
J_0'(z)/z+
J_0(z)=0 $
+
J_0(z)=0 \)
: $ \!\!\!\!\!\!\!\!\!\! (2) \displaystyle ~ ~ ~ J_0(0)=1 ~, ~~ J_0'(0)=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.
+
[[Complex map]] of function BesselJ0 is shown in figure at right. The short notation \(J_0=\mathrm{BesselJ0}\) is also valid.
   
 
==Integral representation==
 
==Integral representation==
: $ \!\!\!\!\!\!\!\!\!\! (3) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(z)=
+
: \( \!\!\!\!\!\!\!\!\!\! (3) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(z)=
 
\frac{1}{\pi}\int_0^\pi \cos\!\big( z \cos (t) \big)~ \mathrm d t
 
\frac{1}{\pi}\int_0^\pi \cos\!\big( z \cos (t) \big)~ \mathrm d t
  +
\)
$
 
   
 
==Symmetry==
 
==Symmetry==
Line 22: Line 22:
 
The BesselJ0 is real-holomorphic,
 
The BesselJ0 is real-holomorphic,
   
: $ \!\!\!\!\!\!\!\!\!\! (4) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(z^*)= \mathrm{BesselJ}_0(z)^*$
+
: \( \!\!\!\!\!\!\!\!\!\! (4) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(z^*)= \mathrm{BesselJ}_0(z)^*\)
   
 
The BesselJ0 is symmetric function,
 
The BesselJ0 is symmetric function,
   
: $ \!\!\!\!\!\!\!\!\!\! (5) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(-z)= \mathrm{BesselJ}_0(z)$
+
: \( \!\!\!\!\!\!\!\!\!\! (5) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(-z)= \mathrm{BesselJ}_0(z)\)
   
 
==Expansion at zero==
 
==Expansion at zero==
 
The straightforward Taylor expansion at zero can be written as follows:
 
The straightforward Taylor expansion at zero can be written as follows:
   
: $ \!\!\!\!\!\!\!\!\!\! (6) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(z)=
+
: \( \!\!\!\!\!\!\!\!\!\! (6) \displaystyle ~ ~ ~ \mathrm{BesselJ}_0(z)=
 
\sum_{n=0}^{\infty}
 
\sum_{n=0}^{\infty}
 
\frac{ (-z^2/4)^n }
 
\frac{ (-z^2/4)^n }
Line 40: Line 40:
 
+\frac{z^4}{64}
 
+\frac{z^4}{64}
 
-\frac{z^6}{2304}+ ...
 
-\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.
+
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 infinity==
Line 48: Line 48:
 
Expansion at large vales of the argument can be written as follows:
 
Expansion at large vales of the argument can be written as follows:
   
: $ \!\!\!\!\!\!\!\!\!\! (8) \displaystyle ~ ~ ~ J_0(z) \approx
+
: \( \!\!\!\!\!\!\!\!\!\! (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)
 
\sqrt{\frac{2}{\pi z}} \cos\!\left(z-\frac{\pi}{4}\right) \left( 1 - \frac{9}{128 z^2}+ ..\right)
$ $+$ $\displaystyle
+
\) \(+\) \(\displaystyle
 
\sqrt{\frac{2}{\pi z}} \sin\!\left(z-\frac{\pi}{4}\right) \frac{1}{8z}\left( 1 - \frac{75}{128 z^2}+ ..\right)
 
\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]].
 
[[Mathematica]] allows to calculate a dozen of term of this expansion; they can be extracted also from the [[complex(double)]] implementation [[Besselj0.cin]].
Line 62: Line 62:
 
</ref>:
 
</ref>:
   
$J_0(x) = \displaystyle
+
\(J_0(x) = \displaystyle
\frac{2}{\pi x} A(x) \, \cos(x-\pi/4+\Phi(x))$
+
\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}
+
\(A(x)\approx 1-\frac{1}{16 x^2}+\frac{53}{512 x^4}-\frac{4447}{8192 x^6}
 
+\frac{3066403}{524288x^8}
 
+\frac{3066403}{524288x^8}
 
-\frac{896631415}{8388608 x^{10}}
 
-\frac{896631415}{8388608 x^{10}}
 
+\frac{796754802993}{268435456 x^{12}}
 
+\frac{796754802993}{268435456 x^{12}}
+..$
+
+..\)
   
$\Phi(x)\approx \frac{-1}{8x}+\frac{25}{384 x^3}
+
\(\Phi(x)\approx \frac{-1}{8x}+\frac{25}{384 x^3}
 
-\frac{1073}{5120 x^5}
 
-\frac{1073}{5120 x^5}
 
+\frac{375733}{229376 x^7}
 
+\frac{375733}{229376 x^7}
 
-\frac{55384775}{2359296 x^9}
 
-\frac{55384775}{2359296 x^9}
 
+\frac{24713030909}{46137344 x^{11}}
 
+\frac{24713030909}{46137344 x^{11}}
+..$
+
+..\)
   
 
Coefficients of the expansions above can be calculated and verified with the [[Mathematica]] code below:
 
Coefficients of the expansions above can be calculated and verified with the [[Mathematica]] code below:
Line 87: Line 87:
 
Plot[{10^15 (sLA[x] Sqrt[2/(Pi x)] Cos[- Pi/4 + sLi[x]] - BesselJ[0,x])}, {x,18,29}, AspectRatio -> .3, GridLines -> {{20}, {}}]
 
Plot[{10^15 (sLA[x] Sqrt[2/(Pi x)] Cos[- Pi/4 + sLi[x]] - BesselJ[0,x])}, {x,18,29}, AspectRatio -> .3, GridLines -> {{20}, {}}]
 
</poem>
 
</poem>
The precision of corresponding approximation of [[BesselJ0]]$(x)$ reaches the machine precision at $x>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.
+
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==
 
==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
+
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
 
<ref>
 
<ref>
 
http://cose.math.bas.bg/webMathematica/webComputing/BesselZeros.jsp
 
http://cose.math.bas.bg/webMathematica/webComputing/BesselZeros.jsp
Line 123: Line 123:
 
S.F.Yu. School of Electrical & Electronic Engineering, Nanyang Technological University.Singapore.
 
S.F.Yu. School of Electrical & Electronic Engineering, Nanyang Technological University.Singapore.
 
</ref> in the following form:
 
</ref> 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_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$
+
:\( \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$
+
:\( r_{2n+1}=W ~ ~ , ~ ~ s_{n+1}=S\)
:$ \zeta_{2n+1}=SW$
+
:\( \zeta_{2n+1}=SW\)
 
That needs to be somehow interpreted.
 
That needs to be somehow interpreted.
 
==Numerical implementation==
 
==Numerical implementation==
Line 132: Line 132:
 
The numerical implementation of BesselJ0 can be extracted from description of figure http://mizugadro.mydns.jp/t/index.php/File:Besselj0map1T080.png
 
The numerical implementation of BesselJ0 can be extracted from description of figure http://mizugadro.mydns.jp/t/index.php/File:Besselj0map1T080.png
   
In [[Mathematica]], BesselJ0$(z)$ can be calculated with the built-in function, BesselJ[0,z] .
+
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$.
+
For real values of the argument, in [[C++]], there is built-in function j0 that evaluates \(J_0\).
   
 
==Application==
 
==Application==

Latest revision as of 18:25, 30 July 2019

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 \)

Symmetry

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

2.404825557695773
5.520078110286311
8.653727912911011
11.79153443901428
14.93091770848779

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


#include<stdio.h>
#include<math.h>
#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 http://mizugadro.mydns.jp/t/index.php/File:Besselj0map1T080.png

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\).

Application

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

References

  1. http://www.cl.cam.ac.uk/~jrh13/papers/bessel.pdf John Harrison. Fast and Accurate Bessel Function Computation.
  2. http://cose.math.bas.bg/webMathematica/webComputing/BesselZeros.jsp
  3. http://www.scribd.com/doc/62046269/29/A-5-Bessel-Transform-and-Discrete-Bessel-Transform 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.

Keywords

BesselJ1, BesselY0, BesselH0 Bessel function