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
GIF development
InfoField

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:Self-published work Category:Solutions of PDE Category:Spherical waves Category:Wave equation