Worksheet: Bessel.mw 

Bessel Functions:   J[0](x) 

> restart:with(plots):
 

> ?Bessel <- For help with Bessel Functions
 

Meet the Bessel Functions 

 

> plot({BesselJ(0,x),BesselY(0,x)},x=0..20,y=-1.5..1.5,title="J_0(x) & Y_0(x)",numpoints=500);
 

Plot_2d
 

Notice that J[0](0)=1, but Y[0](x) is unbounded as x-->0. 

Maple has a nice feature to find the roots: 

> BesselJZeros(0,1);The first zero of J[0](x)
 

BesselJZeros(0, 1)
 

> evalf(BesselJZeros(0,1));The numerical value of the first zero of J[0](x)
 

2.404825558
 

Look at the plot of J[0] above to see this is reasonable. I don't like typing BesselJZeros!   Maple has a nice alias feature: 

> alias(Z=BesselJZeros):
 

> seq(evalf(Z(0,n)),n=1..5); The first five positive  zeroes of J_0
 

2.404825558, 5.520078110, 8.653727913, 11.79153444, 14.93091771
 

> J:=BesselJ(0,r);Jr:=diff(J,r);Jrr:=diff(J,r$2);
 

 

 

BesselJ(0, r)
`+`(`-`(BesselJ(1, r)))
`+`(`-`(BesselJ(0, r)), `/`(`*`(BesselJ(1, r)), `*`(r)))
 

> Jrr+Jr/r+J; Clearly J saitisfies the Bessel's DE.
 

0
 

Orthogonality 

> m:=1;n:=2;
 

 

1
2
 

> R_m:=BesselJ(0,Z(0,m)*r);R_n:=BesselJ(0,Z(0,n)*r);
 

 

BesselJ(0, `*`(Z(0, 1), `*`(r)))
BesselJ(0, `*`(Z(0, 2), `*`(r)))
 

> plot({R_m,R_n},r=0..1,title="Two Eigenfunctions");
 

Plot_2d
 

Now  remember the weight function p(r)=r !! 

> plot(R_m*R_n*r,r=0..1); I_mn:=Int(R_m*R_n*r,r=0..1)=evalf(int(R_m*R_n*r,r=0..1));
 

 

Plot_2d
Int(`*`(BesselJ(0, `*`(Z(0, 1), `*`(r))), `*`(BesselJ(0, `*`(Z(0, 2), `*`(r))), `*`(r))), r = 0 .. 1) = 0.1296296296e-13
 

What happens if you forget the weight function? 

> plot(R_m*R_n,r=0..1); I_mn:=Int(R_m*R_n,r=0..1)=evalf(int(R_m*R_n,r=0..1));
 

 

Plot_2d
Int(`*`(BesselJ(0, `*`(Z(0, 1), `*`(r))), `*`(BesselJ(0, `*`(Z(0, 2), `*`(r))))), r = 0 .. 1) = .1960822948
 

>