File:Wave_equation_1D_fixed_endpoints.gif
維基百科,自由的 encyclopedia
Wave_equation_1D_fixed_endpoints.gif (274 × 121 像素,檔案大小:129 KB,MIME 類型:image/gif、循環、99 畫格、4.9秒)
描述Wave equation 1D fixed endpoints.gif |
English: Illustration of solution of one-dimensional wave equation: a gaussian wave on a string fixed at both ends. The wave reflects from each end with a 180° phase shift. |
日期 | (UTC) |
來源 | self-made, with en:Matlab |
作者 | Oleg Alexandrov |
Public domainPublic domainfalsefalse |
![]() |
我,此作品的版權所有人,釋出此作品至公共領域。此授權條款在全世界均適用。 這可能在某些國家不合法,如果是的話: 我授予任何人有權利使用此作品於任何用途,除受法律約束外,不受任何限制。 |
MATLAB source code
% A wave travelling on a string with
% fixed endpoints
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];
% 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.5; % speed of the wave
tau = 0.25*h/c; % time grid size
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
Big=10000;
Ut = zeros(Big, N);
Ut(1, :) = U0;
Ut(2, :) = U1;
% hack to capture the first period of the wave
min_k = 2*N; k_old = min_k; turn_on = 0;
for j=3:Big
last_j = j;
% fixed end points
U(1)=0; U(N)=0;
% finite difference discretization in time
for i=2:(N-1)
U(i) = (c*tau/h)^2*(U1(i+1)-2*U1(i)+U1(i-1)) + 2*U1(i) - U0(i);
end
Ut(j, :) = U;
% update info, for the next iteration
U0 = U1; U1 = U;
% hack to capture the first period of the wave
k = find ( abs(U) == max(abs(U)) );
k = k(1);
if k > N/2
turn_on = 1;
end
min_k = min(min_k, k_old);
if k > min_k & min_k == k_old & turn_on == 1
break;
end
k_old = k;
end
% truncate to the first period
last_j = last_j - 1;
Ut = Ut(1:last_j, :);
% shift the wave by a certain amount
shift = floor(last_j/4);
Vt=Ut;
Ut((last_j-shift+1):last_j, :) = Vt(1:shift, :);
Ut(1:(last_j-shift), :) = Vt((shift+1):last_j, :);
num_frames = 100;
spacing=floor(last_j/num_frames)
% plot the wave
for j=1:(last_j-spacing+1)
U = Ut(j, :);
if rem(j, spacing) == 1
figure(1); clf; hold on;
axis equal; axis off;
lw = 3; % linewidth
plot(X, U, 'color', red, 'linewidth', lw);
% plot the ends of the string
small_rad = 0.06;
ball(0, 0, small_rad, red);
ball(L, 0, small_rad, red);
% size of the window
ys = 1.1;
axis([-small_rad, L+small_rad, -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);
frame_no = floor(j/spacing)+1;
frame=sprintf('Frame%d.eps', 1000+frame_no);
disp(frame)
saveas(gcf, frame, 'psc2');
end
end
function ball(x, y, radius, color) % draw a ball of given uniform color
Theta=0:0.1:2*pi;
X=radius*cos(Theta)+x;
Y=radius*sin(Theta)+y;
H=fill(X, Y, color);
set(H, 'EdgeColor', color);
% The gif image was creating with the command
% convert -antialias -loop 10000 -delay 15 -compress LZW Frame10* Movie.gif
說明
添加單行說明來描述出檔案所代表的內容
One-dimensional wave equation
1 boyutlu dalga denklemi
在此檔案描寫的項目
描繪內容
沒有維基數據項目的某些值
24 8 2007
檔案歷史
點選日期/時間以檢視該時間的檔案版本。
日期/時間 | 縮圖 | 尺寸 | 使用者 | 備註 | |
---|---|---|---|---|---|
目前 | 2007年8月24日 (五) 01:27 | ![]() | 274 × 121(129 KB) | Oleg Alexandrov | {{Information |Description=Illustration of en:Wave equation |Source=self-made, with en:Matlab |Date=~~~~~ |Author= Oleg Alexandrov }} {{PD-self}} Category:Waves Category:Partial differential equations [[Catego |
檔案用途
下列頁面有用到此檔案:
全域檔案使用狀況
以下其他 wiki 使用了這個檔案:
- ar.wikipedia.org 的使用狀況
- bg.wikipedia.org 的使用狀況
- bs.wikipedia.org 的使用狀況
- ca.wikipedia.org 的使用狀況
- cs.wikipedia.org 的使用狀況
- cv.wikipedia.org 的使用狀況
- de.wikipedia.org 的使用狀況
- el.wikipedia.org 的使用狀況
- en.wikipedia.org 的使用狀況
- en.wikiversity.org 的使用狀況
- es.wikipedia.org 的使用狀況
- et.wikipedia.org 的使用狀況
- fa.wikipedia.org 的使用狀況
- fi.wikipedia.org 的使用狀況
- fr.wikipedia.org 的使用狀況
- gl.wikipedia.org 的使用狀況
- he.wikipedia.org 的使用狀況
- he.wikibooks.org 的使用狀況
- hy.wikipedia.org 的使用狀況
- id.wikipedia.org 的使用狀況
- it.wikipedia.org 的使用狀況
- ko.wikipedia.org 的使用狀況
- mk.wikipedia.org 的使用狀況
- ms.wikipedia.org 的使用狀況
- nl.wikibooks.org 的使用狀況
- no.wikipedia.org 的使用狀況
- pa.wikipedia.org 的使用狀況
- pt.wikipedia.org 的使用狀況
- ro.wikipedia.org 的使用狀況
- ru.wikipedia.org 的使用狀況
- sh.wikipedia.org 的使用狀況
- simple.wikipedia.org 的使用狀況
- sl.wikipedia.org 的使用狀況
檢視此檔案的更多全域使用狀況。