Application Center - Maplesoft

App Preview:

Higher-dimensional PDE: Vibrating circular membranes and Bessel functions.

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

2d-WaveBessel.mws

Partial Differential Equations

Higher-dimensional PDE: Vibrating circular membranes and Bessel functions.

Anton Dzhamay

Department of Mathematics

The University of Michigan

Ann Arbor, MI 48109

wPage: http://www.math.lsa.umich.edu/~adzham

email: adzham@umich.edu

Copyright  2004  by Anton Dzhamay

All rights reserved

Introduction

In this worksheet we consider some examples of vibrating circular membranes. Such membranes are described by the two-dimensional wave equation. Circular geometry requires the use of polar coordinates, which in turn leads to the Bessel ODE , and so the basic solutions obtained by the method of separations of variables (product solutions or standing waves) are described with the help of Bessel functions .

Packages

Some packages that we use in this worksheet:

>    restart: with(plottools): with(plots):

Warning, the names arrow and changecoords have been redefined

>   

Bessel Functions

Graphs of a few Bessel functions of the first and second kind:

>    display([seq(
display(plot([BesselJ(m,x),BesselY(m,x)],x=0..20,thickness=3,
color=[red,blue],view=-1..1,
title=sprintf("Bessel functions J_%d and Y_%d",m,m))),m=0..5)],
insequence=true);

[Maple Plot]

For large values of z  Bessel functions can be approximated by the usual trigonometric functions with decreasing amplitude:

>    BesselJa:=(m,z)->sqrt(2/(Pi*z))*cos(z-Pi/4-m*Pi/2):
BesselYa:=(m,z)->sqrt(2/(Pi*z))*sin(z-Pi/4-m*Pi/2):

>    display([seq(
display(plot([BesselJ(m,x),BesselJa(m,x)],x=0..20,thickness=3,
color=[red,blue],view=-1..1,
title=sprintf("Bessel function J_%d and its approximation",m))),m=0..5)],
insequence=true);

[Maple Plot]

>    display([seq(
display(plot([BesselY(m,x),BesselYa(m,x)],x=0..20,thickness=3,
color=[red,blue],view=-1..1,
title=sprintf("Bessel function Y_%d and its approximation",m))),m=0..5)],
insequence=true);

[Maple Plot]

>   

Definitions

Let us introduce a short-hand notation for the n -th zero of the Bessel function J[m] :

>    z:=BesselJZeros:z(m,n);

BesselJZeros(m,n)

First we define the spatial eigenfunction Phi[m, n](r,theta)    of the Dirichlet boundary problem:

>    PhiC:=unapply(BesselJ(m,z(m,n)*r/a)*cos(m*theta),m,n):'Phi[c][m,n](x,y)'=PhiC(m,n);

Phi[c][m,n](x,y) = BesselJ(m,BesselJZeros(m,n)*r/a)*cos(m*theta)

>    PhiS:=unapply(BesselJ(m,z(m,n)*r/a)*sin(m*theta),m,n):'Phi[s][m,n](r,theta)'=PhiS(m,n);

Phi[s][m,n](r,theta) = BesselJ(m,BesselJZeros(m,n)*r/a)*sin(m*theta)

The corresponding eigenvalue lambda[m, n]   is

>    lambda:=unapply((z(m,n)/a)^2,m,n):'lambda[m,n]'=lambda(m,n);

lambda[m,n] = BesselJZeros(m,n)^2/a^2

In this worksheet we consider only initial displacements, and therefore

>    T:=unapply(cos(c*sqrt(lambda(m,n))*t),m,n):T(m,n);

cos(c*(BesselJZeros(m,n)^2/a^2)^(1/2)*t)

and the product solutions are

>    uC:=unapply(PhiC(m,n)*(T(m,n)),m,n):'u[c][m,n](r,theta,t)'=uC(m,n);
uS:=unapply(PhiS(m,n)*(T(m,n)),m,n):'u[s][m,n](r,theta,t)'=uS(m,n);

u[c][m,n](r,theta,t) = BesselJ(m,BesselJZeros(m,n)*r/a)*cos(m*theta)*cos(c*(BesselJZeros(m,n)^2/a^2)^(1/2)*t)

u[s][m,n](r,theta,t) = BesselJ(m,BesselJZeros(m,n)*r/a)*sin(m*theta)*cos(c*(BesselJZeros(m,n)^2/a^2)^(1/2)*t)

The period of ( m, n )-oscillation is

>    P:=unapply( (2*Pi)/(c*sqrt(lambda(m,n))),m,n):P(m,n);

2*Pi/c/(BesselJZeros(m,n)^2/a^2)^(1/2)

We also introduce the following procedure that will allow us to plot solutions together with nodal curves:

>    addcoords(z_cylindrical,[z,r,theta],[r*cos(theta),r*sin(theta),z]);
wave:=proc(sol)
display([
contourplot3d(sol,r=0..1.01*a,theta=0..2*Pi,contours=[0],color=red,
coords=z_cylindrical,thickness=3,numpoints=600),
plot3d(sol,r=0..1.01*a,theta=0..2*Pi,coords=z_cylindrical,shading=zhue)],scaling=constrained,axes=boxed);
end:

>   

Vibrating Circular Drums

>    c:=1:a:=2:

The "lowest energy" mode has the eigenvalue

>    'lambda(0,1)'=lambda(0,1);

lambda(0,1) = 1/4*BesselJZeros(0,1)^2

and the corresponding eigenfunction is obtained by mapping the first zero of J[0]  to the radius of the circle:

>    'PhiC[0,1]'=PhiC(0,1);

PhiC[0,1] = BesselJ(0,1/2*BesselJZeros(0,1)*r)

>    animate(wave,[uC(0,1)],t=0..P(0,1));

[Maple Plot]

Here we map the second zero z[0,2]  of   J[0]  to the radius a  of the circle:

>    animate(wave,[uC(0,2)],t=0..P(0,2));

[Maple Plot]

And the third:

>    animate(wave,[uC(0,3)],t=0..P(0,3));

[Maple Plot]

Taking m = 1  introduces the cosine and sine terms:

>    'PhiC[1,1]'=PhiC(1,1);'PhiS[1,1]'=PhiS(1,1);

PhiC[1,1] = BesselJ(1,1/2*BesselJZeros(1,1)*r)*cos(theta)

PhiS[1,1] = BesselJ(1,1/2*BesselJZeros(1,1)*r)*sin(theta)

>    animate(wave,[uC(1,1)],t=0..P(1,1));

[Maple Plot]

>    animate(wave,[uS(1,1)],t=0..P(1,1));

[Maple Plot]

>    animate(wave,[uC(1,1)+uS(1,1)],t=0..P(1,1));

[Maple Plot]

One can easily identify the type of the product solution from the picture of the nodal curve: three radial lines below tell us that m = 3 , two circular lines tell us that n = 2 , and since one of the nodal lines coinsides with the x -axis (given by theta = 0 ), we know that the theta -term is a sine function:

>    display(animate(wave,[uS(3,2)],t=0..P(3,2)),insequence=true,orientation=[-90,0]);

[Maple Plot]

Choosing eigenfunctions that have different eigenvalues results in "moving waves":

>    animate(wave,[uS(1,1)+0.2*uC(0,3)],t=0..2*P(1,1)*P(0,3));

[Maple Plot]

>    animate(wave,[uS(2,2)+0.3*uC(1,4)],t=0..2*P(2,2)*P(1,4));

[Maple Plot]

>    animate(wave,[uC(0,1)+0.8*uS(1,2)+0.3*uC(1,1)],t=0..P(0,1)*P(1,1)*P(1,2));

[Maple Plot]

Clean-up:

>    a:='a':c:='c':

>   

References

  • Walter A. Strauss, Partial Differential Equations: An Introduction, Wiley, 1992
  • Richard Haberman, Elementary Applied Partial Differential Equations, 3rd edition, Prentice Hall
  • Stanley J. Farlow, Partial Differential Equations for Scientists and Engineers, Dover 1982

Disclaimer

"While every effort has been made to validate the solutions in this worksheet, Waterloo Maple Inc. and the contributors are not responsible for any errors contained and are not liable for any damages resulting from the use of this material."