Two_dim_standing_wave.gif


Description Illustration of a standing wave in a cavity resonator . Mathematically, this also represents a vibration mode of a rectangular drum or membrane .
Date (UTC)
Source self-made with MATLAB
Author Oleg Alexandrov
This diagram was created with MATLAB .
Public domain I, the copyright holder of this work, release this work into the public domain . This applies worldwide.
In some countries this may not be legally possible; if so:
I grant anyone the right to use this work for any purpose , without any conditions, unless such conditions are required by law.

Source code ( MATLAB )

% illustration of a standing wave in two dimensions

% box size
Lx = 3; 
Ly = 4; 

h= 0.1; % grid size
[X, Y] = meshgrid(0:h:Lx, 0:h:Ly);

numP_x = 2; numP_y = 3; % number of peaks in x and y

Z=0.5*sin(2*pi*numP_x*X/Lx).*sin(2*pi*numP_y*Y/Ly);

% normalize from 0 to scale
scale = 0.5;
%Z = Z - min(min(Z));
%Z = Z/max(max(Z));

M=11;
T=linspace(0.0, 2*pi, M); T=T(1:(M-1)); T = T + 0.5*pi/(M-1);
shift = 1;

for p=1:1
   for iter=1:length(T)

      %figure(1); clf; hold on;

      t = T(iter);

      figure(1); clf;  hold on;
      surf(X, Y, Z*cos(t));
      caxis([-1, 1]);
      shading faceted;
      colormap autumn;

      
      axis equal; axis off;
      axis([0, Lx, 0, Ly, -1, 1]);

      % viewing angle
      view(38, 42);

      %H=text(0, -0.3, 1.4, sprintf('(%d, %d) mode', k, p), 'fontsize', 25);
      %image(scale*((Z*sin(t)+shift)));
      %axis equal; axis xy;
      %axis off;

      file=sprintf('Frame%d.png', 1000+iter);
      disp(sprintf('Saving to %s', file));
      print('-dpng',  '-zbuffer',  '-r100', file);
      pause(0.2);
      
   end

end

% saved to gif with the command
% convert -density 100 -loop 1000 -delay 20 Frame1* Two_dim_standing_wave.gif
% then cropped and scaled in Gimp.

Captions

Helmholtz resonator

Elementos representados en este archivo

depicts

16 January 2008