Vous êtes sur la page 1sur 39

A.

Taik TP AN3 LST-MI


Travaux Pratiques: Equations aux D eriv ees Parti` elles
M ethodes des Diff erence Finies
D epartement de Math ematiques
FST-Mohammedia, (2008)
1
Contents
1 R esolution dune EDP elliptique 4
1. R esolution de lEDP par la m ethode directe: . . . . . . . . . . . . . . . . . . . . . 4
1.1. Cas o` u h = 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Cas o` u h = 2.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. M ethode de relaxation de Liebmann . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1. Relaxation: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Equation de Poisson 3D 11
3 R esolution dune EDP parabolique 12
1. Programmation de la solution analytique: . . . . . . . . . . . . . . . . . . . . . . 13
2. Discr etisation de l equation diff erentielle: . . . . . . . . . . . . . . . . . . . . . . 14
2.1. Rappel de la notation spatiale et temporelle: . . . . . . . . . . . . . . . . . 14
2.2. Discr etisation des d eriv ees partielles: . . . . . . . . . . . . . . . . . . . . 14
2.3. Equation aux d eriv ees partielles discr` etis ee: . . . . . . . . . . . . . . . . . 15
2.4. R esolution num erique du syst` eme: . . . . . . . . . . . . . . . . . . . . . . 15
3. M ethode de Crank - Nicolson ou m ethode implicite: . . . . . . . . . . . . . . . . . 18
3.1. Programmation de la solution . . . . . . . . . . . . . . . . . . . . . . . . 19
4. Comparaison des m ethodes: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1. Comparaison de u
exact
(0.25, t) et u
app
(0.25, t), u
exact
(0.75, t) et u
app
(0.75, t) 21
4.2. Comparaison de u
exact
(x, 0.99) et u
app
(x, 0.99), u
exact
(x, 1.98) et u
app
(x, 1.98) 22
4 R esolution dune EDP hyperbolique 24
1. Exercices dapplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.1. Exercice 1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.2. Exercice 2: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3. Exercice 3: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.4. Exercice 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2
List of Figures
1.1 Evolution de la courbe u = 0 en fonction de h avec la m ethode directe . . . . . . 8
1.2 Evolution de la courbe u = 0 en fonction de h pour la m ethode de r elaxation . . 10
3.1 Repr esentation graphique de la solution analytique u
exact
(x
i
, t
j
) . . . . . . . . . . 14
3.2 Courbe de la solution num erique, m ethode explicite pour r <
1
2
. . . . . . . . . . . 18
3.3 Courbe de la solution num erique, m ethode explicite pour r >
1
2
. . . . . . . . . . . 18
3.4 Courbe de la solution num erique, m ethode implicite pour r <
1
2
. . . . . . . . . . 21
3.5 Courbe de la solution num erique, m ethode implicite pour r >
1
2
. . . . . . . . . . 21
3.6 Comparaison graphique de u
exact
(0.25, t) et u
app
(0.25, t) . . . . . . . . . . . . . . 22
3.7 Comparaison graphique de u
exact
(0.75, t) et u
app
(0.75, t) . . . . . . . . . . . . . . 22
3.8 Comparaison graphique de u
exact
(x, 0.9281) et u
app
(x, 0.9281) . . . . . . . . . . . 23
3.9 Comparaison graphique de u
exact
(x, 1.9594) et u
app
(x, 1.9594) . . . . . . . . . . . 23
4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3
TP 1
R esolution dune EDP elliptique
Exercice1:
Soit ` a r esoudre l equation de Laplace
_
_
_
u = 0 dans le domaine (x, y) [0, 20] [0, 10]
u(x, 0) = u(x, 10) = u(0, y) = 0 et u(20, y) = 100
h
x
= h
y
= h {5, 2.5, 1.25, 0.625, 0.3125}
Tout en variant h, r esoudre cette EDP:
1. En utilisant la m ethode directe.
2. En utilisant la m ethode de r elaxation de Liebmann.
3. Conclure.
1. R esolution de lEDP par la m ethode directe:
1.1. Cas o` u h = 5
On a: h
x
=
ba
n
x
n
x
=
ba
h
x
=
200
5
= 4 et n
y
=
dc
h
y
=
100
5
= 2 La grille maill ee contient alors
(n
x
+1)(n
y
+1) mailles vu que nous avons ` a rajouter les points o` u x
i
= 0 et ceux o` u y
j
= 0 cest ` a
dire les points intersection de la courbe avec les axes. Mais comme les conditions aux limites nous
donnent les images sur les bords, alors les points inconnus restent seulement ceux de lint erieur du
cadrillage. Ce qui fait donc que le nombre dinconnues est alors (n
x
1) (n
y
1) = 3 1 = 3
Nous obtenons le syst` eme de trois equations ` a trois inconnues suivant:
_
_
_
4u
1,1
+ u
2,1
+ 0u
3,1
= 0
u
1,1
4u
2,1
+ u
3,1
= 0
0u
1,1
+ u
2,1
4u
3,1
= 100
4
A. Taik TP AN3 LST-MI
Il nous reste maintenant ` a r esoudre le syst` eme matriciel: A U = B Avec:
A =
_
_
4 1 0
1 4 1
0 1 4
_
_
, B =
_
_
0
0
100
_
_
et U =
_
_
u
1,1
u
2,1
u
3,1
_
_
Avec une des m ethodes vues en Analyse Num erique II (r esolution des syst` emes lin eaires), nous
obt enons la solution:
U =
_
_
1.786
7.143
26.786
_
_
1.2. Cas o` u h = 2.5
Nous avons aussi: n
x
=
ba
h
=
200
2.5
= 8 et n
y
=
dc
h
=
100
2.5
= 4, ce qui nous donne un syst` eme
` a n = (n
x
1) (n
y
1) = 7 3 = 21 equations ` a 21 inconnues de la forme:
_

_
4u
1,1
+ u
2,1
+ + u
1,2
+ = 0
u
1,1
4u
2,1
+ u
3,1
+ + u
2,2
+ = 0
.
.
.
+ u
6,1
4u
7,1
+ = 100
u
1,1
+ 4u
2,1
+ u
2,2
+ = 0
.
.
.
Les conditions aux limites nous ont ramen e ` a avoir la grille suivante dans laquelle nous allons
chercher les inconnus de l equation:
E
T
0
0
0
0
0
0
0 0 0 0 0 0 0 0 x
y
0 0 0 0 0 0 0 0
100
100
100
u
1,1
u
2,1
u
3,1
u
1,2
u
1,3
u
1,4
u
1,5
u
1,6
u
1,7
u
2,2
u
3,2
u
2,3
u
2,4
u
2,5
u
2,6
u
2,7
u
2,3
u
3,4
u
3,5
u
3,6
u
3,7
D epartement de Math ematiques
FST-Mohammedia, (2008)
5
A. Taik TP AN3 LST-MI
Avec un petit programme sur Matlab, nous transformons la matrcie U en un vecteur v pour
pouvoir bien r esoudre le syst` eme sans erreur puisque la r esolution du syst` eme AU = B exige que
U soit un vecteur. Voici le programme qui a assur e la transformation:
********************************************
for j=1:ny-1
for i=1:nx-1
v(k)=u(i,j);
k=k+1;
end
end
**********************************************
Ce qui nous donne apr` es, le syst` eme:
_

_
4v
1
+ v
2
+ + v
8
+ = 0
v
1
4v
2
+ v
3
+ + v
9
+ = 0
.
.
.
+ v
6
4v
7
+ = 100
v
1
+ 4v
8
+ v
9
+ = 0
.
.
.
Il nous reste maintenant ` a r esoudre le syst` eme matriciel suivant: A v = B, avec
A =
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
4 1 1
1 4 1 1
0 1 4 1 1
.
.
.
.
.
.
.
.
.
1 4 0 1
1 0 4 1 1
0
.
.
.
.
.
. 1
.
.
.
.
.
.
.
.
.
.
.
.
0 1 1 4
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
et B =
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
0
.
.
.
.
.
.
100
.
.
.
.
.
.
100
.
.
.
.
.
.
100
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
Lutilisation de la m ethode de Jacobi ou Gauss-Seidel pourrait nous donner les solutions du
syst` eme. Toutefois, nous allons adapter la r esolution directe comme le titre lindique pour r esoudre
ce syst` eme. voici le programme complet, expliqu e, saisi en Matlab qui nous a permis davoir la
matrice U ` a partir des calculs des elements du vecteur v.
*************************************************
clc;clear
h=2.5;
a=0;
D epartement de Math ematiques
FST-Mohammedia, (2008)
6
A. Taik TP AN3 LST-MI
b=20;
c=0; d=10;
nx=(b-a)/h;
ny=(d-c)/h;
n=(nx-1)*(ny-1);
%%% (remplissage des el ements 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 el ements de la matrice B)
for i=1:n
B(i)=0;
if (mod(i,nx-1)==0)
B(i)=-100;
end
end
%%% (r 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
%%% (d ecallage des elements pour ins erer les conditions aux limites)
for j=ny:-1:2
for i=nx:-1:2
u(j,i)=u((j-1),i-1);
end
D epartement de Math ematiques
FST-Mohammedia, (2008)
7
A. Taik TP AN3 LST-MI
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;
%%% les vecteurs x et y
x=0:h:b; y=0:h:d;
%%% (afchage la courbe en tenant compte des vecteurs x ,y et de la matrice U)
mesh(x,y,u)
**********************************************
Voici en r esum e, les courbes quon obtient en variant h:
Figure 1.1: Evolution de la courbe u = 0 en fonction de h avec la m ethode directe
D epartement de Math ematiques
FST-Mohammedia, (2008)
8
A. Taik TP AN3 LST-MI
2. M ethode de relaxation de Liebmann
Le sch ema num erique obtenu dans la partie 1 de ce projet nous donne:
u
i1,j
+ u
i,j1
4u
i,j
+ u
i+1,j
+ u
i,j+1
= 0
u
i,j
=
u
i1,j
+ u
i,j1
+ u
i+1,j
+ u
i,j+1
4
u
k+1
i,j
=
u
k+1
i1,j
+ u
k+1
i,j1
+ u
k
i+1,j
+ u
k
i,j+1
4
(2.1)
Cette m ethode est appel ee m ethode it erative de Liebmann. Une condition initiale est exig ee,
comme pour toute autre m ethode it erative, pour pouvoir commencer le proc essus.
Pour cette m ethode, on a besoin de seulement 6000 bytes (octets) pour r esoudre le syst` eme au lieu
de 14000 bytes pour la m ethode directe, pour h = 1.25.
On peut aussi ecrire:
u
k+1
i,j
= u
k
i,j
+
_
u
k+1
i1,j
+ u
k+1
i,j1
+ u
k
i+1,j
+ u
k
i,j+1
4
_
le terme entre crochets est appel e r esidus conu comme un ajustement de la valeur pr ec edente u
k
i,j
pour avoir la valeur u
k+1
i,j
2.1. Relaxation:
u
k+1
i,j
= u
k
i,j
+ w
_
u
k+1
i1,j
+ u
k+1
i,j1
+ u
k
i+1,j
+ u
k
i,j+1
4
_
avec:
w
opt
=
4
2 +
_
4 (cos

nx
+ cos

ny
)
2
************************************************
clear; clc;
a=0; b=20;
c=0; d=10;
h=0.625 ;
%%% les vecteurs ox, oy x=0:h:b; y=0:h:d;
nx=(b-a)/h; ny=(d-c)/h;
c=cos(pi/nx)+cos(pi/xy);
w=4/(2+sqrt(4-C*C));
u=zeros(ny+1,nx+1);
v=zeros(ny+1,nx+1);
D epartement de Math ematiques
FST-Mohammedia, (2008)
9
A. Taik TP AN3 LST-MI
for j=2:ny
u(j,nx+1)=100;
end
while (abs(norm(u-v) 1e-6))
v=u;
for j=2:nx
for i=2:ny
u(i,j)= u(i,j)+w/4*(u(i+1,j)+u(i-1,j)+u(i,j+1)+u(i,j-1)-4*u(i,j));
end
end
end
mesh(x,y,u)
*************************************************
Voici les courbes r epresentatives pour chaque valeur de h.
Figure 1.2: Evolution de la courbe u = 0 en fonction de h pour la m ethode de r elaxation
D epartement de Math ematiques
FST-Mohammedia, (2008)
10
TP 2
Equation de Poisson 3D
Exercice:
Soit l equation de Poisson (3D):
_

_
u = f(x, y, z) dans le domaine (x, y, z) [0, 1] [0, 1] [0, 1] ,
u(x = 0, y, z) = u(x, y = 0, z) = u(x, y, z = 0) = 0
u(x = 1, y, z) = u(x, y = 1, z) = u(x, y, z = 1) = 0,
Avec :
f(x, y, z) =
_
2kyz(1 y)(1 z) + (kyz(1 y)(1 z)(1 2x))
2
2kzx(1 z)(1 x) + (kzx(1 z)(1 x)(1 2y))
2
2kxy(1 x)(1 y) + (kxy(1 x)(1 y)(1 2z))
2
)
(e
kxyz(1x)(1y)(1z)
/(1 e
k/64
)
_
.
La solution exacte est:
u(x, y, z) = (1 e
kxyz(1x)(1y)(1z)
)/(1 e
k/64
).
Question 1: R esoudre cette EDP num eriquement par diff erence nie (M ethode directe). Etablir
un code Matlab.
Question 2: Utiliser la m ethode de relaxation de Liebmann pour rsoudre du m eme probl` eme
et comparer la solution approch ee avec la solution exacte.
Question 3: Conclure.
11
TP 3
R esolution dune EDP parabolique
TP:
Soit ` a r esoudre l equation de la chaleur
u
t
=

2
u
x
2
avec R xe. Consid erons le syst` eme:
_

_
u
t
=

c

2
u
x
2
u(x, 0) =
_
100x si x [0, 1]
100(2 x) si x [1, 2]
u(0, t) = u(2, t) = 0
Prendre = 0.13, c = 0.11, = 7.8g/cm
3
, x = 0.25. t sera donn e par les conditions de
stabilit e d enies par lin equation: r =

c
t
x
2
<
1
2
. La solution analytique est donn ee par:
u
exact
(x, t) = 800

n=0
1

2
(2n + 1)
2
cos
(2n + 1)(x 1)
2
e
0.3738(2n+1)
2
t
1. Utiliser la m ethode directe (m ethode explicite) en supposant r >
1
2
puis r <
1
2
. Que
constatez-vous?
2. Utiliser maintenant la m ethode de Crank- Nicolson et faites varier le r. Que constatez-vous?
3. Comparaisons des m ethodes:
(a) Comparer, en fonction de r, graphiquement u
exact
(0.25, t) et u
app
(0.25, t) puis u
exact
(0.75, t)
et u
app
(0.75, t)
(b) M eme question pour u
exact
(x, 0.99) et u
app
(x, 0.99) puis
u
exact
(x, 1.98) et u
app
(x, 1.98)
4. Conclure.
12
A. Taik TP AN3 LST-MI
1. Programmation de la solution analytique:
Soit:
u
exact
(x, t) = 800

n=0
1

2
(2n + 1)
2
cos
(2n + 1)(x 1)
2
e
0.3738(2n+1)
2
t
Puisque nous sommes en analyse num erique et non en analyse fondamentale nous devons savoir
que nous ne travaillons quavec des points dun maillage et non dans tout le domaine comme on
aurait cru le faire. Pour evaluer la valeur num erique de u
exact
pour tout point appartenant dans la
grille, nous devons faire une boucle qui, pour chaque point (x
i
, t
j
), calcule u
exact
(x
i
, t
j
).
Posons = 100 acceptable en analyse num erique, nous avons donc le programme suivant qui cal-
cule les el ements de la matrice v repr esentant exactement les valeurs de u(x
i
, t
j
) dans le cadrillage.
***********************************
clc; clear;
k=0.13;c=0.11; p=7.8;dx=0.25;
r=1/4
dt=dx*dx*c*p*r/k;
Tmax=100*dt;%%(Nous avons fait Tmax un multiple de dt pour quen le divisant par dt, nt soit
toujours un entier, car sinon le programme ne compilera pas)%
cla=0; clb=0;
a=0;b=2;
nx=(b-a)/dx;
nt=Tmax/dt;
x=0:dx:b; t=0:dt:Tmax;
% *********** la solution analytique ********************
v=zeros(nx+1,nt+1);
n=0;
while(n 100)
for i=1:nx+1
for j=1:nt+1
u(i, j) = v(i, j) +8001/(pi
2
(2n+1)
2
) cos(pi (2n+1) (x(i) 1)/2) exp(0.3738
(2 n + 1)
2
t(j));
v(i,j)=u(i,j);
end
end
n=n+1;
end
mesh(t,x,v)
*****************************
Voici la courbe que nous avons obt enue pour r =
1
4
:
D epartement de Math ematiques
FST-Mohammedia, (2008)
13
A. Taik TP AN3 LST-MI
Figure 3.1: Repr esentation graphique de la solution analytique u
exact
(x
i
, t
j
)
2. Discr etisation de l equation diff erentielle:
2.1. Rappel de la notation spatiale et temporelle:
Si la fonction u prend comme variables le temps t
j
et de lesapce x
i
, y
j
, , par commodit e du
langage, on notera u(x
i
, t
j
) par u
j
i
et en dimension 2D de lespace et 1D en temps, u(x
i
, y
j
, t
k
)
sera not ee par u
k
i,j
2.2. Discr etisation des d eriv ees partielles:
Nous pouvons approximer

2
u
x
2
par:

2
u
x
2
(x
i
, t
j
)
u
j
i+1
2u
j
i
+ u
j
i+1
(x)
2
(2.1)
Puisque
u
t
est une d eriv ee simple cest ` a dire une d eriv ee pr emi` ere, nous utilisons ici lune des
trois formules vues en projet 1, paragraphe 1.1.1. Prenons la formule avale (droite):
u
t
(x
i
, t
j
)
u
j+1
i
u
j
i
t
(2.2)
Nous avons remplac e h
x
par x et h
t
par t.
D epartement de Math ematiques
FST-Mohammedia, (2008)
14
A. Taik TP AN3 LST-MI
2.3. Equation aux d eriv ees partielles discr` etis ee:
Remplaons 2.1 et 2.2 dans lEDP donn ee en enonc e. On aura:
u
j+1
i
u
j
i
t


c

u
j
i+1
2u
j
i
+u
j
i1
(x)
2
u
j+1
i
u
j
i
=
t
(x)
2


c
(u
j
i+1
2u
j
i
+ u
j
i1
)
Posons r =
t
(x)
2


c
, l equation devient:
u
j+1
i
= ru
j
i+1
+ (1 2r)u
j
i
+ ru
j
i1
Ceci est l equation discr etis ee de l equation de la chaleur avec la m ethode des diff erences nies.
On lappelle equation de la m ethode directe.
Remark 1. :
1. r regroupe les constantes physiques du probl` eme et celles de la discr etisation de lespace
[a, b] et du temps [0, T
max
]. Donc les pas de discr etisations inuencent l equation discr etis ee.
2. Pour j = 0, t = 0 et u
1
i
= ru
0
i+1
+(12r)u
0
i
+ru
0
i1
l equation n ec essite la connaissance
de la condition initiale pour d emarrer le proc essus.Cette condition nest autre que f(x, 0) =
f(x
i
) donn ee par l enonc e du probl` eme.
2.4. R esolution num erique du syst` eme:
Quand on xe j et on varie i de 1 ` a n
x
1, on obtient le syst` eme lin eaire de n
x
1 equations ` a
n
x
1 inconnues suivant:
_

_
u
j+1
1
= ru
j
2
+ (1 2r)u
j
1
+ ru
j
0
u
j+1
2
= ru
j
3
+ (1 2r)u
j
2
+ ru
j
1
.
.
.
_
U
j+1
= M U
j
+ N
0 j n
t
1
.
.
.
u
j+1
n
x
1
= ru
j
nx
+ (1 2r)u
j
n
x
1
+ ru
j
n
x
2
Avec: u
j
0
la condition aux limites en a, on la notera dans la programmation u
j
0
= cla et u
j
n
x
la
condition aux limites en b qui sera not ee u
j
n
x
= clb. Nous avons donc:
M =
_
_
_
_
_
_
_
_
_
_
_
1 2r r 0 0
r 1 2r r
.
.
.
.
.
.
0 r 1 2r r
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0
.
.
.
.
.
.
r 1 2r r
0 0 r 1 2r
_
_
_
_
_
_
_
_
_
_
_
et N =
_
_
_
_
_
_
_
_
_
_
_
_
rU
j
0
0
.
.
.
.
.
.
.
.
.
0
rU
j
n
x
_
_
_
_
_
_
_
_
_
_
_
_
D epartement de Math ematiques
FST-Mohammedia, (2008)
15
A. Taik TP AN3 LST-MI
La matrice M est une matrice tridiagonale ou trigonale et la r esolution est dautant plus simple
` a programmer avec une des m ethodes it eratives ou directes vues en analyse num erique II. Mais,
encore une fois, nous allons nous sufre de la r esolution directe par la division matricielle. Cest
` a dire si on a ` a r esoudre le syst` eme Au = B alors on ecrira en Matlab x = A \ B et nous aurons
automatiquement la r eponse.
Attention: B doit etre un vecteur colonne de m eme nombre d el ements que le nombre des lignes
de A et le vecteur u sera donn e en un vecteur colonne. Il ne nous est pas nouveau de donner la
transpos ee dune matrice pour avoir tout ce que nous voulons.
Nous avons pris r =
1
4
pour le cas o` u r <
1
2
et r = 0.625 pour le cas o` u r >
1
2
, on a le programme
suivant qui nous calcule les valeurs du vecteur u, remplac e par le vecteur

h dans le programme
pour pouvoir lier le programme avec le premier calculant les el ements de la matrice v pour la solu-
tion exacte, ` a chaque instant j et qui les stocke dans une matrice w, en commanant par les valeurs
initiales qui ne sont dautres que les conditions initiales. Pour avoir la courbe du deuxi` eme cas, il
suft de remplacer r par 0.625
******************************************
clc; clear;
k=0.13;c=0.11;
p=7.8;dx=0.25;
r=1/4; dt=dx*dx*c*p*r/k;
Tmax=100*dt;
a=0;b=2;
cla=0;clb=0;
nx=(b-a)/dx;
nt=Tmax/dt;
x=0:dx:b; t=0:dt:Tmax;
for i=1:nx-1
N(i)=0;
end
N(1)=r*cla;
N(nx-1)=r*clb;
for i=1:nx-2
M(i,i)=1-2*r;
M(i,i+1)=r;
M(i+1,i)=r;
end
M(nx-1,nx-1)=1-2*r;
for i=1:nx+1
D epartement de Math ematiques
FST-Mohammedia, (2008)
16
A. Taik TP AN3 LST-MI
if x(i) < 1
Ci(i)=100*x(i);
else
Ci(i)=100*(2-x(i));
end
end
for i=1:nx-1
h(i)=Ci(i+1);
end
j=1;
h=h;
while(j < nt + 2)
for i=1:nx-1
w(i,j)=h(i);
end
h=M*h+N;
j=j+1;
end
for i=nx:-1:2
for j=nt+1:-1:1
w(i,j)=w(i-1,j);
end
end
for j=1:nt+1
w(1,j)=0;
w(nx+1,j)=0;
end
mesh(t,x,w);
*********************************
Voici les courbes obtenues apr` es compilation pour les deux cas:
Constatations:
Nous avons r emarqu e, dapr` es les deux graphes corresondantes ` a r <
1
2
et r >
1
2
, que la m ethode
pr esente deux r egions de stabilit e. Si r <
1
2
la m ethode est stable et converge vers la solution
analytique. Nous avons une courbe semblable ` a celle de la solution analytiquement etablie. Plus
j saccroit, plus les valeurs du vecteur u deviennent nulles. Ce qui est en entier accord avec la
solution exacte qui est une s erie des fonctions convergente, alors son terme g en eral doit tendre
forcement vers 0.
Mais si r >
1
2
, la m ethode pr esente des failles et la courbe ne converge m eme pas. Lallure obt enue
dans ce cas est totalement en d esaccord avec celle de la solution exacte.
D epartement de Math ematiques
FST-Mohammedia, (2008)
17
A. Taik TP AN3 LST-MI
Figure 3.2: Courbe de la solution num erique,
m ethode explicite pour r <
1
2
Figure 3.3: Courbe de la solution num erique,
m ethode explicite pour r >
1
2
Pour avoir un bon r esultat dans cette m ethode, il faut donc t enir compte de la valeur de r car elle
inuencera le r esultat.
3. M ethode de Crank - Nicolson ou m ethode implicite:
Nous remplaons les d eriv ees partielles par leurs approximations d ej` a etablies pour avoir l equation
num erique suivante:
1
2
_
u
j
i+1
2u
j
i
+u
j
i1
(x)
2
+
u
j+1
i+1
2u
j+1
i
+u
j+1
i1
(x)
2
_
=
c


u
j+1
i
u
j
i
t
2
_
u
j+1
i
u
j
i
_
=
t
(x)
2

c
_
u
j
i+1
2u
j
i
+ u
j
i1
+ u
j+1
i+1
2u
j+1
i
+ u
j+1
i+11
_
.
Posons r =
t
(x)
2

c
, on trouve l equation:
ru
j+1
i1
+ (2 + 2r)u
j+1
i
ru
j+1
i+1
= ru
j
i1
+ (2 2r)u
j
i
+ ru
j
i+1
Ceci est le sch ema num erique de Crank - Nicolson.
Lorsque nous xons j et faisons varier i, nous obt enons le syst` eme lin eaire suivant:
_

_
ru
j+1
0
+ (2 + 2r)u
j+1
1
ru
j+1
2
= ru
j
0
+ (2 2r)u
j
1
+ ru
j
2
ru
j+1
1
+ (2 + 2r)u
j+1
2
ru
j+1
3
= ru
j
1
+ (2 2r)u
2
i
+ ru
j
3
ru
j+1
2
+ (2 + 2r)u
j+1
3
ru
j+1
4
= ru
j
2
+ (2 2r)u
j
3
+ ru
j
4
.
.
.
.
.
.
ru
j+1
n
x
2
+ (2 + 2r)u
j+1
n
x
1
ru
j+1
nx
= ru
j
n
x
1
+ (2 2r)u
j
nx
+ ru
j
nx
=M
1
U
j+1
+ N
1
= M
2
U
j
+ N
2
D epartement de Math ematiques
FST-Mohammedia, (2008)
18
A. Taik TP AN3 LST-MI
Avec:
M
1
=
_
_
_
_
_
_
_
_
_
_
_
2 + 2r r 0 0
r 2 + 2r r
.
.
.
.
.
.
0 r 2 + 2r r
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 0
.
.
.
.
.
.
r 2 + 2r r
0 0 r 2 + 2r
_
_
_
_
_
_
_
_
_
_
_
, N
1
=
_
_
_
_
_
_
_
_
_
_
_
_
rU
j+1
0
0
.
.
.
.
.
.
.
.
.
0
rU
j+1
n
x
_
_
_
_
_
_
_
_
_
_
_
_
M
2
=
_
_
_
_
_
_
_
_
_
_
_
2 2r r 0 0
r 2 2r r
.
.
.
.
.
.
0 r 2 2r r
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 0
.
.
.
.
.
.
r 2 2r r
0 0 r 2 2r
_
_
_
_
_
_
_
_
_
_
_
, N
2
=
_
_
_
_
_
_
_
_
_
_
_
_
rU
j
0
0
.
.
.
.
.
.
.
.
.
0
rU
j
nx
_
_
_
_
_
_
_
_
_
_
_
_
=U
j+1
= M
1
1
[M
2
U
j
+ (N
2
N
1
)]
Ce syst` eme matriciel est lin eaire dordre n
x
1.
3.1. Programmation de la solution
Voici le programme qui sert ` a donner la courbe de la solution num erique de la m ethode de Crank
- Nicolson. Pour avoir la solution (la courbe) pour le deuxi` eme cas, il suft de remplacer r par 0.25:
*********************************
clc; clear;
k=0.13;c=0.11;
p=7.8;dx=0.25;
r=0.625;
dt=dx*dx*c*p*r/k;
Tmax=100*dt;
a=0;b=2;
cla=0;clb=0;
nx=(b-a)/dx; nt=Tmax/dt;
x=0:dx:b; t=0:dt:Tmax;
for i=1:nx-1
N1(i)=0;
N2(i)=0;
end
D epartement de Math ematiques
FST-Mohammedia, (2008)
19
A. Taik TP AN3 LST-MI
N2(1)=-r*cla;
N2(nx-1)=-r*clb;
for i=1:nx-2
M1(i,i)=2+2*r;
M1(i,i+1)=-r;
M1(i+1,i)=-r;
M2(i,i)=2-2*r;
M2(i,i+1)=r;
M2(i+1,i)=r;
end
M1(nx-1,nx-1)=2+2*r;
M2(nx-1,nx-1)=2-2*r;
for i=1:nx+1
if x(i)<1
Ci(i)=100*x(i);
else
Ci(i)=100*(2-x(i));
end
end
for i=1:nx-1
h(i)=Ci(i+1);
end
j=1;
h=h;
I=eye(nx-1)
while(j<nt+2)
for i=1:nx-1
w(i,j)=h(i);
end
h=(M1\I)*(M2*h+(N2-N1));
j=j+1;
end
for i=nx:-1:2
for j=nt+1:-1:1
w(i,j)=w(i-1,j);
end
end
for j=1:nt+1
w(1,j)=0;
w(nx+1,j)=0;
end
mesh(t,x,w);
D epartement de Math ematiques
FST-Mohammedia, (2008)
20
A. Taik TP AN3 LST-MI
******************************************
Voici les courbes r epresentatives de w dans les deux situations:
Figure 3.4: Courbe de la solution num erique,
m ethode implicite pour r <
1
2
Figure 3.5: Courbe de la solution num erique,
m ethode implicite pour r >
1
2
Constatations
Nous remarquons ici que la m ethode de Crank - Nicolson est inconditionnellement stable ( cest ` a
dire quel que soit r R). Toutefois, quand r >
1
2
la m ethode converge plus vite vers 0 que si cest
le cas contraire. Il faut aussi savoir quon paie cette stabilit e par la r esolution, ` a chaque instant t
j
,
dun syst` eme lin eaire qui n ec essite une inversion de la matrice M
1
tridiagonale, soit:
M
1
U
j+1
+ N
1
= M
2
U
j
+ N
2
=U
j+1
= M
1
1
[M
2
U
j
+ (N
2
N
1
)]
4. Comparaison des m ethodes:
En fonction de r, nous voulons comparer graphiquement la m ethode num erique explicite (directe)
avec la solution analytique pour voir comment la solution approch ee se rapproche ` a la solution
exacte.
4.1. Comparaison de u
exact
(0.25, t) et u
app
(0.25, t), u
exact
(0.75, t) et u
app
(0.75, t)
Nous combinons le programme de la solution analytique avec celui de la solution num erique di-
recte pour pouvoir faire la comparaison, puis on ajoute ` a la n du nouveau programme, la partie
D epartement de Math ematiques
FST-Mohammedia, (2008)
21
A. Taik TP AN3 LST-MI
suivante:
R emarquons que x
i
= 0.25 si i = 2 et x
i
= 0.75 pour i = 4.
**************************
Sa1=v(2,:);
Sn1=w(2,:);
plot(t,Sa1,r,t,Sn1,g);
Sa2=v(4,:);
Sn2=w(4,:)
gure(2)
plot(t,Sa2,r,t,Sn2,g);
**************************
Voici donc les courbes comparatives de ces deux m ethodes aux points 0.25 et 0.75:
Figure 3.6: Comparaison graphique de
u
exact
(0.25, t) et u
app
(0.25, t)
Figure 3.7: Comparaison graphique de
u
exact
(0.75, t) et u
app
(0.75, t)
4.2. Comparaison de u
exact
(x, 0.99) et u
app
(x, 0.99), u
exact
(x, 1.98) et u
app
(x, 1.98)
Remarquons quavec r =
1
4
, on na pas un point j tel que t
j
= 0.99 ni t
j
= 1.98 mais on voit que
pour j = 10, t
j
= 0.9281 0.99 et pour j = 20, t
j
= 1.9594 1.98. On refait ensuite la m eme
chose mais on ajoute ` a pr esent la partie suivate ` a la n de la combinaison:
%%********************************
Sa1=v(:,10);
Sn1=w(:,10);
plot(t,Sa1,r,t,Sn1,g);
Sa2=v(:,20);
D epartement de Math ematiques
FST-Mohammedia, (2008)
22
A. Taik TP AN3 LST-MI
Sn2=w(:,20)
gure(2) plot(t,Sa2,r,t,Sn2,g);
*******************************
Voici donc les courbes comparatives des solutions pour les deux m ethodes ` a t
j
= 0.9281 et t
j
=
1.9594:
Figure 3.8: Comparaison graphique de
u
exact
(x, 0.9281) et u
app
(x, 0.9281)
Figure 3.9: Comparaison graphique de
u
exact
(x, 1.9594) et u
app
(x, 1.9594)
D epartement de Math ematiques
FST-Mohammedia, (2008)
23
TP 4
R esolution dune EDP hyperbolique
1. Exercices dapplication
1.1. Exercice 1:
Soit ` a r esoudre:
_

2
u
t
2
= 2

2
u
x
2
4
u
t
= 0, 0 x 1
u(x, 0) =
_
12x, 0 x 0.25
4 4x, 0.25 x 1
u(0, t) = u(1, t) = 0
Prendre x = 0.25 et t = 0.1768
Corrig e
On a a = 2, b = 0, c = 1 et e = 4,
Donc: b
2
4ac = 0 4(2)(1) = 8 > 0, m
1
=
+2

2
4
=

2
2
et m
2
=

2
2
.
Pour chaque point, nous avons deux caract eristiques:
t =

2
2
x et t =

2
2
x (voir gure 2).
Calculons u au point R
2
(0.5, 0.1768): On a l equation
amp + cq + et = 0,
suivant la droite PR
2
puis la droite QR
2
on trouve:
24
A. Taik TP AN3 LST-MI
E
T
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d


-
R
2
R
1
R
3
R
4
R
5
R
6

t = t
t = 0
x

t
P Q
m
+
q
m
+
p
m

p
m

q
d
d
d
d
d
d
d
d
d
d

d
d
d
d
d
d
d
d
d
d
d
d
d
d
d

Figure 4.1:
_
_
_
2

2
2
(p
R
2
p
P
) + (q
R
2
q
P
) + 4t = 0,
2

2
2
(p
R
2
p
Q
) + (q
R
2
q
Q
) + 4t = 0.
On prend: p
P
= (
u
x
)
P
= 4 (car on est ` a droite du point P), p
Q
= (
u
x
)
Q
= 4, et q
P
= (
u
t
)
P
=
q
Q
= (
u
t
)
Q
= 0 et on les remplace dans le syst` eme pour avoir:
_

2(p
R
2
+ 4) + q
R
2
+ 4t = 0,

2(p
R
2
+ 4) + q
R
2
+ 4t = 0.
Apr` es r esolution de ce syst` eme, on obtient: p
R
2
= 4 et q
R
2
=

2
2
Maintenant, on evalue u au point R
2
` a travers ces variations le long de de P R
2
.
u = p
av
x + q
av
t,
u
R
2
u
P
= (
p
P
+ p
R
2
2
) 0.25 + (
q
P
+ q
R
2
2
) 0.1768,
u
R
2
= (
4 4
2
) 0.25 + (
0

2
2
2
) 0.1768 + 3.
u
R
2
= 1.9375
En continuant de la sorte ` a calculer les autres valeurs de u, on remplit le tableau suivant:
D epartement de Math ematiques
FST-Mohammedia, (2008)
25
A. Taik TP AN3 LST-MI
x 0 0.25 0.5 0.75 1
u(t = 0) 0.0 3.0 2.0 1.0 0.0
u(t = 0.1768) 0.0 0.9375 1.9375 0.9375 0.0
u(t = 0.3535) 0.0 -1.1875 -0.2500 0.8125 0.0
u(t = 0.5303) 0.0 -1.3125 -2.4375 -1.3125 0.0
Table 4.1: Tableau 1
Implementation num erique
code:
clear all;clc;
syms a b c e x u;
a=input(donner la valeur de a:);
b=input(donner la valeur de b: );
c=input(donner la valeur de c: );
e=input(donner la valeur de e: );
dx=input(entrer le pas de la discretisation: );
delta=b*b-4*a*c; m=(b-sqrt(delta))/(2*a); n=1/dx; N=n;
d=zeros(N+1,n+1); t=zeros(N+1,n+1); p=zeros(N+1,n+1);
q=zeros(N+1,n+1); u=12*x; f=diff(u);
u=4-4*x; g=diff(u); y=0:dx:1;
i=1;
for j=1:n+1
d(i,j)=y(i,j);
if(0.25<=d(i,j))
u(i,j)=4-4*d(i,j);
p(i,j)=subs(g,x,d(i,j));
q(i,j)=0;
else
if(d(i,j)==0)
u(i,j)=12*d(i,j);
p(i,j)=subs(f,x,d(i,j));
q(i,j)=0;
end
end
end for i=2:N+1
for j=2:n
d(i,j)=(d(i-1,j-1)+d(i-1,j+1))/(2);
t(i,j)=t(i-1,j-1)+m*(d(i,j)-d(i-1,j-1));
A=[a*m c ; -a*m c];
D epartement de Math ematiques
FST-Mohammedia, (2008)
26
A. Taik TP AN3 LST-MI
B=[a*m*p(i-1,j-1)+c*q(i-1,j-1)-e*(t(i,j)-t(i-1,j-1)) ;
-a*m*p(i-1,j+1)+c*q(i-1,j+1)-e*(t(i,j)-t(i-1,j+1))];
V=A\B;
p(i,j)=V(1);
q(i,j)=V(2);
u(i,j)=((p(i,j)+p(i-1,j-1))/2)*(d(i,j)-d(i-1,j-1))
+((q(i,j)+q(i-1,j-1))/2)*(t(i,j)-t(i-1,j-1))+u(i-1,j-1);
end
for j=1:n+1
if(j==1)
d(i,j)=0;
t(i,j)=t(i-1,j+1)-m*(d(i,j)-d(i-1,j+1));
q(i,j)=0;
A=[-a*m];
B=[-a*m*p(i-1,j+1)+c*q(i-1,j+1)-e*(t(i,j)-t(i-1,j+1))];
V=A\B;
p(i,j)=V(1);
else
if(j==n+1)
d(i,j)=1;
t(i,j)=t(i-1,j-1)+m*(d(i,j)-d(i-1,j-1));
A=[a*m];
B=[a*m*p(i-1,j-1)+c*q(i-1,j-1)-e*(t(i,j)-t(i-1,j-1))];
V=A\B;
p(i,j)=V(1);
end
end
end
end mesh(t,d,double(u))
Remarque: B est une matrice qui s\ecrit sous la forme B=[v;w]
suite \a la longueur du code nous avons tronqu\es lexpression
de B de m\eme pour lexpression de u
Execution du code:
Constat
Dans ce cas les caract eristiques donn ees par lequation am
2
bm + c sont des droites.ici nous
avons pris un pas de discr etisation egal ` a 0.25.
D epartement de Math ematiques
FST-Mohammedia, (2008)
27
A. Taik TP AN3 LST-MI
x 0 0.25 0.5 0.75 1
u(t = 0) 0.0 3.0 2.0 1.0 0.0
u(t = 0.1768) 0.0 0.9375 1.9375 0.9375 0.0
u(t = 0.3535) 0.0 -1.1875 -0.2500 0.8750 0.0
u(t = 0.5303) 0.0 -1.3125 -2.3750 -1.3125 0.0
Table 4.2: tableau 1
1.2. Exercice 2:
Soit ` a r esoudre:
_

2
u
t
2
= (1 + 2x)

2
u
x
2
, x [0, 1]
u(x, 0) = 0
u
t
(x, 0) = x(1 x)
u(0, t) = u(1, t) = 0
Corrig e
Pour ce probl` eme, a = (1+2x), b = 0, c = 1, e = 0. La r esolution de l equation am
2
+bm+c =
0 donne:
m =

1
(1 + 2x)
Les courbes caract eristiques sont obtenues en r esolvant les equations diff erentielles:
_

_
dt
dx
=
_
1
1+2x
,
dt
dx
=
_
1
1+2x
.
En int` egrant ` a partir du point initial de coordonn ees (x
0
, t
0
), on trouve:
_
_
_
t = t
0
+

1 + 2x

1 + 2x
0
, pour m
+
,
t = t
0

1 + 2x +

1 + 2x
0
, pour m

.
La gure suivante nous montre les diff erentes courbes caract eristiques que nous obtenons avec
cette equation.
On choisit deux points P(0, 0.25) et Q(0, 0.75) et on se propose de chercher la valeur de u dans
leur int ersection R qui, apr` es r esolution du syst` eme, donne les coordonn ees R(0.4841, 0.1782).
En suite , on r esout l equation ?? pour avoir p =
u
x
et q =
u
t
.
D epartement de Math ematiques
FST-Mohammedia, (2008)
28
A. Taik TP AN3 LST-MI
Au point P: x = 0.25, t = 0, u = 0; p = (
u
x
)
P
= 0;
q = (
u
t
)
P
= x x
2
= 0.8175;
m =
_
1/(1 + 2x) = 0.18765;
a = (1 + 2x) = 1.5, b = 0, c = 1, e = 0
Au point Q: x = 0.75, t = 0, u = 0; p = 0;
q = (
u
t
)
P
= x x
2
= 0.1875;
m =
_
1/(1 + 2x) = 0.6325;
a = (1 + 2x) = 2.5, b = 0, c = 1, e = 0
Au point R: x = 0.4841, t = 0.1783;
m
+
=
_
1/(1 + 2x) = 0.7128;
m

=
_
1/(1 + 2x) = 0.7128
a = (1 + 2x) = 1.9682, b = 0, c = 1, e = 0
Apr` es utilisation de deux valeurs de m en chaque point, l equation ?? donne le syst` eme suivant:
_
_
_
1.77341(0.45015)(p
R
0) + (1)(q
R
0.1875) = 0; P R,
2.22341(0.6726)(p
R
0) + (1)(q
R
0.1875) = 0; Q R.
Apr` es la r esolution de ce syst` eme, on obtient p
R
= 0 et q
R
= 0.1875.
Pour trouver sa valeur au point R, on calcule la variation de u le long de deux caract eristiques
en utilisant l equation ??.
P R : u = 0(0.2341) + 0.1875(0.1783) = 0.0334
Q R : u = 0 + 0.0334 = 0.0334
u
R
= 0.0334 + u
P
= 0.0334 + u
Q
= 0.0334
Avec u = u
R
u
P
.
La repr esentation graphique pr ec edente r esume les autres valeurs de u dans le maillage.
D epartement de Math ematiques
FST-Mohammedia, (2008)
29
A. Taik TP AN3 LST-MI
Impl ementation num erique
clear all; clc;
syms a b c e x u z h;
a=input(donner la valeur de a: );
%
b=input(donner la valeur de b: );
%
c=input(donner la valeur de c: );
%
e=input(donner la valeur de e: );
%
dx=input(entrer le pas de la discretisation: );
%
n=1/dx; N=n; d=zeros(N+1,n+1); t=zeros(N+1,n+1);
%
w=x.((1:n+1)*(1:n+1)); v=x.((1:n+1)*(1:n+1));
p=zeros(N+1,n+1); q=zeros(N+1,n+1); u=zeros(N+1,n+1);
delta=b*b-4*a*c; k=(b-sqrt(delta))/(2*a); g=simplify(k);
f=int(g,x); i=1; y=0:dx:1;
%
for j=1:n+1
d(i,j)=y(i,j);
w(i,j)=z-t(i,j);
v(i,j)=int(g,d(i,j),h);
q(i,j)=d(i,j)*(1-d(i,j));
p(i,j)=0;
r(i,j)=subs(a,x,d(i,j));
m(i,j)=subs(g,x,d(i,j));
u(i,j)=0;
end
%
j=1;
%
for i=2:N+1
u(i,j)=0;
q(i,j)=0;
u(i,n+1)=0;
q(i,n+1)=0;
end
%
for i=2:N+1
D epartement de Math ematiques
FST-Mohammedia, (2008)
30
A. Taik TP AN3 LST-MI
for j=2:n
M=w(i-1,j-1)-v(i-1,j-1);
T=w(i-1,j+1)+v(i-1,j+1);
[d(i,j),t(i,j)]=solve(M,T);
v(i,j)=int(g,d(i,j),h);
w(i,j)=z-t(i,j);
r(i,j)=subs(a,x,d(i,j));
m(i,j)=subs(g,x,d(i,j));
S1=((r(i,j)+r(i-1,j-1))/2)*((m(i,j)+m(i-1,j-1))/2);
S2=((r(i,j)+r(i-1,j+1))/2)*((-m(i,j)-m(i-1,j+1))/2);
A=[S1 c ; S2 c];
B=[S1*p(i-1,j-1)+c*q(i-1,j-1)-e*(t(i,j)-t(i-1,j-1)) ;
S2*p(i-1,j+1)+c*q(i-1,j+1)-e*(t(i,j)-t(i-1,j+1))];
V=A\B;
p(i,j)=V(1);
q(i,j)=V(2);
u(i,j)=((p(i,j)+p(i-1,j-1))/2)*(d(i,j)-d(i-1,j-1))
+((q(i,j)+q(i-1,j-1))/2)*(t(i,j)-t(i-1,j-1))+u(i-1,j-1);
end
%
for j=1:n+1
if(j==1)
d(i,j)=0;
t(i,j)=t(i-1,j+1)-subs(sqrt(1+2*x),d(i,j))...
+subs(sqrt(1+2*x),d(i-1,j+1));
r(i,j)=subs(a,x,d(i,j));
m(i,j)=subs(g,x,d(i,j));
v(i,j)=int(g,d(i,j),h);
w(i,j)=z-t(i,j);
S2=((r(i,j)+r(i-1,j+1))/2)*((-m(i,j)-m(i-1,j+1))/2);
A=[S2];
B=[S2*p(i-1,j+1)+c*q(i-1,j+1)-e*(t(i,j)-t(i-1,j+1))];
V=A\B;
p(i,j)=V(1);
else
if(j==n+1)
d(i,j)=1;
t(i,j)=t(i-1,j-1)+subs(sqrt(1+2*x),d(i,j))...
-subs(sqrt(1+2*x),d(i-1,j-1));
r(i,j)=subs(a,x,d(i,j));
m(i,j)=subs(g,x,d(i,j));
v(i,j)=int(g,d(i,j),h);
D epartement de Math ematiques
FST-Mohammedia, (2008)
31
A. Taik TP AN3 LST-MI
w(i,j)=z-t(i,j);
S1=((r(i,j)+r(i-1,j-1))/2)*((m(i,j)+m(i-1,j-1))/2);
A=[S1];
B=[S1*p(i-1,j-1)+c*q(i-1,j-1)-e*(t(i,j)-t(i-1,j-1))];
V=A\B;
p(i,j)=V(1);
end
end
end
end
Execution du code:
0.0 0.0 0.0 0.0 0.0
0.0 0.00235 0.0334 0.0209 0.0
0.0 0.0297 -0.0205 0.0017 0.0
0.0 -0.0010 -0.0187 -0.0329 0.0
Table 4.3: tableau de u
Constat:
Dans ce cas les caract eristiques ne sont pas des droites ,la pente m est une fonction en x. Nous
avons pris un pas egal ` a 0.25.
1.3. Exercice 3:
Soit ` a r esoudre le syst` eme d equations:
_

2
u
x
2
u

2
u
t
2
+ (1 x
2
) = 0, x [0, 1]
u(x, 0) = x(1 x), u
t
(x, 0) = 0,
u(0, t) = u(1, t) = 0.
Corrig e
On consid` ere le point R donn e par lintersection de la caract eristique de pente positive du point
P(0.2, 0) et la caract eristique de pente n egative du point Q(0.4, 0). Comparons cette equation avec
la forme standard:
au
xx
+ bu
xt
+ cu
tt
+ e = 0,
D epartement de Math ematiques
FST-Mohammedia, (2008)
32
A. Taik TP AN3 LST-MI
On trouve a = 1, b = 0, c = u, e = 1 x
2
. On calcule, avant tout, la valeur num erique de u, p
et q au point P et Q:
avec les conditions initiales,
u = x(1 x),
donc,
u
P
= 0.2(1 0.2) = 0.16,
u
Q
= 0.4(1 0.4) = 0.24;
De plus, avec les diff erentiation des conditions initiales,
p =
u
x
= 1 2x,
ce qui nous donne
p
P
= 1 2(0.2) = 0.6,
p
Q
= 1 2(0.4) = 0.2;
et enn,
q =
u
t
= 0.
Alors:
q
P
= 0 et q
Q
= 0
pour avoir les coordonn ees du point R, nous devons connatre la pente m des caract eristiques.
En utilisant l equation : am
2
bm + c = 0, on obtient:
m =
b

b
2
ac
2a
=

4u
2
=

u.
Puisque m d epend de la solution u, nous aurons besoin de trouver le point R par des approxima-
tions. Pour un premier essai, on utilise des valeurs initiales le long de tout larc; i.e, on prend
m
+
= +m
P
et m

= m
Q
:
m
+
=

u
P
=

0.16 = 0.4,
m

u
q
=

0.24 = 0.490.
A pr esent, on peut estimer les coordonn ees de R en r esolvant le syst` eme:
_
_
_
t
R
= m
+
(x
R
x
P
) = 0.4(x
R
0.2)
t
R
= m

(x
R
x
Q
) = 0.49(x
R
0.4).
Ce qui nous donne x
R
= 0.310 et t
R
= 0.044.
Puisquon ne connait pas m au point R, on utilise sa valeur initiale le long de chanque car-
act eristique pour approximer p et q au point R en utilisant l equation ??:
amp + cq + et = 0,
D epartement de Math ematiques
FST-Mohammedia, (2008)
33
A. Taik TP AN3 LST-MI
Nous remplacons les contantes connues par leurs valeurs pour chaque caract eristique pour avoir le
syst` eme suivant:
(1)(0.4)(p
R
0.6) + (0.16)(q
R
0) +
_
1
0.04 + 0.096
2
_
(0.044) = 0
(1)(0.490)(p
R
0.2) + (0.24)(q
R
0) +
_
1
0.16 + 0.096
2
_
(0.044) = 0
Apr` es r esolution, on obtient p
R
= 0.399 et q
R
= 0.246.
Pour une premi` ere approximation de u au point R, on a:
u = px + qt,
u
R
0.16 =
0.6 + 0.399
2
(0.310 0.2) +
0 0.246
2
(0.044 0),
u
R
= 0.2095
Cette approximation a et e etablie en tenant compte de la courbe PR, en utilisant les diff erentes
valeurs de p et q. Toutefois, on pourrait alternativement proc eder par la caract eristique QR. Ce qui
nous donnerait:
u
R
0.24 =
0.2 + 0.399
2
(0.310) +
0 0.246
2
(0.044 0),
u
R
= 0.2076 0.2095
Impl ementation num erique
clear all; syms a b c e u x;
a=input(donner la valeur de a: );
b=input(donner la valeur de b: );
u=input(donner la valeur de u:);
c=input(donner la valeur de c: );
e=input(donner la valeur de e: );
dx=input(entrer le pas de la discretisation: );
n=1/dx; N=n; delta=b*b-4*a*c; m=(b+sqrt(delta))/(2*a);
d=zeros(N+1,n+1); t=zeros(N+1,n+1); q=zeros(N+1,n+1);
p=zeros(N+1,n+1); f=diff(u); i=1; y=0:dx:1; for j=1:n+1
d(i,j)=y(i,j);
u(i,j)=d(i,j)*(1-d(i,j));
m(i,j)=sqrt(u(i,j));
p(i,j)=subs(f,x,d(i,j));
q(i,j)=0;
h(i,j)=subs(e,x,d(i,j));
r(i,j)=subs(c,x,d(i,j));
D epartement de Math ematiques
FST-Mohammedia, (2008)
34
A. Taik TP AN3 LST-MI
end
j=1;
for i=2:N+1
u(i,j)=0;
u(i,n+1)=0;
if(mod(i,2)==0)
for j=2:n+1
A=[1 -m(i-1,j-1) ; 1 m(i-1,j)];
B=[t(i-1,j-1)-m(i-1,j-1)*d(i-1,j-1)...
+ t(i-1,j)+m(i-1,j)*d(i-1,j)];
K=A\B;
t(i,j)=K(1);
d(i,j)=K(2);
u(i,j)=d(i,j)*(1-d(i,j));
m(i,j)=sqrt(u(i,j));
h(i,j)=subs(e,d(i,j));
r(i,j)=subs(c,x,d(i,j));
S1=(h(i,j)+h(i-1,j-1))/(2);
S2=(h(i,j)+h(i-1,j))/(2);
A=[a*m(i-1,j-1) r(i-1,j-1)-a*m(i-1,j) r(i-1,j)];
B=[a*m(i-1,j-1)*p(i-1,j-1)+r(i-1,j-1)*q(i-1,j-1)...
-S1*(t(i,j)-t(i-1,j-1))-a*m(i-1,j)*p(i-1,j)...
+r(i-1,j)*q(i-1,j)-S2*(t(i,j)-t(i-1,j))];
K=A\B;
p(i,j)=K(1);
q(i,j)=K(2);
u(i,j)=((p(i,j)+p(i-1,j-1))/2)*(d(i,j)-d(i-1,j-1)) ...
+((q(i,j)-q(i-1,j-1))/2)*(t(i,j)-t(i-1,j-1))+u(i-1,j-1);
end
for j=1:n+1
if(j==1)
d(i+1,j)=0;
t(i+1,j)=t(i,j+1)-m(i,j+1)*(d(i+1,j)-d(i,j+1));
m(i+1,j)=0;
r(i+1,j)=subs(c,x,d(i+1,j));
h(i+1,j)=subs(e,x,d(i+1,j));
S2=((h(i+1,j)+h(i,j+1))/2);
A=[-a*m(i,j+1)];
B=[-a*m(i,j+1)*p(i,j+1)+r(i,j+1)*q(i,j+1)...
-S2*(t(i+1,j)-t(i,j+1))];
K=A\B;
p(i,j)=K(1);
D epartement de Math ematiques
FST-Mohammedia, (2008)
35
A. Taik TP AN3 LST-MI
else
if(j==n+1)
d(i+1,j)=1;
t(i+1,j)=t(i,j)+m(i,j)*(d(i+1,j)-d(i,j));
m(i+1,j)=0;
r(i+1,j)=subs(c,x,d(i+1,j));
h(i+1,j)=subs(e,x,d(i+1,j));
S1=((h(i+1,j)+h(i,j))/2);
A=[a*m(i,j)];
B=[a*m(i,j)*p(i,j)+r(i,j)*q(i,j)...
-S1*(t(i+1,j)-t(i,j))];
K=A\B;
p(i,j)=K(1);
end
end
end
else
if(mod(i,2)=0)
for j=2:n
A=[1 -m(i-1,j) ; 1 m(i-1,j+1)];
B=[t(i-1,j)-m(i-1,j)*(d(i-1,j))...
+ t(i-1,j+1)+m(i-1,j+1)*(d(i-1,j+1))];
K=A\B;
t(i,j)=K(1);
d(i,j)=K(2);
u(i,j)=d(i,j)*(1-d(i,j));
m(i,j)=sqrt(u(i,j));
h(i,j)=subs(e,x,d(i,j));
r(i,j)=subs(c,x,d(i,j));
S1=(h(i,j)+h(i-1,j))/2;
s2=(h(i,j)+h(i-1,j+1))/2;
A=[a*m(i-1,j) r(i-1,j) -a*m(i-1,j+1) r(i-1,j+1)];
B=[a*m(i-1,j)*p(i-1,j)+r(i-1,j)*q(i-1,j)...
-S1*(t(i,j)-t(i-1,j))-a*m(i-1,j+1)*p(i-1,j+1)...
+r(i-1,j+1)*q(i-1,j+1)-S2*(t(i,j)-t(i-1,j+1))];
K=A\B;
p(i,j)=K(1);
q(i,j)=K(2);
u(i,j)=((p(i,j)+p(i-1,j))/2)*(d(i,j)-d(i-1,j))...
+((q(i,j)+q(i-1,j))/2)*(t(i,j)-t(i-1,j))+u(i-1,j);
end
end
D epartement de Math ematiques
FST-Mohammedia, (2008)
36
A. Taik TP AN3 LST-MI
end
end
Execution du code:
0.0 0.1600 0.2400 0.2400 0.1600 0.0
0.0 0.1600 0.2096 0.2435 0.2049 0.1600
0.0 0.2096 0.2228 0.2166 0.2049 0.0
0.0 0.0415 0.02346 0.2233 0.2166 0.1831
0.0 0.0636 0.2143 0.2233 0.1897 0.0
0.0 0.149 0.0594 0.2143 0.2289 0.1880
Table 4.4: valeurs de u
Constat:
On constate que m est une fonction qui d epend de la solution u. Nous avons pris un pas de
discr etisation egal ` a 0.2.
1.4. Exercice 4
Soit ` a r esoudre le syst` eme d equation :
_

2
u
t
2
= c
2
2
u
x
2
, x [0, 2] ,
u(0, t) = u(2, t) = 0,
u
t
(x, 0) = x(1 x), 0 < x < 2,
u(x, 0) = 2x 0 < x < 1,
u(x, 0) = 2(2 x) 1 < x < 2,
La solution exacte est donn ee par :
u(x, t) =
16

n=1
(1)
n1
sin((2n 1)
x
2
)cos((2n 1)
ct
2
)
(2n 1)
2
.
Impl ementation num erique
Code:
D epartement de Math ematiques
FST-Mohammedia, (2008)
37
A. Taik TP AN3 LST-MI
clear all; clc;
syms a b c e x k; cla=0;clb=2;
k=input(donner lavaleur de k: );
a=input(donner la valeur de a: );
b=input(donner la valeur de b: );
c=input(donner la valeur de c: );
e=input(donner la valeur de e: );
dx=input(entrer le pas de discretisation: );
n=(clb-cla)/dx N=n; delta=b*b-4*a*c; m=(b-sqrt(delta))/(2*a);
d=zeros(N+1,n+1); t=zeros(N+1,n+1); p=zeros(N+1,n+1);
q=zeros(N+1,n+1); y=0:dx:2; u=2*x; f=diff(u); u=2*(2-x);
g=diff(u); i=1; for j=1:n+1
d(i,j)=y(i,j);
if(1<=d(i,j))
p(i,j)=subs(g,x,d(i,j));
u(i,j)=2*(2-d(i,j));
q(i,j)=0;
else
if(d(i,j)<1)
p(i,j)=subs(f,x,d(i,j));
u(i,j)=2*d(i,j);
q(i,j)=0;
end
end
end j=1;
for i=2:N+1
u(i,j)=0;
q(i,j)=0;
u(i,n+1)=0;
q(i,n+1)=0;
end
for i=2:N+1
for j=2:n
d(i,j)=(d(i-1,j-1)+d(i-1,j+1))/(2);
t(i,j)=t(i-1,j-1)+m*(d(i,j)-d(i-1,j-1));
A=[a*m c ; -a*m c];
B=[a*m*p(i-1,j-1)+c*q(i-1,j-1)-e*(t(i,j)-t(i-1,j-1)) ;
-a*m*p(i-1,j+1)+c*q(i-1,j+1)-e*(t(i,j)-t(i-1,j+1))];
V=A\B;
p(i,j)=V(1);
q(i,j)=V(2);
u(i,j)=(((p(i,j)+p(i-1,j-1))*(d(i,j)-d(i-1,j-1)))/2)...
D epartement de Math ematiques
FST-Mohammedia, (2008)
38
A. Taik TP AN3 LST-MI
+(((q(i,j)+q(i-1,j-1))*(t(i,j)-t(i-1,j-1)))/2)+u(i-1,j-1);
end
for j=1:n+1
if(j==1)
d(i,j)=0;
t(i,j)=t(i-1,j+1)-m*(d(i,j)-d(i-1,j+1));
A=[-a*m];
B=[-a*m*p(i-1,j+1)+c*q(i-1,j+1)-e*(t(i,j)-t(i-1,j+1))];
p(i,j)=A\B;
else
if(j==n+1)
d(i,j)=2;
t(i,j)=t(i-1,j-1)+m*(d(i,j)-d(i-1,j-1));
A=[a*m];
B=[a*m*p(i-1,j-1)+c*q(i-1,j-1)-e*(t(i,j)-t(i-1,j-1))];
p(i,j)=A\B;
end
end
end
end
mesh(t,d,double(u))
Execution du code:
0.0 0.5000 1.0000 1.5000 2.0000 1.5000 1.0000 0.5000 0.0
0.0 0.5000 1.0000 1.0000 1.5000 1.5000 1.0000 0.5000 0.0
0.0 0.5000 0.5000 1.0000 0.5000 1.0000 1.0000 0.5000 0.0
0.0 0.0 0.5000 0.0 0.5000 0.0 0.5000 0.5000 0.0
0.0 0.0 -0.5000 0 -0.5000 0.0 -0.5000 0.0 0.0
0.0 -0.5000 -0.5000 -1.0000 -0.500 -1.0000 -0.5000 -1.0000 0.0
0.0 -0.5000 -1.0000 -1.0000 -1.5000 -1.0000 -1.5000 -0.5000 0.0
0.0 -0.5000 -1.0000 -1.5000 -1.5000 -2.0000 -1.0000 -1.5000 0.0
0.0 -0.5000 -1.0000 -1.5000 -2.0000 -1.5000 -2.0000 -0.5000 0.0
Table 4.5: valeurs de u
D epartement de Math ematiques
FST-Mohammedia, (2008)
39

Vous aimerez peut-être aussi