Constructing a Series SolutionWe have just one condition left: u(r,0) = u0(r). Since our differential equation is linear, any linear combination of the solutions in the list from the previous section is also a solution.
In[40]:=solution = Apply[Plus,solutionList]
Out[40]=Suppose the initial displacement of the drum from equilibrium isBesselJ[0, 2.40483 r] c[1] Cos[2.40483 c t] +
BesselJ[0, 5.52008 r] c[2] Cos[5.52008 c t] +
BesselJ[0, 8.65373 r] c[3] Cos[8.65373 c t] +
BesselJ[0, 11.7915 r] c[4] Cos[11.7915 c t]
In[41]:=Then our initial condition becomesu0[r_] := r^2 - 1
In[42]:=initialDisplacement =
(solution /. {t -> 0}) == u0[r]
Out[42]=The orthogonality relationship for the Bessel functions allows us to find the coefficients, c[i], using the integral formula,BesselJ[0, 2.40483 r] c[1] + BesselJ[0, 5.52008 r] c[2] +
BesselJ[0, 8.65373 r] c[3] + BesselJ[0, 11.7915 r] c[4] ==
2
-1 + r
In[43]:=coef = Table[2/BesselJ[1,j0zeroes[[i,1,2]]]^2 *
NIntegrate[r u0[r] BesselJ[0,j0zeroes[[i,1,2]] r],
{r,0,1}],
{i,Length[j0zeroes]}]
Out[43]=Substituting these coefficients into our solution,{-1.10802, 0.139778, -0.0454765, 0.0209909}
In[44]:=seriesTerms = Table[solutionList[[i]] /.{c[i] -> coef[[i]]},
{i,Length[j0zeroes]}]
Out[44]=These functions represent the fundamental tone and the first 3 overtones for the drum. Let's graph each of these for a radial slice of the drum.{-1.10802 BesselJ[0, 2.40483 r] Cos[2.40483 c t],
0.139778 BesselJ[0, 5.52008 r] Cos[5.52008 c t],
-0.0454765 BesselJ[0, 8.65373 r] Cos[8.65373 c t],
0.0209909 BesselJ[0, 11.7915 r] Cos[11.7915 c t]}
tonePlot =Table[Plot[Evaluate[seriesTerms/.{c -> 1}], {r,0,1},
PlotRange -> {-1.2,1.2},
PlotStyle -> {RGBColor[0,0,0],RGBColor[1,0,0],
RGBColor[0,1,0],RGBColor[0,0,1]}],
{t, 0, 2.6, 0.2}];
Animation of overtones (29 KB)Notice that the overtones are oscillating at a higher frequency than the fundamental tone. This is what causes the overtones to have a higher pitch. We can use Mathematica to play these tones as a function of t at r = 0. We need to change the value of c, say to c = 500, so that the frequencies will be within the range of typical computer speakers. Just double-click on the sound graphic to hear it play.
Here is the fundamental tone,
tone1 = seriesTerms[[1]]/.{c -> 500, r -> 0};
Play[tone1, {t,0,0.5}];
-Sound-the first overtone,
tone2 = seriesTerms[[2]]/.{c -> 500, r -> 0};
Play[tone2, {t,0,0.5}];
-Sound-the second overtone,
tone3 = seriesTerms[[3]]/.{c -> 500, r -> 0};
Play[tone3, {t,0,0.5}];
-Sound-and the third overtone,
tone4 = seriesTerms[[4]]/.{c -> 500, r -> 0};
Play[tone4, {t,0,0.5}];
-Sound-We add these components to get the final solution.
In[45]:=seriesSolution = Apply[Plus,seriesTerms]
Out[45]=Here is a graph of the four tones together for c = 1-1.10802 BesselJ[0, 2.40483 r] Cos[2.40483 c t] +
0.139778 BesselJ[0, 5.52008 r] Cos[5.52008 c t] -
0.0454765 BesselJ[0, 8.65373 r] Cos[8.65373 c t] +
0.0209909 BesselJ[0, 11.7915 r] Cos[11.7915 c t]
In[46]:=seriesSolution1 = seriesSolution/.{c -> 1}
Out[46]=-1.10802 BesselJ[0, 2.40483 r] Cos[2.40483 t] +
0.139778 BesselJ[0, 5.52008 r] Cos[5.52008 t] -
0.0454765 BesselJ[0, 8.65373 r] Cos[8.65373 t] +
0.0209909 BesselJ[0, 11.7915 r] Cos[11.7915 t]
drumPlot =Table[Plot[seriesSolution1, {r,0,1},
PlotRange -> {-1.3,1.3}],
{t, 0, 2.6, 0.2}];
Animation of cross-section of drumhead (23 KB)and here is the sound for the four tones added together, with c = 500.
tone = seriesSolution/.{c -> 500, r -> 0};
Play[tone, {t,0,0.5}];
-Sound-What! That doesn't sound like a drum! The problem is that drumheads are strongly damped and we did not include any damping in our model. The damped solution is shown below. Try playing this sound--feel free to stand up and march if you get the urge.
solutionListDamped = Thread[Times[Array[c,Length[j0zeroes]],-Sound-Exp[-a t] Cos[Sqrt[c^2 k^2 - a^2] t] BesselJ[0,k r] /. j0zeroes]];
solutionDamped = Apply[Plus,solutionListDamped];
seriesTermsDamped = Table[solutionListDamped[[i]] /.{c[i] -> coef[[i]]},
{i,Length[j0zeroes]}];
seriesSolutionDamped = Apply[Plus,seriesTermsDamped];
tone = seriesSolutionDamped/.{c -> 500, a -> 5, r -> 0};
Play[tone, {t,0,0.5}];
Of course, we cannot stop here. We are obliged to rotate this about the vertical axis and plot the actual drumhead.
Needs["Graphics`ParametricPlot3D`"]Table[CylindricalPlot3D[seriesSolution1,{r,0,1},{theta,0,2 Pi},
PlotPoints->{10,10}, PlotRange -> {-1.2,1.2}],
{t,0,2.6,.2}];
Animation of vibrating drumhead (93 KB)The extra "wobble" that you see in the animation is due to the first overtone.