پرونده:Wave_equation_1D_fixed_endpoints.gif
From Wikipedia, the free encyclopedia
Wave_equation_1D_fixed_endpoints.gif (۲۷۴ × ۱۲۱ پیکسل، اندازهٔ پرونده: ۱۲۹ کیلوبایت، نوع MIME پرونده: image/gif، چرخشدار، ۹۹ قاب، ۴٫۹ ثانیه)
این پرونده در ویکیانبار موجود است. محتویات صفحهٔ توصیف آن در زیر نمایش داده میشود. |
توضیح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
آیتمهایی که در این پرونده نمایش داده شدهاند
توصیفها
این خصوصیت مقداری دارد اما نامشخص است.
۲۴ اوت 2007
تاریخچهٔ پرونده
روی تاریخ/زمانها کلیک کنید تا نسخهٔ مربوط به آن هنگام را ببینید.
تاریخ/زمان | بندانگشتی | ابعاد | کاربر | توضیح | |
---|---|---|---|---|---|
کنونی | ۲۴ اوت ۲۰۰۷، ساعت ۰۱:۲۷ | ۲۷۴ در ۱۲۱ (۱۲۹ کیلوبایت) | 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 |
کاربرد پرونده
صفحههای زیر از این تصویر استفاده میکنند:
کاربرد سراسری پرونده
ویکیهای دیگر زیر از این پرونده استفاده میکنند:
- کاربرد در 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
- کاربرد در 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
- کاربرد در sq.wikipedia.org
نمایش استفادههای سراسری از این پرونده.