Fitxer:Drum vibration mode23.gif

De testwiki
Salta a la navegació Salta a la cerca
Drum_vibration_mode23.gif (250 × 130 píxels, mida del fitxer: 245 Ko, tipus MIME: image/gif, en bucle, 19 fotogrames, 1,9 s)

Aquest fitxer prové de Wikimedia Commons i pot ser usat per altres projectes. La descripció de la seva pàgina de descripció es mostra a continuació.

Resum

Descripció Illustration of vibrations of a drum.
Data (UTC)
Font self-made with MATLAB
Autor Oleg Alexandrov
Altres versions
GIF genesis
InfoField
 Aquesta GIF imatge rasteritzada ha estat creada amb MATLAB

Llicència

Public domain Jo, el titular del copyright d'aquesta obra, l'allibero al domini públic. Això s'aplica a tot el món.
En alguns països això pot no ser legalment possible, en tal cas:
Jo faig concessió a tothom del dret d'usar aquesta obra per a qualsevol propòsit, sense cap condició llevat d'aquelles requerides per la llei.

Source code (MATLAB)

function main()

   k = 2; % 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_mode23* Drum_vibration_mode23.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!');

Llegendes

Afegeix una explicació d&#039;una línia del que representa aquest fitxer

Elements representats en aquest fitxer

representa l'entitat

251.216 byte

130 píxel

250 píxel

Historial del fitxer

Cliqueu una data/hora per veure el fitxer tal com era aleshores.

Data/horaMiniaturaDimensionsUsuari/aComentari
actual22:02, 8 juny 2008Miniatura per a la versió del 22:02, 8 juny 2008250 × 130 (245 Ko)wikimediacommons>Oleg Alexandrov{{Information |Description={{en|1=x}} |Source=Own work by uploader |Author=Oleg Alexandrov |Date=xx |Permission=xx |other_versions= }} x {{ImageUpload|full}}

La pàgina següent utilitza aquest fitxer: