Kontent qismiga oʻtish

Fayl:Drum vibration mode12.gif

ZiyoSfera, erkin ensiklopediya
Drum_vibration_mode12.gif (249 × 170 piksel, fayl hajmi: 148 KB, MIME tipi: image/gif, looped, 19 frames, 1,9 soniya)

Ushbu fayl Vikiomborga yuklangan boʻlib, boshqa loyihalarda ham qoʻllanilishi mumkin. Uning tavsif sahifasidan olingan maʼlumot quyida keltirilgan.

Qisqa izoh

Taʼrif
English: Illustration of vibrations of a drum.
Sanasi (UTC)
Manba Oʻzimning ishim
Muallif Oleg Alexandrov
Other versions
GIF genesis
InfoField
 This diagram was created with MATLAB.

Litsenziyalash

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.

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

Captions

Add a one-line explanation of what this file represents
Visualization of the (1, 2) standing wave on a disk.

Items portrayed in this file

tasvirlangan obyekt

12 yanvar 2008

image/gif

data size inglizcha

152 059 Bayt

width inglizcha

249 piksel

checksum inglizcha

d35d09e4411728cf40c99de74a0e1b82919bba02

Fayl tarixi

Faylning biror paytdagi holatini koʻrish uchun tegishli sana/vaqtga bosingiz.

Sana/VaqtMiniaturaOʻlchamlariFoydalanuvchiIzoh
joriy08:52, 2023-yil 30-mart08:52, 2023-yil 30-mart dagi versiya uchun tasvir249 × 170 (148 KB)wikimediacommons>Dndnrmn1Reverted to version as of 07:10, 12 January 2008 (UTC)

Bu faylga quyidagi 2 sahifalar bogʻlangan: