Orthogonal series and boundary value problems Some normal modes of vibration


This is an evaluated Mathematica notebook. If you have Mathematica or MathReader (which is available free from WRI, you may download the notebook file. This notebook contains some Mathematica calculations for chapters IX, PDEs in space, and X, PDEs on a disk, of Harrell's WWW textbook.

(c) Copyright 1994,1995 by Evans M. Harrell, II. All rights reserved


Let us begin with some representative normal modes for the vibrations of a rectangular
membrane, after which we will compare with those of a circular membrane, like a drum.

In the x-direction the rectangle has length 1 and in the y-direction it has length 2.

  -SurfaceGraphics-

In[2]:=

  Plot3D[Sin[2 Pi x] Sin[5 Pi y/2], {x,0,1},{y,0,2}]

Out[2]=

  -SurfaceGraphics-

(Return to Chapter IX, Exercise IX.7.)


When we separate variables in polar coordinates, instead of sines and cosines, we
encounter products of trigonometric functions of theta with radial functions of a new sort.
The radial equation leads to Bessel functions. Here are some graphs to show what Bessel
In[3]:=
  Plot[{BesselJ[0,r], BesselJ[1,r], BesselJ[2,r]},{r,0,4}]

Out[3]=

  -Graphics-

In[4]:=

  Plot[BesselJ[0,r],{r,0,40}]

Out[4]=

  -Graphics-

Notice that the Bessel function oscillates qualitatively like a sine or cosine. It drops off as
the variable increases, and the oscillations are not quite as regular. We can calculate the
positions of the zeroes quite easily. They are called

In[5]:=

  j0[n_] := x /. FindRoot[BesselJ[0,x] == 0, {x, n 2.5}]

In[6]:=

  jvals = Array[j0, 5]

Out[6]=

  {2.40483, 5.52008, 8.65373, 8.65373, 11.7915}

In[7]:=

  j01 := 2.4048255577
  j02 := 5.5200781103
  j11 := 3.83171
 j12 := 7.01559

The normal modes of the disk problem are products of radial functions of the form
BesselJ[m, jm[n] r] times Sin[m theta] or Cos[m theta] . Let's now look at some of the
normal modes:

In[8]:=

  Needs["Graphics`ParametricPlot3D`"]

In[9]:=

  CylindricalPlot3D[BesselJ[0,j01 r] , {r, 0, 1}, {phi, 0, 2 Pi}]

Out[9]=

  -Graphics3D-

In[10]:=

  CylindricalPlot3D[BesselJ[0,j02 r] , {r, 0, 1}, {phi, 0, 2 Pi}]

  -Graphics3D-

In[11]:=

  CylindricalPlot3D[BesselJ[1,j11 r] Cos[phi], {r, 0, 1}, {phi, 0, 2 Pi}]
< /B>

Out[11]=

  -Graphics3D-

In[12]:=

  j21 := 5.13562
  j22 := 8.41724

In[13]:=

  CylindricalPlot3D[BesselJ[2,j21 r] Cos[2 phi], {r, 0, 1}, {phi, 0, 2 Pi}]

Out[13]=

  -Graphics3D-

In[14]:=

  CylindricalPlot3D[BesselJ[2,j22 r] Cos[2 phi], {r, 0, 1}, {phi, 0, 2 Pi}]

Out[14]=

  -Graphics3D-

As a representative Disk problem, let us consider the heat equation on a disk, with zero
DBC at r = 1, and initial conditions u[r,theta, t=0] = 1. We need to expand the function
f[r] = 1 in a Fourier Bessel series. Since the function is radial (independent of theta) only
m=0 modes contribute.

In[15]:=

  Clear[j0]
  j0[1] := 2.4048255577
  j0[2] := 5.5200781103
  j0[3] := 8.65373
  j0[4] := 11.7915

In[16]:=

  BesselCoeffs[n_] := (2/(BesselJ[1,j0[n]]^2)) \
            Integrate[BesselJ[0,j0[n] x] x, {x,0,1}]

In[17]:=

  Array[BesselCoeffs, 4]

  General::intinit: 
Loading integration packages -- please wait.

Out[17]=

  {1.60197, -1.0648, 0.851399, -0.729645}

In[18]:=

  Needs["Graphics`ParametricPlot3D`"]

In[19]:=

  CylindricalPlot3D[Sum[BesselCoeffs[n] BesselJ[0,j0[n] r], {n,1,4}] , {r, 0, 1}
, {phi, 0,
  2 Pi}]

Out[19]=

  -Graphics3D-

This is meant to be the initial condition, which should be at constant height 1, but we have
kept only a few terms in the series. Notice that the boundary conditions are verified