File:Heat eqn.gif
Aus Wikimedia Commons, dem freien Medienarchiv
Zur Navigation springen
Zur Suche springen
Heat_eqn.gif (200 × 136 Pixel, Dateigröße: 500 KB, MIME-Typ: image/gif, Endlosschleife, 181 Bilder, 6,0 s)
Dateiinformationen
Strukturierte Daten
Bildtexte
Beschreibung
[Bearbeiten]BeschreibungHeat eqn.gif |
English: Illustration of the Heat equation. Русский: Решение уравнения теплопроводности. |
Datum | (UTC) |
Quelle | Eigenes Werk |
Urheber | Oleg Alexandrov |
Andere Versionen |
Lizenz
[Bearbeiten]Public domainPublic domainfalsefalse |
Ich, der Urheberrechtsinhaber dieses Werkes, veröffentliche es als gemeinfrei. Dies gilt weltweit. In manchen Staaten könnte dies rechtlich nicht möglich sein. Sofern dies der Fall ist: Ich gewähre jedem das bedingungslose Recht, dieses Werk für jedweden Zweck zu nutzen, es sei denn, Bedingungen sind gesetzlich erforderlich. |
MATLAB source code
[Bearbeiten]% 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
Dateiversionen
Klicke auf einen Zeitpunkt, um diese Version zu laden.
Version vom | Vorschaubild | Maße | Benutzer | Kommentar | |
---|---|---|---|---|---|
aktuell | 18:01, 2. Feb. 2024 | 200 × 136 (500 KB) | Jahobr (Diskussion | Beiträge) | more frames (by user Emil Dalalyan) | |
01:25, 12. Apr. 2019 | 200 × 136 (172 KB) | Jorge Stolfi (Diskussion | Beiträge) | Duplicated some framed at beginning so that readers can see the initial state. Added a couple blank frames at end to make it clear that the simulation ended. Slowed down the movie a bit. | ||
19:58, 24. Apr. 2011 | 200 × 136 (116 KB) | Oleg Alexandrov (Diskussion | Beiträge) | Reverse the colormap (red is high). | ||
06:11, 23. Nov. 2007 | 199 × 140 (126 KB) | Oleg Alexandrov (Diskussion | Beiträge) | Tweak, same license | ||
05:51, 23. Nov. 2007 | 200 × 129 (112 KB) | Oleg Alexandrov (Diskussion | Beiträge) | {{Information |Description=Illustration of the en:Heat equation |Source=self-made with Matlab |Date=~~~~~ |Author= Oleg Alexandrov |Permission=PD-self, see below |other_versions= }} {{PD-self}} ==MATLAB source code== <pre> |
Du kannst diese Datei nicht überschreiben.
Dateiverwendung
Die folgenden 5 Seiten verwenden diese Datei:
Globale Dateiverwendung
Die nachfolgenden anderen Wikis verwenden diese Datei:
- Verwendung auf ar.wikipedia.org
- Verwendung auf ast.wikipedia.org
- Verwendung auf bn.wikipedia.org
- Verwendung auf ca.wikipedia.org
- Verwendung auf cs.wikipedia.org
- Verwendung auf de.wikipedia.org
- Verwendung auf el.wikipedia.org
- Verwendung auf en.wikipedia.org
- Verwendung auf eo.wikipedia.org
- Verwendung auf es.wikipedia.org
- Verwendung auf et.wikipedia.org
- Verwendung auf fr.wikipedia.org
- Verwendung auf gl.wikipedia.org
- Verwendung auf hy.wikipedia.org
- Verwendung auf ja.wikipedia.org
- Verwendung auf ko.wikipedia.org
- Verwendung auf ms.wikipedia.org
- Verwendung auf nl.wikipedia.org
- Verwendung auf pl.wikipedia.org
- Verwendung auf pt.wikipedia.org
- Verwendung auf ro.wikipedia.org
- Verwendung auf ru.wikipedia.org
- Verwendung auf sco.wikipedia.org
- Verwendung auf ta.wikipedia.org
- Verwendung auf th.wikipedia.org
- Verwendung auf tl.wikipedia.org
- Verwendung auf www.wikidata.org
- Verwendung auf zh-yue.wikipedia.org
- Verwendung auf zh.wikipedia.org