[GIF] Dance (Chladni figures for a square drum)

transition23cqc.gif

Dance

Speaking of vibration modes of a square drum , here are the Chladni figures for linear combinations of the (20,21) and (21,20) vibration modes of the square.

This is entirely in the spirit of The Band Plays On ; since that was a while ago, let me quote from that description:

Cribbing from the MathWorld article, the vertical displacement of the (p,q) vibration mode of a 1 \times 1 square drum is

u_{pq}(x,y) = (A \cos \omega_{pq} t + B \sin \omega_{pq} t) \sin(p \pi x) \sin (q \pi y),

where \omega_{pq} = \pi \sqrt{p^2 + q^2}. This is easy enough to turn into a function:

 ?[p_, q_] := ? Sqrt[p^2 + q^2];
 ?[x_, y_, t_, p_, q_, A_, B_] := (A Cos[?[p, q] t] + B Sin[?[p, q] t]) Sin[p ? x] Sin[q ? y];

In fact, the same holds for arbitrary rectangles, so long as the product of sines becomes \sin(p\pi x/L_x)\sin(p \pi y/L_y) where L_x and L_y are the lengths of the sides of the rectangle. The nice thing about squares is that you get an extra symmetry: the (p,q) mode and the (q,p) mode have the same frequency, so any linear combination will also form a standing wave.

In this GIF, I’m taking the combination u = u_{20,21} + c u_{21,20} and (by letting c=\tan \theta) varying c from -\infty to \infty. The curves in the animation are the so-called Chladni figures, or nodal lines of the vibration, meaning the solutions of u=0.

Here’s the code which does not produce a Manipulate[] that updates nicely in real time, unfortunately):

With[{p = 20, q = 21, A = 1, B = 0, 
  cols = RGBColor /@ {"#a2ef44", "#08085e"}},
 Manipulate[
  ContourPlot[
   ?[x, y, 0., p, q, A, B] + Tan[(?/2 - .0001) 2 (? - ?/2)/?] ?[x, y, 0., q, p, A, B] == 0,
   {x, .01, .99}, {y, .01, .99},
   Axes -> False, Frame -> False, PlotPoints -> 50, 
   ContourStyle -> Directive[CapForm["Round"], Thickness[.01], cols[[1]]], 
   PlotRangePadding -> -0.01, ImageSize -> 540, 
   Background -> cols[[-1]]],
  {?, 0, ?}]
 ]
6 Likes

2015-11-02_10-07-11.png