File:Partial transmittance.gif

Partial_transmittance.gif(367 × 161 像素,檔案大小:67 KB,MIME 類型:image/gif、​循環、​53 畫格、​4.2秒)


摘要

描述
Русский: Показано классическое отражение/прохождение солитона гауссового импульса от/в более плотную среду. В реальности же, свет отражается не от поверхности, а от всех частиц тела (см. ru:КЭД).
English: Illustration of partial reflection of a wave. A gaussian wave on a one-dimensional string strikes a boundary with transmission coefficient of 0.5. Half the wave is transmitted and half is reflected.
Français : Illustration de la réflection partielle d'une onde. Une onde gaussienne se déplaçant sur un ressort unidimensionnel est réfléchie/transmise au niveau d'une interface avec un coefficient de transmission de 0.5.
Español: Ilustración de una reflexión parcial de una onda. Una onda gaussiana sobre una cuerda de una dimensión choca contra un limite con un coeficiente de transmisión de 0.5. La mitad de la onda es transmitida y la otra mitad es reflejada.
日期
來源 self-made with MATLAB, source code below
作者 Oleg Alexandrov
 
本GIF 點陣圖使用MATLAB創作。

授權條款

Public domain 我,此作品的版權所有人,釋出此作品至公共領域。此授權條款在全世界均適用。
這可能在某些國家不合法,如果是的話:
我授予任何人有權利使用此作品於任何用途,除受法律約束外,不受任何限制。

MATLAB source code

% Partial transmittance and reflectance of a wave
% Code is messed up, don't have time to clean it now
function main()
 
   % KSmrq's colors
   red    = [0.867 0.06 0.14];
   blue   = [0, 129, 205]/256;
   green  = [0, 200,  70]/256;
   yellow = [254, 194,   0]/256;
   white = 0.99*[1, 1, 1];
   black = [0, 0, 0];
 
   % length of the string and the grid
   L = 5;
   N = 151;
   X=linspace(0, L, N);
 
   h = X(2)-X(1); % space grid size
   c = 0.01; % speed of the wave
   tau = 0.25*h/c; % time grid size
 
   % form a medium with a discontinuous wave speed
   C = 0*X+c;
 
   D=L/2;
   c_right = 0.5*c; % speed to the right of the disc
   for i=1:N
      if X(i) > D
         C(i) = c_right;
      end
   end
   % Now C = c for x < D, and C=c_right for x > D
 
   K = 5; % steepness of the bump
   S = 0; % shift the wave
   f=inline('exp(-K*(x-S).^2)', 'x', 'S', 'K'); % a gaussian as an initial wave
   df=inline('-2*K*(x-S).*exp(-K*(x-S).^2)', 'x', 'S', 'K'); % derivative of f
 
   % wave at time 0 and tau
   U0 = 0*f(X, S, K);
   U1 = U0 - 2*tau*c*df(X, S, K);
 
   U = 0*U0; % current U
 
   % plot between Start and End
   Start=130; End=500;
 
   % hack to capture the first period of the wave
   min_k = 2*N; k_old = min_k; turn_on = 0; 
 
   frame_no = 0;
   for j=1:End
 
      %  fixed end points
      U(1)=0; U(N)=0;
 
      % finite difference discretization in time
      for i=2:(N-1)
         U(i) = (C(i)*tau/h)^2*(U1(i+1)-2*U1(i)+U1(i-1)) + 2*U1(i) - U0(i);
      end
 
      % update info, for the next iteration
      U0 = U1; U1 = U;
 
      spacing=7;
 
     % plot the wave
      if rem(j, spacing) == 1 & j > Start
 
         figure(1); clf; hold on;
         axis equal; axis off; 
         lw = 3; % linewidth
 
         % size of the window
         ys = 1.2;
 
         low = -0.5*ys;
         high = ys;
         plot([D, D], [low, high], 'color', black, 'linewidth', 0.7*lw)
%         fill([X(1), D, D, X(1)], [low, low, high, high], [0.9, 1, 1], 'edgealpha', 0);
%         fill([D X(N), X(N), D],  [low, low, high, high], [1, 1, 1], 'edgealpha', 0);
 
         plot(X, U, 'color', red, 'linewidth', lw);
 
         % plot the ends of the string
         small_rad = 0.06;
 
         axis([-small_rad, 0.82*L, -ys, ys]);
 
         % small markers to keep the bounding box fixed when saving to eps
         plot(-small_rad, ys, '*', 'color', white);
         plot(L+small_rad, -ys, '*', 'color', white);
 
         pause(0.1)
         frame_no = frame_no + 1;
         %frame=sprintf('Frame%d.eps', 1000+frame_no); saveas(gcf, frame, 'psc2');
         frame=sprintf('Frame%d.png', 1000+frame_no);% saveas(gcf, frame);
         disp(frame)
         print (frame, '-dpng', '-r300');
 
      end
   end
 
 
% The gif image was creating with the command
% convert -antialias -loop 10000  -delay 8 -compress LZW -scale 20% Frame10*png Partial_transmittance.gif
% and was later cropped in Gimp

說明

添加單行說明來描述出檔案所代表的內容

在此檔案描寫的項目

描繪內容

檔案歷史

點選日期/時間以檢視該時間的檔案版本。

日期/時間縮⁠圖尺寸使用者備⁠註
目前2010年4月9日 (五) 16:36於 2010年4月9日 (五) 16:36 版本的縮圖367 × 161(67 KB)Aiyizooptimized animation
2007年11月26日 (一) 05:56於 2007年11月26日 (一) 05:56 版本的縮圖367 × 161(86 KB)Oleg Alexandrov{{Information |Description=Illustration of en:Transmission coefficient (optics) |Source=self-made with MATLAB, source code below |Date=~~~~~ |Author= Oleg Alexandrov |Permission=PD-self, see below |other_versions= }} {{PD-se

下列3個頁面有用到此檔案:

全域檔案使用狀況

以下其他 wiki 使用了這個檔案:

檢視此檔案的更多全域使用狀況