Fitxategi:Heat eqn.gif
testwikitik
Nabigaziora joan
Bilaketara joan
Heat_eqn.gif (200 × 136 pixel, fitxategiaren tamaina: 500 KB, MIME mota: image/gif, kiribildua, 181 irudi, 6,0s)
Fitxategi hau Wikimedia Commons biltegikoa da, eta beste proiektu batzuetan erabil daiteke. Behean dago fitxategiaren deskribapeneko orria.
Laburpena
| DeskribapenaHeat eqn.gif |
English: Illustration of the Heat equation. Русский: Решение уравнения теплопроводности. |
| Data | (UTC) |
| Jatorria | Norberak egina |
| Egilea | Oleg Alexandrov |
| Beste bertsioak |
|
Lizentzia
| Public domainPublic domainfalsefalse |
| Nik, lan honen egile eskubideen jabeak, lan hau domeinu publikoan jartzen dut. Mundu osoan du eragina honek. Estatu batzuetan beharbada hori ez da legez posible izango. Halakoetan: Edonori ematen diot lan hau edozertarako erabiltzeko eskubidea, inolako baldintzarik gabe, legeak nahitaez ezarritako baldintzak izan ezik. |
MATLAB source code
% illustration of the heat equation
% Solve the heat equation using finite differences and Forward Euler
function main()
% the number of data points. More points means prettier picture.
N = 400;
L = 2.5; % the box size is [-L, L] x [-L, L]
XX = linspace(-L, L, N);
YY = linspace(-L, L, N);
[X, Y] = meshgrid(XX, YY);
scale = 2;
Z = get_step_function (N, scale, X, Y);
CFL = 0.125; % CourantFriedrichsLewy
dx = XX(2)-XX(1); dy = dx; % space grid
dt = CFL*dx^2;
plot_dt = 0.004; % plot every plot_dt iterations
cmap = rv_matrix_rows(autumn); % colormap
% Solve the heat equation with zero boundary conditions
T = 0:dt:1;
iter = 0;
frame_no = 0;
for t=T
% plot the current temperature distribution
if floor(t/plot_dt) + 1 > frame_no
frame_no = frame_no + 1
% plot the surface
figure(2); clf;
surf(X, Y, Z);
% make the surface beautiful
shading interp; colormap(cmap);
% add in a source of light
camlight (-50, 54);
lighting phong;
% viewing angle
view(-40, 38);
axis equal; axis off;
axis([-L, L, -L, L, 0, scale])
hold on; plot3(0, 0, 3.4, 'g*'); % a marker to help with cropping
pause(0.1);
%return
file = sprintf('Movie_frame%d.png', 1000+frame_no);
%saveas(gcf, file) %save the current frame
print(gcf, '-dpng', '-r400', file) %save the current frame
disp(file); %show the frame number we are at
% cut at max_fr_no frames
max_fr_no = 15;
if frame_no >= max_fr_no
break
end
end
% advance in time
W = 0*Z;
for i=2:(N-1)
for j=2:(N-1)
W(i, j) = Z(i, j) + dt * ( Z(i+1, j) + Z(i-1, j) + Z(i, j-1) + Z(i, j+1) - 4*Z(i, j))/dx^2;
end
end
Z = W;
end
% The gif image was creating with the command
% convert -antialias -loop 10000 -delay 20 -compress LZW Movie_frame10* Heat_eqn.gif
% get a function which is 1 on a set, and 0 outside of it
function Z = get_step_function(N, scale, X, Y)
c = 2;
d=-1;
e=1;
f=0.5;
k=1.2;
shift=10;
Z = (c^2-(X/e-d).^2-(Y/f).^2).^2 + k*(c+d-X/e).^3-shift;
Z = 1-max(sign(Z), 0);
Z = scale*Z;
function X = rv_matrix_rows(X)
[m, n] = size(XL);
for i = 1:m
j = m + 1 - i;
if i < j
tmp = X(i, :); X(i, :) = X(j, :); X(j, :) = tmp;
end
end
Irudi-oineko testuak
Add a one-line explanation of what this file represents
Animación de la ecuación del calor.
Fitxategi honetan agertzen diren itemak
honako hau irudikatzen du
some value
23 azaroa 2007
media type ingelesa
image/gif
data size ingelesa
512.046 Byte
136 pixel
200 pixel
checksum ingelesa
96e56406b6ade1e16688ea1e1664479fe187b4de
Fitxategiaren historia
Data/orduan klik egin fitxategiak orduan zuen itxura ikusteko.
| Data/Ordua | Iruditxoa | Neurriak | Erabiltzailea | Iruzkina | |
|---|---|---|---|---|---|
| oraingoa | 19:01, 2 otsaila 2024 | 200 × 136 (500 KB) | wikimediacommons>Jahobr | more frames (by user Emil Dalalyan) |
Fitxategiaren erabilera
Fitxategi hau darabil ondorengo orri honek:
