5 10 15 20 25 30 x 0.4 0.2 0.2 0.4 0.6 0.8 1.0

Lecture 23 Frobenius and Bessel
In this Lecture we discuss solutions of differential equations expressed as power series expansions around a regular singular point
(the Frobenius method). Of special interest are the Bessel functions which arise in the solution of Laplace's equation in cylindrical coordinates (integer index) and in the solution of the Helmholtz equation in spherical coordinates (half-integer index). For
example, consider Bessel's equation
In[1]:=
Out[1]=
DSolvex ^ 2 y ''x  x y 'x  x ^ 2  p ^ 2yx  0, yx, x
yx  BesselJp, x C1  BesselYp, x C2
which Mathematica readily recognizes as being solved by the two forms of the Bessel function. We can look at the series
expansions via
In[2]:=
Out[2]=
FullSimplify SeriesBesselJp, x , x, 0, 10
xp
2p
Gamma1  p
25p x4
Gamma3  p


22p x2
Gamma2  p

27p x6
3 Gamma4  p

211p x8
3 Gamma5  p

213p x10
15 Gamma6  p
 Ox11
where this matches the form in Eq. (23.14) if we takes some care to see the 1/(m+1) factor appearing (factors of 1/2 and 1/odd).
The functions look as in the Lecture
In[3]:=
Out[3]=
PlotBesselJ0, x, x, 0, 30, PlotRange  0.5, 1,
PlotStyle  Thick, AxesLabel  "x", "J0 x", LabelStyle  Large
J0 x
1.0
0.8
0.6
0.4
0.2
0.2
0.4
5 10 15 20 25 30
x
2
Lec23_228_09.nb
In[4]:=
Out[4]=
PlotBesselJ1, x, x, 0, 30, PlotRange  0.5, 1,
PlotStyle  Thick, AxesLabel  "x", "J1 x", LabelStyle  Large
J1 x
1.0
0.8
0.6
0.4
0.2
0.2
0.4
In[5]:=
Out[5]=
PlotBesselJ2, x, x, 0, 30, PlotRange  0.5, 1,
PlotStyle  Thick, AxesLabel  "x", "J2 x", LabelStyle  Large
J2 x
1.0
0.8
0.6
0.4
0.2
0.2
0.4
In[6]:=
Out[6]=
5 10 15 20 25 30
x
5 10 15 20 25 30
x
PlotBesselJ3, x, x, 0, 30, PlotRange  0.5, 1,
PlotStyle  Thick, AxesLabel  "x", "J3 x", LabelStyle  Large
J3 x
1.0
0.8
0.6
0.4
0.2
0.2
0.4
5 10 15 20 25 30
Also consider the asymptotic limit
x
Lec23_228_09.nb
In[7]:=
PlotBesselJ3, x 
2
Cosx 
x
7
4
3
 , x, 0, 1000, PlotRange  5, 5,
PlotStyle  Thick, AxesLabel  "x", "Ratio", LabelStyle  Large
Out[7]=
Ratio
4
2
x
200 400 600 800 1000
2
4
Interesting - the ratio is trying to settle down to unity, but there remain fluctuations that may be just numerics since both numerator and denominator are smooth functions!
Now consider the second solution with singular behavior at the origin
In[8]:=
Out[8]=
FullSimplify SeriesBesselYp, x , x, 0, 10
xp 
2p Cosp  Gammap


22p Cosp  Gammap x2
p
25p Cosp  Gamma2  p x4


27p Cosp  Gamma3  p x6
211p Cosp  Gamma4  p x8
3
xp 
2p Gammap


211p Gamma4  p x8
3
3



213p Cosp  Gamma5  p x10
15 
22p Gamma1  p x2



25p Gamma2  p x4

213p Gamma5  p x10
15 
 Ox
11

 Ox11 
27p Gamma3  p x6
3

4
Lec23_228_09.nb
In[9]:=
PlotBesselY0, x, x, 0, 30, PlotRange  5, 1,
PlotStyle  Thick, AxesLabel  "x", "Y0 x", LabelStyle  Large
Y0 x
1
Out[9]=
1
2
3
4
5
5 10 15 20 25 30
x
There is a Log[x] singularity at the origin
In[10]:=
PlotBesselY1, x, x, 0, 30, PlotRange  5, 1,
PlotStyle  Thick, AxesLabel  "x", "Y1 x", LabelStyle  Large
Y1 x
1
Out[10]=
In[11]:=
1
2
3
4
5
5 10 15 20 25 30
x
PlotBesselY2, x, x, 0, 30, PlotRange  5, 1,
PlotStyle  Thick, AxesLabel  "x", "Y2 x", LabelStyle  Large
Y2 x
1
Out[11]=
1
2
3
4
5
5 10 15 20 25 30
x
Lec23_228_09.nb
In[12]:=
PlotBesselY3, x, x, 0, 30, PlotRange  5, 1,
PlotStyle  Thick, AxesLabel  "x", "Y3 x", LabelStyle  Large
Y3 x
1
Out[12]=
5 10 15 20 25 30
1
2
3
4
5
x
So qualitatively similar to the regular Bessel function except at the origin. Finally consider the half-integer case - the spherical
Bessel function (solve Eq. (23.9))
In[13]:=
Out[13]=
DSolvex ^ 2 y ''x  2x y 'x  x ^ 2  ll  1yx  0, yx, x
yx  C1 SphericalBesselJ l, x  C2 SphericalBesselY l, x
So we can expand and plot as above
In[14]:=
Out[14]=
FullSimplify SeriesSphericalBesselJ p, x , x, 0, 10
21p
xp

3
23p

5
Gamma 2  p
28p
3
In[15]:=
Out[15]=

Gamma 2  p
  x6
9
Gamma 2
 x2
212p

 p
3
26p
7
Gamma 2  p
214p
 x8
11
Gamma 2
 x4

 p
15

  x10
13
Gamma 2
1
x2

x4

120
x6

5040
x8

362 880
x10
 Ox11
39 916 800
which we can compare to (Eq.(23.18))
Out[16]=
 p
FullSimplify SeriesSphericalBesselJ 0, x , x, 0, 10
6
In[16]:=
 Ox11
FullSimplify SeriesSinx  x , x, 0, 10
1
x2
6

x4
120

x6

5040
Yep, the same. Plotting we have
x8
362 880

x10
39 916 800
 Ox
11
5
6
Lec23_228_09.nb
In[17]:=
Out[17]=
PlotSphericalBesselJ 0, x, x, 0, 30, PlotRange  0.5, 1,
PlotStyle  Thick, AxesLabel  "x", "j0 x", LabelStyle  Large
j0 x
1.0
0.8
0.6
0.4
0.2
0.2
0.4
In[18]:=
Out[18]=
Out[19]=
x
PlotSphericalBesselJ 1, x, x, 0, 30, PlotRange  0.5, 1,
PlotStyle  Thick, AxesLabel  "x", "j1 x", LabelStyle  Large
j1 x
1.0
0.8
0.6
0.4
0.2
0.2
0.4
In[19]:=
5 10 15 20 25 30
5 10 15 20 25 30
x
PlotSphericalBesselJ 2, x, x, 0, 30, PlotRange  0.5, 1,
PlotStyle  Thick, AxesLabel  "x", "j2 x", LabelStyle  Large
j2 x
1.0
0.8
0.6
0.4
0.2
0.2
0.4
5 10 15 20 25 30
x
Lec23_228_09.nb
In[20]:=
7
PlotSphericalBesselJ 3, x, x, 0, 30, PlotRange  0.5, 1,
PlotStyle  Thick, AxesLabel  "x", "j3 x", LabelStyle  Large
j3 x
1.0
0.8
0.6
0.4
0.2
Out[20]=
0.2
0.4
5 10 15 20 25 30
x
Similar to the usual Bessel functions, but, as expected, damping more quickly.
As discussed in the lecture, the zeroes of the Bessel functions play a central role their use as basis functions and Mathematica
supplies a function to find these zeros. The nth zero of J p (greater than zero - i.e., the origin is not included in the count) is given
by
In[21]:=
xp, n : BesselJZero p, n
In[22]:=
x0, 1
Out[22]=
BesselJZero 0, 1
Just symbolic - So try
In[23]:=
xp, n : NBesselJZero p, n
In[24]:=
x0, 1
Out[24]=
2.40483
In[25]:=
x1, 1
Out[25]=
3.83171
In[26]:=
x1, 2
Out[26]=
7.01559
In[27]:=
Out[27]=
x1, 2  x1, 1  
1.01346
Not separated by , but for large n
In[28]:=
Out[28]=
x1, 101  x1, 100  
1.
Now let's verify the orthogonality relationship of Eq. (23.24)
8
Lec23_228_09.nb
In[29]:=
Out[29]=
Integrate  BesselJp, BesselJZero p, m   R0BesselJp, BesselJZero p, n   R0, , 0, R0
IfRep  1,
R02 BesselJ1  p, BesselJZero p, m BesselJp, BesselJZero p, n BesselJZero p, m 
BesselJ1  p, BesselJZero p, n BesselJp, BesselJZero p, m BesselJZero p, n 
BesselJZero p, m2  BesselJZero p, n2 , Integrate
 BesselJp,
 BesselJZero p, m
 BesselJp,
 BesselJZero p, n
