Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %% TD 3 Equation de la Chaleur
- clear all; close all;
- % Définition des paramètres indépendants
- L=2*pi; %Longueur barre metallique
- N=100 ; % Nombre de point sur la barre
- K=1000 ; % ordre de la série de Fourier
- n=500 ; % Nombre de pas de temps
- dt=0.1 ; % Pas de temps
- Alpha=0.01 ; % Conductivité thermique du métal
- % Calcul des paramètres dépendants
- x=linspace(-pi,pi,N) ; % tableau des abscisses des points de calcul
- dx=2*pi/length(x) ; % Intervalle entre deux point de calcul
- k= 1:2:K ; % Tableau des ordres de la série de fourrier
- % Initialisation des solutions à zeros avec la bonne taille
- T=zeros(n,N); %tableau de la temp. en fonction de t et x (numerique)
- F=zeros(n,N); %tableau de la temp. en fonction de t et x (analytique)
- % Condition aux frontières : imposer la solution initiale et la solution
- % aux bords pour T
- T(:,:)=7; % pour le reste des x
- T(1,N/2)=18; % condition intiale (t0) pour x de 1 à la moitié de la barre
- % Calcul de la solution numérique au temps i à partir du temps i-1
- for tt=2:n
- for xx=2:N-1
- T(tt,xx)=T(tt-1,xx)+(Alpha*dt*dx^(-2))*(T(tt-1,xx+1)+T(tt-1,xx-1)-2*T(tt-1,xx));
- end
- end
- % figure,imagesc(T)
- % Calcul de la solution analytique au temps i
- for tt=1:500
- for cc=1:length(k)
- Ftmp(cc,:)=(2/k(cc)).*sin(x.*k(cc)).*exp(-Alpha.*(k(cc)^2)*(tt*dt));
- end
- F(tt,:)=sum(Ftmp,1);
- end
- % figure,imagesc(F)
- % Film
- % Initialisation
- aviobj = VideoWriter('chaleur.avi','Uncompressed AVI');
- open(aviobj);
- %ouverture figure
- %figure;
- figure;
- %Boucle sur le temps (ici on choisi la solution analytique)
- for tt=1:n
- CHAL=repmat(F(tt,:),20,1) %reproduction de la matrice pour une repre. 2D
- imagesc(CHAL); %representation en 2D
- colorbar;caxis([-1 1]) % Colorbar (échelle de couleur) et limites de celle-ci
- frame=getframe(gcf); %obtention de la frame
- writeVideo(aviobj,frame); %incorporation de la frame dans le film
- title(strcat('temps=',num2str(dt*tt),'s')) %ajout du temps ecoulé en titre
- end
- set(gcf,'Renderer','ZBuffer');
- close(aviobj); %fermeture de l'objet film et sauvegarde.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement