Drum_vibration_mode02.gif(252 × 169 بكسل حجم الملف: 200 كيلوبايت، نوع MIME: image/gif، ‏ملفوف، ‏19 إطارا، ‏1٫9ث)

الوصف Illustration of vibrations of a drum.
التاريخ (UTC)
المصدر self-made with MATLAB
المؤلف Oleg Alexandrov
إصدارات أخرى أَعمالٌ مُشتقَّة مِن هذا الملفِّ:  Membrane-normal-modes.gif
 
.هذا الرسم المتجهي أُنشئ بواسطة MATLAB
Public domain أنا، مالِك حقوق تأليف ونشر هذا العمل، أجعله في النِّطاق العامِّ، يسري هذا في أرجاء العالم كلِّه.
في بعض البلدان، قد يكون هذا التَّرخيص غيرَ مُمكنٍ قانونيَّاً، في هذه الحالة:
أمنح الجميع حق استخدام هذا العمل لأي غرض دون أي شرط ما لم يفرض القانون شروطًا إضافية.

Source code (MATLAB)

function main()

   k = 0; % 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;

      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_mode02.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!');

الشروحات

أضف شرحاً من سطر واحد لما يُمثِّله هذا الملف

العناصر المصورة في هذا الملف

يُصوِّر

١٢ يناير 2008

تاريخ الملف

اضغط على زمن/تاريخ لرؤية الملف كما بدا في هذا الزمن.

زمن/تاريخصورة مصغرةالأبعادمستخدمتعليق
حالي11:12، 18 مارس 2023تصغير للنسخة بتاريخ 11:12، 18 مارس 2023252 × 169 (200 كيلوبايت)Dndnrmn1Reverted to version as of 06:25, 12 January 2008 (UTC)
04:44، 16 يناير 2008تصغير للنسخة بتاريخ 04:44، 16 يناير 2008248 × 130 (191 كيلوبايت)Oleg AlexandrovStrip caption, looks better like this
06:25، 12 يناير 2008تصغير للنسخة بتاريخ 06:25، 12 يناير 2008252 × 169 (200 كيلوبايت)Oleg Alexandrov
06:21، 12 يناير 2008تصغير للنسخة بتاريخ 06:21، 12 يناير 2008253 × 194 (202 كيلوبايت)Oleg Alexandrov{{Information |Description=Illustration of vibrations of a drum. |Source=self-made with MATLAB |Date=~~~~~ |Author= Oleg Alexandrov |Permission= |other_versions= }} {{PD-self}} ==Source code ([[:

لا توجد صفحات تستخدم هذا الملف.

الاستخدام العالمي للملف

الويكيات الأخرى التالية تستخدم هذا الملف: