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.
solution = Apply[Plus,solutionList]Suppose the initial displacement of the drum from equilibrium is
u0[r_] := r^2 - 1Then our initial condition becomes
initialDisplacement =The orthogonality relationship for the Bessel functions allows us to find the coefficients, c[i], using the integral formula,(solution /. {t -> 0}) == u0[r]
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]}]
Substituting these coefficients into our solution,
seriesTerms = Table[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.solutionList[[i]] /.{c[i] -> coef[[i]]},
{i,Length[j0zeroes]}]
tonePlot =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 audible range. Just double-click on the sound graphic to hear it play.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}];
Here is the fundamental tone,
tone1 = seriesTerms[[1]]/.{c -> 500, r -> 0};
Play[tone1, {t,0,0.5}];
the first overtone,
tone2 = seriesTerms[[2]]/.{c -> 500, r -> 0};
Play[tone2, {t,0,0.5}];
the second overtone,
tone3 = seriesTerms[[3]]/.{c -> 500, r -> 0};
Play[tone3, {t,0,0.5}];
and the third overtone,
tone4 = seriesTerms[[4]]/.{c -> 500, r -> 0};
Play[tone4, {t,0,0.5}];
We add these components to get the final solution.
seriesSolution = Apply[Plus,seriesTerms]Here is a graph of the four tones together for c = 1
seriesSolution1 = seriesSolution/.{c -> 1}
drumPlot =
Table[Plot[seriesSolution1, {r,0,1},
PlotRange -> {-1.3,1.3}],
{t, 0, 2.6, 0.2}];
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}];
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]],Of course, we cannot stop here. We are obliged to rotate this about the vertical axis and plot the actual drumhead.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}];
Needs["Graphics`ParametricPlot3D`"]The extra "wobble" that you see in the animation is due to the first overtone.Table[CylindricalPlot3D[seriesSolution1,{r,0,1},{theta,0,2 Pi},
PlotPoints->{10,10}, PlotRange -> {-1.2,1.2}],
{t,0,2.6,.2}];