, 0, R0, Assumptions  Rep  1
R0
In[30]:=
Out[30]=
R0
,
FullSimplify , Assumptions  p  Integers, p  1
R0 BesselJ1  p, BesselJZero p, m BesselJp, BesselJZero p, n BesselJZero p, m 
2
BesselJ1  p, BesselJZero p, n BesselJp, BesselJZero p, m BesselJZero p, n 
BesselJZero p, m  BesselJZero p, n 
2
2
Still in a messy form. Let's do an explicit version for p = 0.
2
In[31]:=
R0 ^ 2 BesselJ1, BesselJZero 0, m ^ 2

Integrate  BesselJ0, BesselJZero 0, m   R0BesselJ0, BesselJZero 0, n   R0, , 0, R0
Out[31]=
2 BesselJ0, BesselJZero 0, n BesselJ1, BesselJZero 0, m BesselJZero 0, m 
BesselJ0, BesselJZero 0, m BesselJ1, BesselJZero 0, n BesselJZero 0, n 
BesselJ1, BesselJZero 0, m BesselJZero 0, m  BesselJZero 0, n 
2
In[32]:=
Out[32]=
2
2
FullSimplify , Assumptions  p  Integers, p  1
2 BesselJ0, BesselJZero 0, n BesselJ1, BesselJZero 0, m BesselJZero 0, m 
BesselJ0, BesselJZero 0, m BesselJ1, BesselJZero 0, n BesselJZero 0, n 
BesselJ1, BesselJZero 0, m2 BesselJZero 0, m2  BesselJZero 0, n2
Still not using all the information in the abstract case, e.g.,
In[33]:=
Out[33]=
BesselJ0, BesselJZero 0, 1
0
So make a table
Lec23_228_09.nb
In[34]:=
TableForm Table
m, n,
2
R0 ^ 2 BesselJ1, BesselJZero 0, m ^ 2
Integrate BesselJ0, BesselJZero 0, m   R0
BesselJ0, BesselJZero 0, n   R0, , 0, R0, m, 1, 10, n, 1, 10
Out[34]//TableForm=
1
1
1
1
2
0
1
3
0
1
4
0
1
5
0
1
6
0
1
7
0
1
8
0
1
9
0
1
10
0
2
1
0
2
2
1
2
3
0
2
4
0
2
5
0
2
6
0
2
7
0
2
8
0
2
9
0
2
10
0
3
1
0
3
2
0
3
3
1
3
4
0
3
5
0
3
6
0
3
7
0
3
8
0
3
9
0
3
10
0
4
1
0
4
2
0
4
3
0
4
4
1
4
5
0
4
6
0
4
7
0
4
8
0
4
9
0
4
10
0
5
1
0
5
2
0
5
3
0
5
4
0
5
5
1
5
6
0
5
7
0
5
8
0
5
9
0
5
10
0
6
1
0
6
2
0
6
3
0
6
4
0
6
5
0
6
6
1
6
7
0
6
8
0
6
9
0
6
10
0
7
1
0
7
2
0
7
3
0
7
4
0
7
5
0
7
6
0
7
7
1
7
8
0
7
9
0
7
10
0
8
1
0
8
2
0
8
3
0
8
4
0
8
5
0
8
6
0
8
7
0
8
8
1
8
9
0
8
10
0
9
1
0
9
2
0
9
3
0
9
4
0
9
5
0
9
6
0
9
7
0
9
8
0
9
9
1
9
10
0
10
1
0
10 10 10 10 10 10 10 10
2
3
4
5
6
7
8
9
0
0
0
0
0
0
0
0
10
10
1
Confirming the expected result- if somewhat painfully - only m = n is non-zero and is unity with the given normalization.
The coefficient of Eq.(23.26) is found via
2
In[35]:=
cn :
R0 ^ 2 BesselJ1, BesselJZero 0, n ^ 2

Integrate BesselJ0, BesselJZero 0, n   R0T0, , 0, R0
In[36]:=
cn
BesselJ1, BesselJZero 0, n BesselJZero 0, n
2 T0
Out[36]=
which we recognize as the result in Eq.(23.26). For fun let's see what the corresponding (truncated) series looks like as a function of  with both T0 and R0 set to 1.
9
10
Lec23_228_09.nb
In[37]:=
Out[37]=
In[38]:=
Out[38]=
T0  1; R0  1
1
cc  TableNcn, n, 1, 20
1.60197, 1.0648, 0.851399, 0.729645, 0.648524, 0.589543,
0.54418, 0.507894, 0.478012, 0.452851, 0.431284, 0.412531, 0.396028,
0.38136, 0.368208, 0.35633, 0.345532, 0.335659, 0.326587, 0.318213
Things are faster if we use numerical values
In[39]:=
T, m : Sumccn BesselJ0, NBesselJZero 0, n , n, 1, m
In[40]:=
T2  T, 2
Out[40]=
In[41]:=
Out[41]=
1.60197 BesselJ0, 2.40483   1.0648 BesselJ0, 5.52008 
PlotT2, , 0, 1.0, PlotRange  0, 1.5,
PlotStyle  Thick, AxesLabel  "", "T2", LabelStyle  Large
T2
1.4
1.2
1.0
0.8
0.6
0.4
0.2

0.0 0.2 0.4 0.6 0.8 1.0
In[42]:=
Out[42]=
T5  T, 5
1.60197 BesselJ0, 2.40483   1.0648 BesselJ0, 5.52008  
0.851399 BesselJ0, 8.65373   0.729645 BesselJ0, 11.7915   0.648524 BesselJ0, 14.9309 
Lec23_228_09.nb
In[43]:=
Out[43]=
11
PlotT5, , 0, 1.0, PlotRange  0, 1.5,
PlotStyle  Thick, AxesLabel  "", "T5", LabelStyle  Large
T5
1.4
1.2
1.0
0.8
0.6
0.4
0.2

0.0 0.2 0.4 0.6 0.8 1.0
In[44]:=
Out[44]=
In[45]:=
Out[45]=
T10  T, 10
1.60197 BesselJ0, 2.40483   1.0648 BesselJ0, 5.52008   0.851399 BesselJ0, 8.65373  
0.729645 BesselJ0, 11.7915   0.648524 BesselJ0, 14.9309  
0.589543 BesselJ0, 18.0711   0.54418 BesselJ0, 21.2116  
0.507894 BesselJ0, 24.3525   0.478012 BesselJ0, 27.4935   0.452851 BesselJ0, 30.6346 
PlotT10, , 0, 1.0, PlotRange  0, 1.5,
PlotStyle  Thick, AxesLabel  "", "T10", LabelStyle  Large
T10
1.4
1.2
1.0
0.8
0.6
0.4
0.2

0.0 0.2 0.4 0.6 0.8 1.0
In[46]:=
Out[46]=
T20  T, 20
1.60197 BesselJ0, 2.40483   1.0648 BesselJ0, 5.52008   0.851399 BesselJ0, 8.65373  
0.729645 BesselJ0, 11.7915   0.648524 BesselJ0, 14.9309  
0.589543 BesselJ0, 18.0711   0.54418 BesselJ0, 21.2116   0.507894 BesselJ0, 24.3525  
0.478012 BesselJ0, 27.4935   0.452851 BesselJ0, 30.6346   0.431284 BesselJ0, 33.7758  
0.412531 BesselJ0, 36.9171   0.396028 BesselJ0, 40.0584   0.38136 BesselJ0, 43.1998  
0.368208 BesselJ0, 46.3412   0.35633 BesselJ0, 49.4826   0.345532 BesselJ0, 52.6241  
0.335659 BesselJ0, 55.7655   0.326587 BesselJ0, 58.907   0.318213 BesselJ0, 62.0485 
12
Lec23_228_09.nb
In[47]:=
Out[47]=
PlotT20, , 0, 1.0, PlotRange  0, 1.5,
PlotStyle  Thick, AxesLabel  "", "T20", LabelStyle  Large
T20
1.4
1.2
1.0
0.8
0.6
0.4
0.2

0.0 0.2 0.4 0.6 0.8 1.0