Message Boards Message Boards

GROUPS:

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

Posted 1 month ago
270 Views
|
1 Reply
|
6 Total Likes
|

Chladni figures for a square drum

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, π}]
 ]

enter image description here - Congratulations! This post is now a Staff Pick as distinguished by a badge on your profile! Thank you, keep it coming, and consider contributing your work to the The Notebook Archive!

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract