Académique Documents
Professionnel Documents
Culture Documents
Série : 2
Exercice 1 Equation de la chaleur
Considérons le problème de diusion de la chaleur dans une barre homogène, de longueur L, de coe-
cient de conduction λ, de cocient calorique Cp , sans production d'énergie interne. La température
u(x, t) au point x et à l'instant t vérie l'équation suivante :
∂u ∂ 2u
(x, t) = a 2 (x, t), 0 6 x 6 L, 0 6 t 6 T
∂t
(P) u(x, ∂x
0) = u 0 (x), 0 6 x 6 L, condition initiale
u(0, t) = b0 (t), u(L, t) = bL (t), 0 6 t 6 T, conditions aux bords.
λ
avec a = la diusivité thermique. Le problème (P) est appelée équation de la chaleur avec
ρCp
conditions de Dirichlet.
Nous allons chercher une solution approchée dénie sur un maillage en espace et en temps. Pour
L
un entier N strictement positif donné, on pose h = = ∆x, c'est le pas d'espace et on choi-
N
T
sit k = ∆t = le pas de temps. Nous noterons ui la solution approchée aux points xi = ih,
n
M
i = 0, · · · , N au temps tj = jk , j = 0, · · · , M . Nous prendrons naturellement u0i = u0 (xi ),
uj0 = b0 (tj ) et ujM = bL (tj ) pour les conditions initiales et aux limites. Il reste à déterminer uji pour
i = 1, · · · , N − 1 et j = 1, · · · , M .
uj+1
i = ruji−1 + (1 − 2r)uji + ruji+1 , i = 1, · · · , N − 1,
k ∆t
avec r = a 2
= a 2.
h ∆x
Méthode d'Euler Implicite :
En utilisant les schémas de diérence nies d'ordre 1 en temps et d'ordre 2 en espace aux points
(xi , tj+1 ), montrer que la solution approchée est donnée par le schéma suivant :
uj+1
i − uji = ruj+1 j+1
i−1 − 2rui + ruj+1
i+1 , i = 1, · · · , N − 1.
Page 1 de 10
Date: 5 décembre 2017
abdellatif.elghazi@uir.ac.ma,
où U j = uj1 , uj2 , · · · , ujM −1 . Expliciter A et f .
Application
Considérons
∂u ∂ 2u
(x, t) = (x, t), 0 6 x 6 1, 0 6 t 6 0.4
∂t
(P1 ) u(x, ∂x2
0) = sin(πx), 0 6 x 6 1, conditions initiales
u(0, t) = 0, u(1, t) = 0, 0 6 t 6 0.4, conditions aux limites.
Solution 1 :
Schéma d'Euler Explicite : Le schéma est obtenu en considérant l'équation de la chaleur au point
xi et au temps tn et en utilisant les approximations d'ordre 1 en temps et d'ordre 2 en espace :
Page 2 de 10
Date: 5 décembre 2017
abdellatif.elghazi@uir.ac.ma,
d'ordre 1 en temps et d'ordre 2 en espace :
∂u u(xi , tn+1 ) − u(xi , tn ) un+1 − uni
(xi , tn+1 ) ' = i .
∂t k k
∂ 2u u(xi − h, tn+1 ) − 2u(xi , tn+1 ) + u(xi + h, tn+1 ) un+1 n+1
i−1 − 2ui + un+1
i+1
(x , t
i n+1 ) ' = .
∂x2 h2 h2
On obtient :
un+1 n n+1 n+1 n+1
i − ui = r ui−1 − 2u i + ui+1 , i = 1, · · · , M − 1.
Les valeurs un+1
0 et un+1
M sont données par les conditions aux limites. Ce système peut aussi s'écrire
sous la forme matricielle :
un+1
un1 + run+1
1 + 2r −r 0 ··· 0 1 0
.. u n+1
un2
. 2.
−r 1 + 2r −r 0 ..
..
.
... ...
.. = ..
0 −r 0
. .
.. ... ... ...
.
−r
un+1 unM −2
M −2
0 ··· 0 −r 1 + 2r un+1 unM −1 + run+1
M −1 M
% Output:
% x = Noeuds des DF
% t = Temps dans lequel la solution est calculev (Noeuds tempss)
% U = Matrice solutions: U(:,j) est U(x) a l'instant t = t(j)
% e = Erreur on va calculer la norme inf de l'erreur entre la
% solution exacte et approche a l instant final
% uu = La matrice des valeurs exacte chaque colonne uu(:,j) est la
% valeur exacte a l'instant t=t(j)
h =1/N ;
r= dt/h^2;
a=I(1);
b=I(2);
T =J(2);
Page 3 de 10
Date: 5 décembre 2017
abdellatif.elghazi@uir.ac.ma,
x =a: h :b;
t =J(1): dt :T;
U(1: N +1,1) =u0(x)';
U(1 ,1: length(t)) =0;
U(N +1 ,1: length(t)) =0;
A =2* diag ( ones (N-1,1) ) - diag ( ones (N -2 ,1) ,1) - diag ( ones (N -2 ...
,1) , -1);
A= eye(N-1)+r*A;
for j=1:( length(t) -1)
U(2: N ,j+1) =A\U(2: N ,j);
end ;
% Solution Exacte
n=length(t);
for j=1:n
uu(:,j)=uexac(x,t(j));
end
e=norm(U(:,n)- uu(:,n),inf);
end
Questions 2-4 :
% Test de la fonction
clear all;
I=[0,1];
J=[0,0.4];
N=20;
dt=0.001;
u0= inline('sin(pi*x)','x'); % condition initiale
uexac = inline('sin(pi*x).* exp(-pi*pi*t)','x','t'); % Solution exacte
[U,x,t,uu,e]=chaleur(N,dt,I,J,u0,uexac);
Page 4 de 10
Date: 5 décembre 2017
abdellatif.elghazi@uir.ac.ma,
figure(2);
n=length(t);
plot(x,uu(:,n-1)',x,U(:,n-1)','+')
legend('Solution Exacte','Solution Approché')
Question 5 : Pour observer numériquement l'ordre d'un schéma connaissant la solution exacte :
Page 5 de 10
Date: 5 décembre 2017
abdellatif.elghazi@uir.ac.ma,
−∆u(x, y) = f (x, y), ∀(x, y) ∈ Ω = [a, b] × [c, d]
(P2 )
u(a, y) = u(b, y) = u(x, c) = u(x, d) = 0, Conditions aux limites
∂ 2u ∂ 2u
avec ∆u(x, y) = 2 (x, y) + 2 (x, y).
∂x ∂y
Introduisons une partition règulière du segment [a, b] en Nx sous intervalles [xi , xi+1 ] de longueur
b−a
hx = avec x0 = a, xNx = b et xi = a + ihx pour i = 0, · · · , Nx
N
De même nous introduisons une partition règulière du segment [c, d] en Ny sous intervalles
d−c
[yj , yj+1 ] de longueur hy = avec y0 = c, yNy = d et yi = c + jhy pour j = 0, · · · , Ny .
Ny
Page 6 de 10
Date: 5 décembre 2017
abdellatif.elghazi@uir.ac.ma,
de Taylor, on trouve :
∂ 2u u(xi−1 , yj ) − 2u(xi , yj ) + u(xi+1 , yj )
2
(xi , yj ) = + O(h2x ).
∂x h2x
Page 7 de 10
Date: 5 décembre 2017
abdellatif.elghazi@uir.ac.ma,
Exercice 3 On considère le problème :
−∆u(x, y) = 0, ∀(x, y) ∈ Ω = [0, 20] × [0, 10]
(P3 )
u(0, y) = u(x, 0) = u(x, 10) = 0, et u(20, y) = 100 Conditions aux limites
5 5 5
On prends hx = hy = h ∈ {5, , , }
2 4 8
1. En variant h, résoudre le système (P3 ). Donner à chaque fois le nombre d'inconnues.
5
2. pour h = 5 et h = construire manuellement la matrice du sytème. Dessiner une grille avec
2
les points inconnus.
3. Tracer les courbes ( avec la commande mesh)
~
Solution 3 :
1. h=5 : Donc
b−a 20 − 0
h = 5 = hx = = donc Nx = 4
Nx Nx
c−d 10 − 0
h = 5 = hy = = donc Ny = 2
Ny Ny
La grille maillée contient alors (Nx + 1) × (Ny + 1) mailles vu que nous avons à rajouter
les points xi = 0 et ceux yj = 0 c'est a dire les points intersection de la courbe avec les
axes. Mais comme les conditions aux limites nous donnent la valeur de la fonction sur les
bords, alors les points inconnus restent seulement ceux de l'intérieur du cadrillage. Ce qui
fait donc que le nombre d'inconnues est alors
(Nx − 1) × (Ny − 1) = 3 × 1 = 3
2. Matlab
clc;clear
h=0.25;
a=0;
b=20;
c=0; d=10;
nx=floor((b-a)/h);
Page 8 de 10
Date: 5 décembre 2017
abdellatif.elghazi@uir.ac.ma,
ny=floor((d-c)/h);
n=(nx-1)*(ny-1);
%%% (remplissage des elements de la matrice A)
A=zeros(n);
for i=1:(n-1)
A(i,i)=-4;
A(i+1,i)=1;
A(i,i+1)=1;
if (mod(i,(nx-1))==0)
A(i+1,i)=0;
A(i,i+1)=0;
end
end
for i=1:n-nx+1
A(nx-1+i,i)=1;
A(i,nx-1+i)=1;
end
A(n,n)=-4;
%%% (remplissage des t’elt’ements de la matrice B)
for i=1:n
B(i)=0;
if (mod(i,nx-1)==0)
B(i)=-100;
end
end
%%% (rt’esolution du syst`eme Av=B et transformation du vecteur ¬v en la ...
matrice U).
V = A\B';
k=1;
for j=1:ny-1
for i=1:nx-1
u(j,i)=V(k);
k=k+1;
end
end
%%% (dt’ecallage des t’elements pour inst’erer les conditions aux limites)
for j=ny:-1:2
for i=nx:-1:2
u(j,i)=u((j-1),i-1);
end
end
for i=1:nx
for j=1:ny
u(1,i)=0;
u(j,1)=0;
u(ny+1,i)=0;
u(j,nx+1)=100;
end
end
u(1,nx+1)=0;
Page 9 de 10
Date: 5 décembre 2017
abdellatif.elghazi@uir.ac.ma,
%%% les vecteurs x et y
x=0:h:b; y=0:h:d;
%%% (affichage la courbe en tenant compte des vecteurs x ,y et de la ...
matrice U)
figure(2)
mesh(x,y,u)
Page 10 de 10
Date: 5 décembre 2017
abdellatif.elghazi@uir.ac.ma,