Vous êtes sur la page 1sur 2

% Définition des paramètres

L = 0.2; % longueur de la plaque (en mètres)


N = 50; % nombre de points dans chaque direction
dx = L/(N-1); % taille de pas spatiale
dt = 0.001; % taille de pas temporelle
alpha = 1.117*10^-4; % coefficient de diffusion thermique
T0 = 50; % température initiale de la plaque
T_inf = 100; % température de la source chaude

% Initialisation de la matrice de température


T = T0*ones(N,N);

% Définition des conditions aux limites


T(1,:) = 0; % côté inférieur adiabatique
T(N,:) = 0; % côté supérieur adiabatique
T(:,1) = 0; % côté gauche adiabatique
T(:,N) = T_inf; % côté droit en contact avec la source chaude

% Boucle principale pour résoudre l'équation de la chaleur


for t = 1:5000 % 5000 étapes temporelles
for i = 2:N-1
for j = 2:N-1
T(i,j) = T(i,j) + alpha*dt*(T(i+1,j)-2*T(i,j)+T(i-1,j))/dx^2 +
alpha*dt*(T(i,j+1)-2*T(i,j)+T(i,j-1))/dx^2;
end
end
end

% Tracé du résultat final


x = linspace(0,L,N);
y = linspace(0,L,N);
[X,Y] = meshgrid(x,y);
surf(X,Y,T)
xlabel('Position (m)')
ylabel('Position (m)')
zlabel('Température (°C)')

% Définition des paramètres


L = 1; % longueur de la plaque (en mètres)
N = 100; % nombre de points dans chaque direction
dx = L/(N-1); % taille de pas spatiale
dt = 0.001; % taille de pas temporelle
alpha = 1.117*10^-4; % coefficient de diffusion thermique
T0 = 50; % température initiale de la plaque
T_inf = 100; % température de la source chaude

% Initialisation de la matrice de température


T = T0*ones(N,N);

% Définition des conditions aux limites


T(1,:) = 0; % côté inférieur adiabatique
T(N,:) = 0; % côté supérieur adiabatique
T(:,1) = 0; % côté gauche adiabatique
T(:,N) = T_inf; % côté droit en contact avec la source chaude

% Initialisation du vecteur de température au centre de la plaque


T_center = zeros(1, 5000);

% Boucle principale pour résoudre l'équation de la chaleur


for t = 1:5000 % 5000 étapes temporelles
for i = 2:N-1
for j = 2:N-1
T(i,j) = T(i,j) + alpha*dt*(T(i+1,j)-2*T(i,j)+T(i-1,j))/dx^2 +
alpha*dt*(T(i,j+1)-2*T(i,j)+T(i,j-1))/dx^2;
end
end
% Stockage de la température au centre de la plaque à chaque étape temporelle
T_center(t) = T(N/2,N/2);
end

% Tracé de la variation de la température en fonction du temps


t = linspace(0,5,5000);
plot(t, T_center)
xlabel('Temps (s)')
ylabel('Température au centre de la plaque (°C)')

Vous aimerez peut-être aussi