Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1

Ahoj, chtěl jsem poradit jak upravit následující kód, aby se barvy měnily s teplotou podobně jako zde: http://www.youtube.com/watch?v=PGsYZmRt0Lo
Jedná se o 2D rovnici vedení tepla.
Kód:
clear all;
close all;
x = (0:0.02:1);
y = (0:0.02:1);
[iX,iY] = meshgrid(x,y);
nt = 50; %input(' Number of time steps = ');
dt = .1; % Time step size.
N = 5;
% Time loop
for j = 1:nt
u = zeros(length(x),length(y));
% Double sum
for m = 1:N % index on x
for n = 1:N % index on y
Bmn = 1600 / (pi^2*(2*m-1)*(2*n-1));
u = u + Bmn * sin((2*m-1)*pi*iX) .* sin((2*n-1)*pi*iY) * exp(-( (2*m-1)^2 + (2*n-1) ) * (j*dt));
end
end
surf(x,y,u)
axis([0 1 0 1 0 100])
drawnow
end
Předen děkuji,
Petepicket
Offline
↑ Petepicket:
Navrhujem maličkú zmenu:
clear all;
close all;
x = (0:0.02:1);
y = (0:0.02:1);
[iX,iY] = meshgrid(x,y);
nt = 50; %input(' Number of time steps = ');
dt = .1; % Time step size.
N = 5;
c = colormap('jet');
s = surf('cDataMapping','direct','cData',c);
axis([0 1 0 1 0 100])
% Time loop
for j = 1:nt
u = zeros(length(x),length(y));
% Double sum
for m = 1:N % index on x
for n = 1:N % index on y
Bmn = 1600 / (pi^2*(2*m-1)*(2*n-1));
u = u + Bmn * sin((2*m-1)*pi*iX) .* sin((2*n-1)*pi*iY) *...
exp(-( (2*m-1)^2 + (2*n-1) ) * (j*dt));
end
end
set(s,'xdata',x,'ydata',y,'zdata',u)
drawnow
end
Offline

↑ borelioza: Díky moc přesně tak jsem to měl na mysli :D
Offline
Stránky: 1