Talaksan:Heat eqn.gif
Mula testwiki
Pumunta sa nabigasyon
Pumunta sa paghahanap
Heat_eqn.gif (200 × 136 na pixel, laki: 500 KB, uri ng MIME: image/gif, nasilo na, 181 banhay, 6.0 segundo)
Mula sa Wikimedia Commons ang talaksang ito at posibleng magamit sa ibang proyekto. Makikita sa baba ang paglalarawan sa pahina ng paglalarawan nito roon.
Buod
| PaglalarawanHeat eqn.gif |
English: Illustration of the Heat equation. Русский: Решение уравнения теплопроводности. |
| Petsa | (UTC) |
| Pinagmulan |
Sariling gawa |
| May-akda | Oleg Alexandrov |
| Iba pang mga bersyon |
|
Lisensiya
| Public domainPublic domainfalsefalse |
| Ako, ang may tangan ng karapatang-ari ng akdang ito, ay pinakakawalan ang akdang ito sa nasasakupan ng madla. Magagamit ito sa buong mundo. Maaaring hindi ito posibleng legal sa ilang mga bansa; kung ganito: Ibinibigay ko sa sinuman ang karapatang gamitin ang akdang ito para sa anumang layunin, na walang mga kundisyon, maliban na lang kung ang ganyang mga kundisyon ay kailangan ng batas. |
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
Captions
Add a one-line explanation of what this file represents
Animación de la ecuación del calor.
Items portrayed in this file
depicts English
creator English
some value
source of file English
original creation by uploader English
23 Nobyembre 2007
media type English
image/gif
data size English
512,046 byte
height English
136 pixel
width English
200 pixel
checksum English
96e56406b6ade1e16688ea1e1664479fe187b4de
Nakaraan ng file
Pindutin ang isang petsa/oras para makita ang file noong puntong yon.
| Petsa/Oras | Thumbnail | Sukat | Tagagamit | Komento | |
|---|---|---|---|---|---|
| ngayon | 19:01, 2 Pebrero 2024 | 200 × 136 (500 KB) | wikimediacommons>Jahobr | more frames (by user Emil Dalalyan) |
Paggamit sa file
Ginagamit ng sumusunod na pahina ang file na ito:
