Datei:Drum vibration mode03.gif

Datei:Drum vibration mode03.gif

Drum_vibration_mode03.gif(250 × 130 Pixel, Dateigröße: 116 KB, MIME-Typ: image/gif, Endlosschleife, 19 Bilder, 1,9 s)

Diese Datei stammt aus Wikimedia Commons und kann von anderen Projekten verwendet werden. Die Beschreibung von deren Dateibeschreibungsseite wird unten angezeigt.

Beschreibung

Beschreibung
English: Illustration of vibrations of a drum.
Datum (UTC)
Quelle Eigenes Werk
Urheber Oleg Alexandrov
Andere Versionen Abgeleitete Werke dieser Datei:  Membrane-normal-modes.gif
GIF‑Erstellung
InfoField
 Dieses Diagramm wurde mit MATLAB erstellt.

Lizenz

Public domain Ich, der Urheberrechtsinhaber dieses Werkes, veröffentliche es als gemeinfrei. Dies gilt weltweit.
In manchen Staaten könnte dies rechtlich nicht möglich sein. Sofern dies der Fall ist:
Ich gewähre jedem das bedingungslose Recht, dieses Werk für jedweden Zweck zu nutzen, es sei denn, Bedingungen sind gesetzlich erforderlich.

Source code (MATLAB)

function main()

   k = 0; % k-th asimuthal number and bessel function
   p = 3; % p-th bessel root

   q=find_pth_bessel_root(k, p); 

   N=20; % used for plotting

   % Get a grid
   R1=linspace(0.0, 1.0, N); 
   Theta1=linspace(0.0, 2*pi, N);
   [R, Theta]=meshgrid(R1, Theta1);
   X=R.*cos(Theta);
   Y=R.*sin(Theta);

   T=linspace(0.0, 2*pi/q, N); T=T(1:(N-1));

   for iter=1:length(T);
      
      t = T(iter);
      Z=sin(q*t)*besselj(k, q*R).*cos(k*Theta);

      figure(1); clf; 
      surf(X, Y, Z);
      caxis([-1, 1]);
      shading faceted;
      colormap autumn;

      % viewing angle
      view(108, 42);
      
      axis([-1, 1, -1, 1, -1, 1]);
      axis off;

      file=sprintf('Frame_mode%d%d_%d.png', k, p, 1000+iter);
      disp(sprintf('Saving to %s', file));
      print('-dpng',  '-zbuffer',  '-r100', file);

      pause(0.1);
   end

% converted to gif with the command 
% convert -antialias -loop 10000 -delay 10  -scale 50% Frame_mode03* Drum_vibration_mode03.gif
 
   

function r = find_pth_bessel_root(k, p)

   % a dummy way of finding the root, just get a small interval where the root is
   
   X=0.5:0.5:(10*p+1); Y = besselj(k, X);
   [a, b] = find_nthroot(X, Y, p);

   X=a:0.01:b; Y = besselj(k, X);
   [a, b] = find_nthroot(X, Y, 1);

   X=a:0.0001:b; Y = besselj(k, X);
   [a, b] = find_nthroot(X, Y, 1);

   r=(a+b)/2;
   
function [a, b] = find_nthroot(X, Y, n)

   l=0;

   m=length(X);
   for i=1:(m-1)
      if ( Y(i) >= 0  & Y(i+1) <= 0 ) | ( Y(i) <= 0  & Y(i+1) >= 0 )
	 l=l+1;
      end

      if l==n
	 a=X(i); b=X(i+1);

	 %disp(sprintf('Error in finding the root %0.9g', b-a));
	 return;
      end
   end

   disp('Root not found!');

Kurzbeschreibungen

Ergänze eine einzeilige Erklärung, was diese Datei darstellt.

In dieser Datei abgebildete Objekte

Motiv

image/gif

118.293 Byte

130 Pixel

250 Pixel

6b03b345d48c9c87daa70764681ec1fe0bb6c2bd

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell11:12, 18. Mär. 2023Vorschaubild der Version vom 11:12, 18. Mär. 2023250 × 130 (116 KB)wikimediacommons>Dndnrmn1Reverted to version as of 20:55, 8 June 2008 (UTC)

Die folgende Seite verwendet diese Datei: