
Good Vibrations
In the same spirit as The Band Plays On , here are Chladni patterns (which is to say: the nodal lines) for a family of vibration modes on the disk interpolating between the (2,3) mode and the (3,2) mode. ContourPlot is pretty slow for this, so rather than an unresponsive Manipulate, here’s the code for generating the GIF:
BesselZeros = N@Table[BesselJZero[m, n], {m, 0, 5}, {n, 1, 5}];
?[m_, n_] := BesselZeros[[m + 1, n]];
u[m_, n_, r_, ?_, t_, c_, A_, B_, C_, D_]
:= (A Cos[c ?[m, n] t] + B Sin[c ?[m, n] t])
BesselJ[m, ?[m, n] r] (C Cos[m ?] + D Sin[m ?]);
diskChladni = With[
{m = 1,
n = 2,
c = 1,
cols = RGBColor /@ {"#D7F2F7", "#354D62"}},
ParallelTable[
Show[
Graphics[{Thickness[.005], cols[[1]], Circle[]}],
ContourPlot[
Cos[t] u[2, 3, Norm[{-y, x}], ArcTan[-y, x], 0, c, 1/2, 0, 1/2, 0]
+ Sin[t] u[3, 2, Norm[{-y, x}], ArcTan[-y, x], 0, c, 1/2, 0, 1/2, 0] == 0,
{x, -1, 1}, {y, -1, 1}, PlotPoints -> 100,
ContourStyle -> Directive[Thickness[.005], cols[[1]]],
RegionFunction -> Function[{x, y, z}, x^2 + y^2 < .99]],
Background -> cols[[-1]], PlotRange -> Sqrt[2],
ImageSize -> 540],
{t, 0., ? - #, #}] &[?/200]
];
Export[NotebookDirectory[] <> "diskChladni.gif", diskChladni, "DisplayDurations" -> {3/100}]