Dosiero:Drum vibration mode01.gif

El testwiki
Salti al navigilo Salti al serĉilo
Drum_vibration_mode01.gif (249 × 161 rastrumeroj, dosiera grandeco: 200 KB, MIME-tipo: image/gif, ripeta GIF, 19 ĉeloj, 1,9 s)

Ĉi tiu dosiero estas de Vikimedia Komunejo kaj estas uzebla de aliaj projektoj. Jen la priskribo en ties dosier-priskriba paĝo.

Priskribo
English: Illustration of vibrations of a drum.
Dato (UTC)
Fonto Propra verko
Aŭtoro Oleg Alexandrov
Ceteraj versioj Derivaĵoj de ĉi tiu dosiero:  Membrane-normal-modes.gif
GIF genesis
InfoField
 Ĉi tiu GIF dosiero estas kreita per MATLAB.
Public domain Mi, la posedanto de la aŭtorrajto por ĉi tiu verko, liberigas ĝin tutmonde kiel publikan havaĵon.
En iuj landoj tio povas esti laŭleĝe neebla; en tiu okazo:
Mi rajtigas ĉiun ajn uzi ĉi tiun verkon por ajna celo, sen iuj ajn kondiĉoj, krom se tiuj kondiĉoj estas postulataj per leĝo.

Source code (MATLAB)

function main()

   k = 0; % k-th asimuthal number and bessel function
   p = 1; % 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;

      H=text(0, -0.3, 1.4, sprintf('(%d, %d) mode', k, p), 'fontsize', 25);

      
      file=sprintf('Frame%d.png', 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% Frame10* Drum_vibration_mode01.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!');

Titoloj

Donu unulinian priskribon de la enhavo de ĉi tiu dosiero

Eroj prezentitaj en ĉi tiu dosiero

montras

image/gif

205 136 bajto

161 rastrumero

249 rastrumero

390f853893cf5d4830e646ef7655ff1f4966eb9e

Dosiera historio

Klaku daton/tempon por vidi la dosieron kia ĝi aspektis tiam.

Dato/tempoBildetoDimensiojUzantoKomento
nuna04:51, 30 mar. 2023Bildeto por versio ekde 04:51, 30 mar. 2023249 × 161 (200 KB)wikimediacommons>Dndnrmn1Reverted to version as of 05:29, 19 March 2023 (UTC)

La jena paĝo ligas al ĉi tiu dosiero: