Αρχείο:Drum vibration mode12.gif

Από testwiki
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση
Drum_vibration_mode12.gif (249 × 170 εικονοστοιχεία, μέγεθος αρχείου: 148 KB, τύπος MIME: image/gif, κυκλικά επαναλαμβανόμενο, 19 καρέ, 1,9 s)

Αυτό το αρχείο είναι από το Wikimedia Commons και ενδέχεται να χρησιμοποιείται από άλλα εγχειρήματα. Η περιγραφή στη σελίδα περιγραφής του εκεί, εμφανίζεται παρακάτω.

Σύνοψη

Περιγραφή
English: Illustration of vibrations of a drum.
Ημερομηνία (UTC)
Πηγή Έργο αυτού που το ανεβάζει
Δημιουργός Oleg Alexandrov
άλλες εκδόσεις
GIF ανάπτυξη
InfoField
 diagram δημιουργήθηκε με MATLAB

Αδειοδότηση

Public domain Εγώ, ο κάτοχος των πνευματικών δικαιωμάτων αυτού του έργου, δημοσιεύω αυτό το έργο ως κοινό κτήμα. Αυτό ισχύει σε παγκόσμια κλίμακα.
Σε ορισμένες χώρες αυτό μπορεί να μην είναι νομικά εφικτό. Αν ναι:
Παραχωρώ σε οποιονδήποτε το δικαίωμα να χρησιμοποιήσει αυτό το έργο "για οποιονδήποτε σκοπό", χωρίς κανέναν όρο, εκτός και αν τέτοιοι όροι τίθενται από την νομοθεσία

Source code (MATLAB)

function VibratingDrum()

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

% To save as a GIF comment out the next the 3 lines
%   file=sprintf('Frame%d.png', 1000+iter);
%   fprintf('Saving to %s\n', file)
%   print('-dpng',  '-opengl',  '-r100', file);

  pause(0.01)
end

end

   % converted to gif with the command (run in command shell)
   % convert -antialias -loop 10000 -delay 10  -scale 50% Frame10* Drum_vibration_mode12.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;
end
   
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!')

end

Λεζάντες

Προσθέστε εξήγηση μιας γραμμής για το τι αντιπροσωπεύει αυτό το αρχείο

Τα Αντικείμενα που απεικονίζονται σε αυτό το αρχείο

απεικονίζει

Ιστορικό αρχείου

Πατήστε σε μια ημερομηνία/ώρα για να δείτε το αρχείο όπως εμφανιζόταν εκείνη την χρονική στιγμή.

Ημερομηνία/ΏραΜικρογραφίαΔιαστάσειςΧρήστηςΣχόλιο
τρέχον04:52, 30 Μαρτίου 2023Μικρογραφία για την έκδοση της 04:52, 30 Μαρτίου 2023249 × 170 (148 KB)wikimediacommons>Dndnrmn1Reverted to version as of 07:10, 12 January 2008 (UTC)

Οι ακόλουθες 2 σελίδες χρησιμοποιούν προς αυτό το αρχείο: