Vous êtes sur la page 1sur 14

R EPUBLIQUE DU CAMEROUN R EPUBLIC OF CAMEROON

Paix-Travail-Patrie Peace-Work-Fatherland

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR MINISTRY OF HIGHER EDUCATION

UNIVERSITE DE DOUALA
ECOLE NATIONALE SUPERIEURE
POLYTECHNIQUE DE DOUALA
(ENSPD)
--------------------------------------------
BP 2701 Douala / SITE Web : www.enspd-udo.com
****************************
DEPARTEMENT DE TECHNOLOGIE DE
CONSTRUCTION INDUSTRIELLE

UE : MECANIQUE DES FLUIDES NUMERIQUES

Enseignant : Pr. Ruben MOUANGUE

THEME : RESOLUTION D’UNE EQUATION AUX


DERIVEES PARTIELLES ET TRACE DE LA COURBE

Rédigé par :
NGUEDIA KEMEGNE Urich Rinel 16G03018
TAGNE TAYO Christ Only 16G03058
WATSOP PIANKEU Noël 16G03301

CLASSE : TCI 5 Axe : CM DATE : lundi, 01 Février 2021

ANNEE ACADEMIQUE 2020 – 2021


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

TABLE DES MATIERES

1. ENONCE DU PROBLEME................................................................................................ 2
2. RESOLUTION DU PROBLEME....................................................................................... 2
a. Résolution par la méthode des différences finies ............................................................ 2
b. Résolution par la méthode manuelle ............................................................................... 5
c. Programme de résolution................................................................................................. 6
d. Résultats ........................................................................................................................ 11

MECANIQUE DES FLUIDES NUMERIQUES 1


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

1. ENONCE DU PROBLEME
Nous avons un tube ayant les températures 𝑇𝐴 et 𝑇𝐵 à chacune de ses extrémités. La
chaleur se propage de A vers B et nous avons 𝑇𝐴 > 𝑇𝐵 .

Figure 1-1 : barre soumise à la chaleur

La formulation mathématique de ce problème est donc l’équation différentielle


suivante :
𝜕2 𝑇
𝟐 le terme de diffusion
𝝏 𝑻 𝝏𝑻 𝜕𝑥 2
+ 𝜶 𝝏𝒙 = 𝑸 𝑑𝑎𝑛𝑠 ]𝑎, 𝑏[
{
𝝏𝒙𝟐 avec 𝜕𝑇
le terme de convection
𝑇 (𝑎) = 𝑇𝐴 , 𝑇 (𝑏) = 𝑇𝐵 𝜕𝑥
{ 𝑄 representant la source

2. RESOLUTION DU PROBLEME
Pour résoudre ce problème, nous utiliserons les méthodes approchées de détermination
en occurrence la méthode des différences finies, ensuite nous utiliserons les méthodes
manuelles de résolution des équations différentielles, enfin nous ferons une comparaison entre
les résultats obtenus pour chacun des cas et nous représenterons la courbe de l’erreur.

a. Résolution par la méthode des différences finies


Elle consiste à discrétiser le domaine en de petits intervalles délimités par des points xi
appelés points du maillage, et à déterminer une équation analytique/numérique de la
formulation mathématique du problème qu’on peut résoudre à l’aide d’un programme Matlab.

 Recherche de l’équation analytique/numérique

On divise le domaine en 𝑵 + 𝟐 points et on détermine le pas constant ℎ du maillage


𝐿
par : ℎ = avec 𝐿 = 𝑋𝑁+1 − 𝑋𝑁
𝑁+1

En utilisant la méthode des développements limités nous avons :


𝑇𝑖′ ′′ 𝑇𝑖′′′ (𝜃𝑖+)
𝑇𝑖+1 = 𝑇𝑖 + (𝑥 𝑖+1 − 𝑥 𝑖 ) + 𝑇𝑖 (𝑥 𝑖+1 − 𝑥 𝑖 )2 + (𝑥 𝑖+1 − 𝑥 𝑖 )3 (1)
1! 2! 3!

𝑇𝑖′ 𝑇 ′′ 𝑇 ′′′ (𝜃𝑖− )


𝑇𝑖−1 = 𝑇𝑖 + (𝑥 𝑖−1 − 𝑥 𝑖 ) + 𝑖 (𝑥 𝑖+1 − 𝑥 𝑖 )2 + 𝑖 (𝑥 𝑖+1 − 𝑥 𝑖 )3 (2)
1! 2! 3!

MECANIQUE DES FLUIDES NUMERIQUES 2


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

Avec 𝑇𝑖 la température au point 𝑥 𝑖 et ℎ = 𝑥 𝑖+1 − 𝑥 𝑖 le pas de discrétisation


En sommant (1) et (2) dans l’équation différentielle de départ, on obtient :
𝑇𝑖′′′ +
𝑇𝑖+1 + 𝑇𝑖−1 = 2ℎ𝑇𝑖 + 𝑇𝑖′′ ℎ2 + ℎ3 (𝜃 − 𝜃𝑖− )
3! 𝑖

𝑇𝑖+1 − 2𝑇𝑖 + 𝑇𝑖−1 𝑇𝑖′′′ (𝜃𝑖+)


⟹ 𝑇𝑖′′ = − ℎ(𝜃𝑖+ − 𝜃𝑖− )
ℎ2 6

𝑻𝒊+𝟏 − 𝟐𝑻𝒊 + 𝑻𝒊−𝟏 𝝏𝟐 𝑻


⟹ 𝑻′′𝒊 ≈ = 𝟐
𝒉𝟐 𝝏𝒙

De plus, on a
𝑇𝑖′′ +
𝑇𝑖+1 + 𝑇𝑖−1 = 2ℎ𝑇𝑖 + ℎ2 (𝜃 − 𝜃𝑖− )
2! 𝑖

𝑇𝑖+1 − 𝑇𝑖−1 𝑇𝑖′′


⟹ 𝑇𝑖′ = − ℎ (𝜃𝑖+ − 𝜃𝑖− )
2ℎ 4

𝑻𝒊+𝟏 − 𝑻𝒊−𝟏 𝝏𝑻
⟹ 𝑻′𝒊 ≈ =
𝟐𝒉 𝝏𝒙

En remplaçant 𝑇𝑖′′ et 𝑇𝑖′ dans la formulation mathématique, on a :

𝜕2 𝑇 𝜕𝑇
2
+𝛼 =𝑄
𝜕𝑥 𝜕𝑥

𝑇𝑖 +1 − 2𝑇𝑖 + 𝑇𝑖−1 𝑇 − 𝑇𝑖−1


⟹ 2
+ 𝛼 ( 𝑖+1 )=𝑄
ℎ 2ℎ

𝟏 𝜶 𝟐 𝟏 𝜶
⟹ ( + )𝑻 𝒊+𝟏 − 𝑻 𝒊 + ( − )𝑻 = 𝑸𝒊 (𝐸𝑁)
𝒉𝟐 𝟐𝒉𝟐 𝒉𝟐 𝒉𝟐 𝟐𝒉𝟐 𝒊−𝟏
(EN) représente l’équation analytique que nous allons résoudre numériquement à l’aide
du logiciel Matlab R2017b.
 Ecriture sous forme matricielle
(EN) peut se mettre sous la forme matricielle. Dans ce cas, on aura :

MECANIQUE DES FLUIDES NUMERIQUES 3


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

1 𝑎 2 1 𝑎
( − )𝑇0 − 𝑇1 + ( + )𝑇 = 𝑄1
ℎ2 2ℎ2 ℎ2 ℎ2 2ℎ2 2
1 𝑎 2 1 𝑎
( 2 − 2 )𝑇1 − 2 𝑇2 + ( 2 + 2 )𝑇3 = 𝑄2
ℎ 2ℎ ℎ ℎ 2ℎ
1 𝑎 2 1 𝑎
( 2 − 2 )𝑇2 − 2 𝑇3 + ( 2 + 2 )𝑇4 = 𝑄3
ℎ 2ℎ ℎ . ℎ 2ℎ
.
1 𝑎 2 1 𝑎
( 2 − 2 )𝑇𝑖−1 − 2 𝑇𝑖 + ( 2 + 2 )𝑇𝑖+1 = 𝑄𝑖
ℎ 2ℎ ℎ . ℎ 2ℎ
.
.
1 𝑎 2 1 𝑎
( − ) 𝑇𝑁−1 − 𝑇𝑁 + ( + )𝑇 = 𝑄𝑖
{ ℎ2 2ℎ2 ℎ2 ℎ2 2ℎ2 𝑁+1

Soit l’écriture sous forme matricielle

2 1 𝑎 1 𝑎
− ( + ) 0 𝑄1 − ( − 2)
ℎ2 ℎ2 2ℎ2 𝑇1 ℎ 2 2ℎ
1 𝑎 2 1 𝑎 𝑇2 𝑄2
( 2 − 2) − 2 ( 2 + 2) ⋯ 0
𝑇3 𝑄3
ℎ 2ℎ ℎ ℎ 2ℎ
1 𝑎 2 .. ..
0 ( 2 − 2) − 2 =
ℎ 2ℎ ℎ .. ..
⋮ ⋱ ⋮
1 𝑎 .. ..
( + 2) 0
ℎ 2 2ℎ 𝑇𝑁−1 𝑄𝑁−1
0 ⋯
2 1 𝑎 [ 𝑇𝑁 ] 1 𝑎
[ − 2 ( 2 + 2 )] [ 𝑄 − ( + )
ℎ ℎ 2ℎ 𝑁
ℎ2 2ℎ2 ]
De cette forme matricielle, on obtient une équation avec une forme connu, de la forme :
𝑨𝑻 = 𝑩
Avec :
2 1 𝑎
− ℎ2 (ℎ2 + 2ℎ2 ) 0
1 𝑎 2 1 𝑎
(ℎ2 − 2ℎ2 ) − ℎ2 (ℎ2 + 2ℎ2 ) ⋯ 0
1 𝑎 2
0 (ℎ2 − 2ℎ2 ) − ℎ2
𝐴= matrice 𝑁 × 𝑁
⋮ ⋱ ⋮
1 𝑎
(ℎ2 + 2ℎ2 ) 0
0 ⋯ 2 1 𝑎
[ − ℎ2 (ℎ2 + 2ℎ2 )]
tri diagonale

MECANIQUE DES FLUIDES NUMERIQUES 4


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

1 𝑎
𝑄1 − ( 2
− 2)
ℎ 2ℎ
𝑄2
𝑄3
..
𝐵= ..
..
𝑄𝑁−1
1 𝑎
[ 𝑄 − ( + )
𝑁
ℎ 2 2ℎ2 ]
B est un vecteur uni colonne à 𝑁 lignes prenant en compte les conditions aux limites
𝑇1
𝑇2
𝑇3
..
𝑇= ..
..
𝑇𝑛−1
[ 𝑇𝑛 ]
 Résolution de l’équation à l’aide de l’outil Matlab R2017b

L’équation étant sous la forme 𝐴𝑇 = 𝐵, il question pour nous de déterminer T tel qu’il
respecte cette équation et ces conditions initiales.

𝐴𝑇 = 𝐵 ⟹ 𝑻 = 𝑨−𝟏 𝑩 , ceci est donc l’équation que nous allons programmer.


Le code de résolution est au 2.d. : FINITE DIFFERENT METHOD

b. Résolution par la méthode manuelle


Nous devons résoudre l’équation différentielle suivante :

𝜕2 𝑇 𝜕𝑇
{ 𝜕𝑥 2
+𝑎 =𝑄
𝜕𝑥
𝑇 (0) = 𝑇𝐴 , 𝑇 (𝐿) = 𝑇𝐵
 Solution homogène :
La solution homogène s’écrit sous la forme ci-après :

𝜕2 𝑇 𝜕𝑇
2
+𝑎 =0
𝜕𝑥 𝜕𝑥

Polynôme caractéristique : r 2 + ar = 0 ⟺ r(r + a) = 0 → r1 = 0 ou r2 = −a


La solution homogène est donc : 𝐓𝐡 (𝐱) = 𝐂𝟏 𝐞−𝐚𝐱 + 𝐂𝟐

MECANIQUE DES FLUIDES NUMERIQUES 5


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

 Solution particulière
On pose :

∂2 T ∂T Q
2
=0 ⇒ =
∂x ∂x a

𝐐
⟹ 𝐓𝐏 (𝐱) = 𝐱
𝐚

 Solution générale :

La solution générale de cette équation différentielle est donc :


𝐐
𝐓(𝐱) = 𝐓𝐡 (𝐱) + 𝐓𝐩 (𝐱) = 𝐂𝟏 𝐞−𝐱 + 𝐱 + 𝐂𝟐
𝐚

Application des conditions aux limites :

T (0) = TA C1 + C2 = TA C1 + C2 = TA
{ ⟺ { −aL Q →{ −aL Q
T (L) = TB e C1 + C2 + a L = TB e C1 + C2 = − a L + TB

Soit :
𝐐 𝐐
𝐓𝐀 − 𝐓𝐁 + 𝐚 𝐋 𝐓𝐀 − 𝐓𝐁 + 𝐚 𝐋
𝐂𝟏 = 𝐞𝐭 𝐂𝟐 = 𝐓𝐀 −
𝟏 − 𝐞−𝐚𝐋 𝟏 − 𝐞−𝐚𝐋

D’où la solution analytique du problème


𝐐 𝐐
𝐓𝐀 − 𝐓𝐁 + 𝐋 𝐐 𝐓𝐀 − 𝐓𝐁 + 𝐋
𝐓(𝐱) = 𝐚 𝐞−𝐚𝐱 + 𝐱 + [𝐓 − 𝐚 ]
𝐀
𝟏 − 𝐞−𝐚𝐋 𝐚 𝟏 − 𝐞−𝐚𝐋

c. Programme de résolution
RESOLUTION PAR LA METHODE DES DIFFERENCES FINIES : SOLUTION
APPROCHEE
clc;
clear all;
close all;

%% FINITE DIFFERENCE METHOD


fprintf('\n****************************************************************
***************\n');
fprintf('\n*********************RESOLUTION DE L''EQUATION DE
CHALEUR**********************\n');
fprintf('\n********************FINITE DIFFERENCE METHOD TO DETERMINE
T********************\n');
fprintf('\n****************************************************************
***************\n');

MECANIQUE DES FLUIDES NUMERIQUES 6


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

%% PAS CONSTANT

fprintf('\n***********RESOLUTION DE L''EQUATION POUR UN MAILLAGE A PAS


CONSTANT***********\n');

%% definition des bornes de l'intervalla ]a,b[ de l'espace


fprintf('\n DEFINITION DES BORNES DE L''INTERVALLE ]a,b[ DE L''ESPACE
\n\n');
a=input('saisir la borne inferieure a : ');
b=input('saisir la borne superieure b : ');
% conditions sur les valeurs de a et b
while b<=a
disp ('la borne superieure b doit etre superieur a la borne inferieure
a (b>a)');
a=input('saisir la borne inferieure a : ');
b=input('saisir la borne superieure b: ');
end

%definition du nombre de subdivision


p=input ('saisir le nombre de division de l intervalle : ');
%condition sur le nombre de subdivision
while p<0 || p==0
disp ('le nombre d''intervalle p doit etre positif (p>0) et non nul')
p=input ('saisir le nombre de division de l''intervalle spatiale:');
end
h=(b-a)/(p+1);

%definition des conditions au limites et de la valeur de alpha


fprintf('\n DEFINITION DES CONDITIONS AUX LIMITES ET DE ALPHA \n\n');
gamma=input('entrer la valeur initiale T(a): ');
beta=input('entrer la valeur finale T(b): ');
alpha=input('saisir la valeur du coefficient alpha : ');

%conditions sur les conditions aux limites et alpha


while gamma<=beta
disp ('saisir les valeurs de T(a) et T(b) tel que T(a)>T(b)')
gamma=input('entrer la valeur initiale T(a): ');
beta=input('entrer la valeur finale T(b): ');
end

%definir la matrice A
for i=1:p
for j=1:p
if i==j
A(i,j)=-2/h^2;
elseif j==i+1
A(i,j)=(1/h^2)+(alpha/(2*h));
elseif j==i-1
A(i,j)=(1/h^2)-(alpha/(2*h));
else
A(i,j)=0;
end
end
end
%definir la source Q=f(x)
fprintf('\n DEFINITION DE LA SOURCE Q \n\n');
disp('Pour definir la source Q, il y a trois possibiltes');
disp('1. saisir Q comme une fonction Q connu');

MECANIQUE DES FLUIDES NUMERIQUES 7


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

disp('2. saisir les donnees sur la source Q recuperee sur le terrain (au
moins 5 positions de la fonction f)');
disp('3. saisir Q comme une constante');
choix=input('comment desirez vous definir Q (saisir 1, 2 ou 3): ');
switch choix
case 1
syms x;
f(x)=input('entrer la valeur de Q (Q etant fonction de x): ');
for i=0:p-1
t(i+1)=a+(i+1/2)*h;
B(i+1,1)=f(t(i+1));
if i==0
B(i+1,1)=B(i+1,1)-((1/h^2)-(alpha/(2*h)))*gamma;
elseif i==p-1
B(i+1,1)=B(i+1,1)-((1/h^2)+(alpha/(2*h)))*beta;
else
B(i+1,1)=f(t(i+1));
end
end
case 2
Xx=input('entrer les valeurs de x de la fonction Q connu: ');
Xx;
while length(Xx)<5
disp('longueur du vecteur X>=5');
Xx=input('entrer les valeurs de x de la fonction Q connu: ');
Xx;
end
Ff=input('entrer les valeurs de Q de la fonction Q connu: ');
Ff;
while length(Ff)<5
disp('longueur du vecteur F>=5');
Ff=input('entrer les valeurs de Q de la fonction Q connu: ');
Ff;
end
while length(Xx)~=length(Ff)
disp('longueur du vecteur X doit etre egale a la longueur de
F');
Xx=input('entrer les valeurs de x de la fonction Q connu: ');
Xx;
Ff=input('entrer les valeurs de Q de la fonction Q connu: ');
Ff;
end

ff=polyfit(Xx,Ff,5);
syms x;
n=length(ff)
s=0
for i=1:n
s=s+power(x,i-1)*ff(n-i+1);
end
f(x)=s;
C(1)=polyval(ff,(a+h/2))-((1/h^2)-(alpha/(2*h)))*gamma;
C(p)=polyval(ff,(a+h*(p-1/2)))-((1/h^2)+(alpha/(2*h)))*beta;
for i=2:1:p-1
tt(i)=a+(i-1/2)*h;
C(i)=polyval(ff,tt(i));
end
B=C';
case 3

MECANIQUE DES FLUIDES NUMERIQUES 8


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

fcte=input('entrer la valeur de Q (Q etant constant): ');


for i=0:p-1
B(i+1,1)=fcte;
if i==0
B(i+1,1)=fcte-((1/h^2)-(alpha/(2*h)))*gamma;
elseif i==p-1
B(i+1,1)=fcte-((1/h^2)+(alpha/(2*h)))*beta;
else
B(i+1,1)=fcte;
end
end
end
X=(A^(-1))*B;
for i=0:1:p+1
if i==0
T(i+1,1)=gamma;
elseif i==p+1
T(i+1,1)=beta;
else
T(i+1,1)=X(i);
end
end
T;
RESOLUTION PAR LA METHODE MANUELLE : SOLUTION EXACTE
%% solution exacte
fprintf('\n DETERMINONS LA SOLUTION EXACTE \n\n');
disp('CHoisir le type de la fonction f(x)');
disp('1. la fonction f est fonction de x');
disp('2. la fonction f est constante');
choix=input('La fonction f est-elle fonction de x ou constante (saisir 1 ou
2): ');
switch choix
case 1
syms HH(x) x;
eqn=diff(HH,x,2)+alpha*diff(HH,x)==f(x);
HH(x)=dsolve(eqn,HH(a)==gamma,HH(b)==beta);
HH(x);
x=a:h:b;
Hh=HH(x);
Hh(p+2)=beta;
Hh;
case 2
syms HH(x) x;
eqn=diff(HH,x,2)+alpha*diff(HH,x)==fcte;
HH(x)=dsolve(eqn,HH(a)==gamma,HH(b)==beta);
HH(x);
x=a:h:b;
Hh=HH(x);
Hh(p+2)=beta;
Hh;
End
CALCUL DE L’ERREUR
%% calcul de l'erreur
fprintf('\n CALCUL DE L''ERREUR MAXIMALE \n\n');
Err=abs(Hh(:)-T);
Err;
diag(Err);
ep=max(Err)

MECANIQUE DES FLUIDES NUMERIQUES 9


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

TRACEE DES SOLUTIONS APPROCHEE, EXACTE ET DE L’ERREUR


%%
%trace de la solution approchee
fprintf('\n TRACE DES COURBES DE DIFFUSION - CONVECTION - SOURCE\n\n');
x=a:h:b;
figure(1);
axis([-inf +inf -inf +inf]);
plot(x,T,'*-g');hold on;
%trace de la solution exacte
plot(x,Hh,'h-r');
grid;
title('COURBES DE DIFFUSION - CONVECTION - SOURCE');
xlabel('axe des abscisses');
ylabel('axe des T');
legend ('solution approchee','solution exacte','Location','best');

figure(2)
%trace de la courbe des erreurs
axis([-inf +inf -inf +inf]);
plot(x,Err,'+-b');
title('COURBES DES ERREURS');
xlabel('axe des abscisses');
ylabel('axe des T');
legend ('courbe des erreurs','Location','best');

figure(3)
fprintf('\n TRACE DES COURBES DE DIFFUSION - CONVECTION - SOURCE ET DES
ERREURS \n\n');
x=a:h:b;
axis([-inf +inf -inf +inf]);
plot(x,T,'*-g');hold on;
%trace de la solution exacte
plot(x,Hh,'h-r');hold on;
%trace de la courbe des erreurs
plot(x,Err,'+-b');
grid;
title('COURBES DE DIFFUSION - CONVECTION - SOURCE ET DES ERREURS');
xlabel('axe des abscisses');
ylabel('axe des T');
legend ('solution approchee','solution exacte','courbe des
erreurs','Location','best');

MECANIQUE DES FLUIDES NUMERIQUES 10


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

d. Résultats
Ici, nous allons présenter trois cas différents.

 Cas 1 : diffusion + convection


Données :

]𝑎, 𝑏[ = ]0,4[ ; 𝛼 = 0.9


Q= ; N=5
T(A)=300 ; T(B)=50

 Cas 2 : diffusion + convection


Données :

]𝑎, 𝑏[ = ]0,5[ ; 𝛼 = 0.9


Q=0.9 ; N=10
T(A)=300 ; T(B)=50

MECANIQUE DES FLUIDES NUMERIQUES 11


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

 Cas 3 : diffusion + convection


Données :

]𝑎, 𝑏[ = ]0,5[ ; 𝛼 = 0.9


Q=0.9 ; N=150
T(A)=300 ; T(B)=50

MECANIQUE DES FLUIDES NUMERIQUES 12


RESOLUTION D’UNE EQUATION AUX DERIVEES PARTIELLES ET TRACE DE LA
COURBE

Interprétation des cas :


Plus le nombre de subdivision de l’intervalle est grand, plus la courbe de la solution
approchée se rapproche de la solution exacte ; donc la courbe d’erreur tend vers 0.

MECANIQUE DES FLUIDES NUMERIQUES 13