Vous êtes sur la page 1sur 20

Diffèrences finies

RAPPORT DES TRAVAUX


PRATIQUES

Réalisé par
Benbihi Lahoucine
Bouchbouk Zakaria

Encadré par
Mr.Sadiki Mohammed
INTRODUCTION
La révolution informatique et le développement des logiciels calculateurs de hautes performances (MATLAB,
SCILLAB…) a permis de résoudre facilement de divers problèmes physiques et surtout thermiques qui ne peuvent
pas être résolus manuellement , et cela grâce au calcul numérique.

Le principe du calcul numérique est de résoudre des équations différentielles décrivant l’évolution de variables
physiques dans l’espace et le temps.

Voici quelques avantages du calcul numérique :

 Réduction significative du temps de conception et de développement


 Reproduction de conditions non-faisables expérimentalement
 Fourniture d’informations plus détaillées et plus précises
 Meilleure rentabilité et plus économique que l’expérience

Les méthodes de résolution qui se base sur le calcul numérique sont nombreuses ; à savoir :

 La méthode des différences finies


 La méthode des éléments finis
 La méthode des volumes finis

Plusieurs types de problèmes physiques peuvent être résolus à base du calcul numérique ;

 Transfert par conductibilité


 Transfert par convection

On s’interesser à la méthode de différences finies en traitant le cas de transfert de chaleur d’une barre métallique
(1D) et puis dans une plaque métallique (2D).

Pour faire cela on va procéder aux étapes suivantes :

 la mise en équations du problème


 la discrétisation du domaine et des équations
 la résolution des équations discrétisées
 l’analyse des résultats
CHAPITRE I

GENERALITES SUR LES DIFFERENCES FINIES


Développent de Taylor

Pour h très petit cette formule peut s’écrire sous la forme :

En écrivant x = a + h (et donc h = x - a) la formule de Taylor précédente devient (pour tout a et a+ h de I):

Application de la formule de Taylor


 Calcul de la 1ére dérivée

 Calcul de la 1ére dérivée


Equation aux dérivées partielles
Une équation aux dérivées partielles (ou EDP) est une relation entre une fonction inconnues de plusieurs variables
et ses dérivées partielles

Définissons des variables indépendantes notées x, y, z..., et les variables dépendantes définies par u, v, w, ...

Une EDP s’écrit sous la forme générale suivante :

L’ordre d’une EDP est défini par l’ordre maximal des dérivées présentes dans l’équation

Ordre 1 :

Ordre 2 :
Ordre 4 :

Si des EDP interdépendantes sont impliquées, l’ordre n’est calculé qu’après avoir combiné les équations en une seule.

Une EDP est dite linéaire si l’ordre de la puissance appliquée à ses dérivées partielles est 1,sinon elle est dite non
linéaire :

est linéaire.

est non-linéaire.

Problématique
Une équation aux dérivées partielles peut admettre une infinité de solutions ; alors comment peut savoir la solution
approchée qui correspond à notre problème physique ?

Réponse :

On fait intervenir les conditions particuliers du problème dites conditions aux limites ; On distingue deux types
de conditions aux limites :

Considérons le volume de résolution V. La frontière de cette région est notée S . Une EDP définie par l’opérateur L
tel que L(u) = 0 peut être définie avec u la fonction inconnue du problème.

Les conditions initiales :


Il s’agit en fait de la condition limite lié à la variable temporelle. La condition initiale donne la valeur de la fonction
inconnue à l’instant où e processus décrit par l’EDP débute. Il peut s’agir d’une combinaison de la variable
indépendante et de ses dérivées temporelles.

Les conditions aux bords :


 Les conditions de Dirichlet : u = g sur la frontière x ∈ S.
∂u
 Les conditions de Neumann : ∂n sur x ∈ S.
∂u
 Les conditions mixtes : Ku + µ = k sur x ∈ S.
∂n

g, h, K, λ et µ sont des fonctions imposées sur S

Les critères nécessaires pour un problème physique


Un problème est bien posé si :

 une solution existe


 la solution est unique
 la solution dépend continument des données
 de légères modifications des données correspondent à de légères modifications de la solution.
CHAPITRE II

APPLICATION DE LA METHODE POUR


L’EQUATION DE LA CHALEUR
EQUATION DE LA CHALEUR 1D
La loi de Fourier pour la conduction de la chaleur s’écrit :

𝛛𝐓 𝛛𝟐 𝐓
=k
𝛛𝐭 𝛛𝐱 𝟐
Les trois points suivants doivent être pris en compte :

 Evolution à la fois temporelle et spatiale.


 La limite temporelle est "ouverte".
 Attention aux problèmes de stabilité.

Exemple en 1D + le temps

A cette EDP s'ajoute deux conditions aux limites aux extrémités de la barre T (0 ; t) = Tg et T (1 ; t) = Td ainsi
qu'une condition initiale T (x ; 0) = T0.

L'intervalle [0,1] est discrétisé en N +1 nœuds de coordonnées xi (i variant de 0 à N) régulièrement espacés.


Notons Δx le pas d'espace. Le temps est discrétisé en intervalles de pas constant Δt. Notons Tni la température au
nœud xi = iΔx et à l'instant t = nΔt.

On peut utiliser deux approches pour discrétiser cette équation de la chaleur. La première dite explicite utilise
une discrétisation au nœud xi et à l'itération courante n :
𝑛
𝜕𝑇 𝑛 𝜕2𝑇
( ) = 𝛼 ( 2)
𝜕𝑡 𝑖 𝜕𝑥 𝑖
Et la seconde dite implicite utilise une discrétisation au nœud xi et à l'itération n + 1 :

𝜕𝑇 𝑛+1 𝜕 2 𝑇 𝑛+1
( )𝑖 = 𝛼( 2 )𝑖
𝜕𝑡 𝜕𝑥

La méthode différence finie explicite


Nous utilisons un schéma avant d'ordre 1 pour évaluer la dérivée temporelle et un schéma centré d'ordre 2 pour
la dérivée seconde en espace :

𝜕𝑇 𝑛 𝑇𝑖𝑛+1 − 𝑇𝑖𝑛
( ) =
𝜕𝑡 𝑖 ∆𝑡
𝑛𝑛
𝜕2𝑇 𝑇𝑖−1 − 𝑇𝑖𝑛 + 𝑇𝑖+1
𝑛
( 2) =
𝜕𝑥 𝑖 ∆𝑥 2

𝛼∆𝑡
On trouve finalement : 𝑇𝑖𝑛+1 = 𝜆(𝑇𝑖−1
𝑛 𝑛
+ 𝑇𝑖+1 ) + (1 − 2𝜆)𝑇𝑖𝑛 Avec : 𝜆= ℎ²

i variant de 1 à N-1

Soit sous forme matricielle :


La méthode différence finie implicite
Nous utilisons un schéma arrière d'ordre 1 pour évaluer la dérivée temporelle et un schéma centré d'ordre 2 pour
la dérivée seconde en espace :

𝜕𝑇 𝑛+1 𝑇𝑖𝑛+1 − 𝑇𝑖𝑛


( ) =
𝜕𝑡 𝑖 ∆𝑡
𝑛+1 𝑛+1
𝜕2𝑇 𝑇𝑖−1 − 𝑇𝑖𝑛+1 + 𝑇𝑖+1
𝑛+1
( 2) =
𝜕𝑥 𝑖 ∆𝑥 2

La température à l'itération N + 1 est donnée par :


𝛼∆𝑡
𝑇𝑖𝑛 = −𝜆𝑇𝑖−1
𝑛+1 𝑛+1
− 𝑟𝑇𝑖+1 + (1 + 2𝜆)𝑇𝑖𝑛+1 Avec 𝜆 = ℎ²

On constate que les inconnues à l'itération n+1 sont reliées entre elles par une relation implicite (d'où le nom de
la méthode).

La forme matricielle :
CHAPITRE III

RESOLUTION NUMERIQUE DE L’EQUATION DE LA


CHALEUR

Dans ce chapitre on va essayer de résoudre numériquement l’équation de la chaleur en se basant sur la méthode
des différences finies :

Soit l’équation de la chaleur :

𝜕𝑈 𝜕²𝑈
𝜋² 𝜕𝑡
= 𝜕𝑥²
(1) tel que : 0<x<1 et t>0

Avec les conditions initiales suivantes :


∀ 𝑥 ∈ [0; 1] , 𝑈(0, 𝑥) = sin(𝜋𝑥)

∀ 𝑡 ≥ 0, 𝑈(𝑡, 0) = 𝑈(𝑡, 1) = 0

La solution exacte est la suivante :

(𝑡, 𝑥) → 𝑒 −𝑡 sin(𝜋𝑥)

LA METHODE EXPLICITE :

 la discrétisation :

La discrétisation de l’équation de la chaleur est basée sur le développement limité de Taylor :

𝜕𝑈 𝑈𝑖𝑛+1 −𝑈𝑖𝑛 𝜕²𝑈 𝑛


𝑈𝑖+1 −2𝑈𝑖𝑛 +𝑈𝑖−1
𝑛
( 𝜕𝑡 )𝑛𝑖 = 𝑘
et ( 𝜕𝑥² )𝑛𝑖 = ℎ²

On remplace dans l’équation différentiel (1) :

𝑈𝑖𝑛+1 −𝑈𝑖𝑛 𝑛
𝑈𝑖+1 −2𝑈𝑖𝑛 −𝑈𝑖−1
𝑛
𝜋2 𝑘
= ℎ²

Après le développement de l’équation on obtient :


𝑘
𝑈𝑖𝑛+1 = 𝑈𝑖𝑛 − 𝜇(2𝑈𝑖𝑛 − 𝑈𝑖−1
𝑛 𝑛
− 𝑈𝑖+1 ) Tel que ; tel que : 𝜇 = ℎ²𝜋²

Ensuite on écrit l’équation précédente sous forme matricielle :

2 1 0    0
𝑈1 𝑛+1 𝑈1 𝑛 1 2 1   𝑈1 𝑛
𝑈2 𝑈2 0      𝑈2
⋮ ⋮ ⋮
⋮ = ⋮ −𝜇        ⋮
⋮ ⋮      0 ⋮
⋮ ⋮ ⋮
[𝑈𝑁 ]𝑖 [𝑈𝑁 ]𝑖    2 1 [𝑈𝑁 ]𝑖
0    0 1 2
( )

𝑈 (𝑛+1) = (𝐼𝑑 − 𝜇𝐴) 𝑈 (𝑛)

L’écriture matricielle obtenue nous permet de programmer l’équation différentielle de la chaleur (le programme
est donné dans l’annexe 1).
LA METHODE IMPLICITE :
De la même manière que précédemment, on utilise les formules de Taylor qui donnent :

𝜕𝑈 𝑛+1 𝑈𝑖𝑛+1 − 𝑈𝑖𝑛


( ) =
𝜕𝑡 𝑖 𝑘

𝑛+1 𝑛+1
𝜕²𝑈 𝑈𝑖+1 − 2𝑈𝑖𝑛+1 + 𝑈𝑖−1
𝑛+1
( ) =
𝜕𝑥² 𝑖 ℎ²

On remplace dans l’équation différentielle (1) :

𝑈𝑖𝑛+1 −𝑈𝑖𝑛 𝑛+1


𝑈𝑖+1 −2𝑈𝑖𝑛+1 −𝑈𝑖−1
𝑛+1
𝜋2 𝑘
= ℎ²
, Après le développement de l’équation on obtient :

𝑘
𝑈𝑖𝑛 = 𝑈𝑖𝑛+1 − 𝜇(2𝑈𝑖𝑛+1 − 𝑈𝑖−1
𝑛+1 𝑛+1
− 𝑈𝑖+1 ) Tel que : 𝜇 = ℎ²𝜋²

L’écriture matricielle de l’équation trouvée est :

2 1 0    0
𝑈1 𝑛 𝑈1 𝑛+1 1 2 1   𝑈1 𝑛+1
𝑈2 𝑈2 0      𝑈2
⋮ ⋮ ⋮
⋮ = ⋮ +𝜇        ⋮
⋮ ⋮      0 ⋮
⋮ ⋮ ⋮
[𝑈𝑁 ]𝑖 [𝑈𝑁 ]𝑖    2 1 [𝑈𝑁 ]𝑖
0    0 1 2
( )

𝑈 (𝑛) = (𝐼𝑑 + 𝜇𝐴) 𝑈 (𝑛+1)

On pose B =(𝐼𝑑 + 𝜇𝐴) donc : 𝑈 (𝑛+1) = 𝐵−1 𝑈 (𝑛)

L’écriture matricielle obtenue nous permet de programmer l’équation différentielle de la chaleur (le programme
est donné dans l’annexe 2).
ANALYSE DES RESULTATS

Pour la méthode explicite l’erreur commence à augmenter à partir d’une certaine itération tandis que pour la
méthode implicite on constate que l’erreur continue à diminuer avec l’augmentation du nombre d’itérations. On en
déduit que la méthode implicite est meilleure par rapport à la méthode explicite dans le cas de la résolution de
l’équation de la chaleur.

Annexe :
 Programme de la méthode explicite :

% Resolution de l'equation de la chaleur

% avec un schema explicite

% avec conditions de Dirichlet aux bords

% Comparaison avec la solution exacte

clear

fprintf('\n')

disp('Résolution de l''équation de la chaleur')

disp('avec conditions aux limites de Dirichlet ')

disp('par un schéma d''Euler explicite en temps.')


disp('Comparaison avec la solution exacte')

D = 1/(pi^2);

Nm = input('Entrez le nombre de points : ');

dt = input('Entrez le pas de temps : ');

h=1/(Nm+1);

z=h:h:Nm*h;

% Donnee initiale

for i=1:Nm

v(i)=sin(pi*i*h);

u(i)=v(i);

end

u=u';

plot(u);

axis([0 Nm 0 1]);

title('Donnée initiale')

disp('Pressez une touche pour continuer')

pause

% matrice du laplacien

% (diffusion traitee de facon explicite)

A=2*eye(Nm);

for i=2:Nm-1,

A(i-1,i)=-1;

A(i+1,i)=-1;

end

A(2,1)=-1;
A(Nm-1,Nm)=-1;

AA = eye(Nm) - D*A*(dt/(h^2));

% Boucle de calcul - Evaluation de l'erreur

% avec la solution exacte.

for k=1:100

u= AA*u;

y=exp(-k*dt)*v;

y=y';

e=norm(u-y,inf);

fprintf('Erreur à l''instant %f : %e \n',k*dt,e)

% Affichage de

plot(u)

axis([0 Nm 0 1]);

drawnow

end

 Programme de la méthode implicite :

% Resolution de l'equation de la chaleur

% avec un schema explicite

% avec conditions de Dirichlet aux bords

% Comparaison avec la solution exacte

clear

fprintf('\n')

disp('Résolution de l''équation de la chaleur')

disp('avec conditions aux limites de Dirichlet ')

disp('par un schéma d''Euler explicite en temps.')


disp('Comparaison avec la solution exacte')

D = 1/(pi^2);

Nm = input('Entrez le nombre de points : ');

dt = input('Entrez le pas de temps : ');

h=1/(Nm+1);

z=h:h:Nm*h;

% Donnee initiale

for i=1:Nm

v(i)=sin(pi*i*h);

u(i)=v(i);

end

u=u';

plot(u);

axis([0 Nm 0 1]);

title('Donnée initiale')

disp('Pressez une touche pour continuer')

pause

% Matrice du laplacien

% (diffusion traitee de facon explicite)

A=2*eye(Nm);

for i=2:Nm-1,

A(i-1,i)=-1;

A(i+1,i)=-1;

end

A(2,1)=-1;
A(Nm-1,Nm)=-1;

AA = eye(Nm) + D*A*(dt/(h^2));

AA=inv(AA);

% Boucle de calcul - Evaluation de l'erreur

% avec la solution exacte.

for k=1:100

u= AA*u;

y=exp(-k*dt)*v;

y=y';

e=norm(u-y,inf);

fprintf('Erreur à l''instant %f : %e \n',k*dt,e)

% Affichage de u

plot(u)

axis([0 Nm 0 1]);

drawnow

end
FIN

Vous aimerez peut-être aussi