File:Spherical wave2.gif

Summary

Description Illustration of a en:Spherical wave. Here the negative part of the wave is truncated. This needs to be corrected at some point.
Date (UTC)
Source self-made with MATLAB
Author Oleg Alexandrov
Other versions Image:Spherical wave.gif
 
This diagram was created with MATLAB.
Category:PNG created with MATLAB#Spherical%20wave2.gif

Licensing

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.
Category:Self-published work#Spherical%20wave2.gifCategory:PD-self#Spherical%20wave2.gif

MATLAB source code

% an illustration of a spherical wave

plane_wave = 1;
spherical_wave = 2;

%wave_type = plain_wave;
wave_type = spherical_wave;

if wave_type == plane_wave

   % window size
   Lx=0.4;
   Lx=1;

   % blow up the image by this factor to display better
   factor = 80;

   % a small shift to be added below for graph. purposes.
   shift = 0.3; 
   
elseif wave_type == spherical_wave
      
      Lx = 0.5;
      Ly = Lx;
      factor = 1;
      shift = 3;
end

Mx = Lx/2;
Wy = Ly/2;

M=400;
N = floor(M*Ly/Lx);

[X, Y]=meshgrid(linspace(-Lx/2, Lx/2, M), linspace(-Ly/2, Ly/2, N));

wavenumber = 100;

T = 1;
nt = 10;
Time = linspace(0, T, nt);

for repeat = 1:1

   % go over one time period of the field
   for iter = 1:(nt-1) % nt is same as 1 due to peridicity
      
      t = Time(iter);
      
      if wave_type == plane_wave
         
         % plane wave
         Z = real(exp(i*wavenumber*Y)*exp(-i*2*pi*t));
         
      elseif wave_type == spherical_wave
         
         % spherical wave
         Z = exp(sqrt(-1)*wavenumber*sqrt(X.^2+Y.^2))*exp(-sqrt(-1)*2*pi*t)./sqrt(X.^2+Y.^2);
      end
      
      % plot the real part of the field Z
      
      figure(1); clf; hold on; axis equal; axis off;
      image(factor*(real(Z+shift))); % add shift to Z for graphing purposes
      colormap jet; shading interp;

      file = sprintf('Movie_frame%d.eps', 1000+iter);
      disp(file); %show the frame number we are at
      saveas(gcf, file, 'psc2') %save the current frame
      
      pause(0.1);
      
   end

end

% The following command was used to create the animated figure.
% convert -antialias -loop 10000  -delay 15 -compress LZW Movie_frame10* Spherical_wave2.gif
Category:Spherical waves Category:Animations of vibrations and waves Category:Wave equation Category:Files by User:Oleg Alexandrov from en.wikipedia Category:Solutions of PDE Category:Animations of round Category:Images with Matlab source code Category:Animated GIF files
Category:Animated GIF files Category:Animations of round Category:Animations of vibrations and waves Category:Files by User:Oleg Alexandrov from en.wikipedia Category:Images with Matlab source code Category:PD-self Category:PNG created with MATLAB Category:Pages using deprecated source tags Category:Self-published work Category:Solutions of PDE Category:Spherical waves Category:Wave equation