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)')