Escolar Documentos
Profissional Documentos
Cultura Documentos
Taik
Preface. Ce cours est une enquete de pratique des techniques de resolution numerique des differentes
classes dequations aux derivees partielles (elliptiques, paraboliques et hyperboliques). Laccent
sera mis sur la programmation de schemas numeriques a` des probl`emes pratiques dans lingenierie
et les sciences physiques. La resolution comprendra la methode des differences finies et la methode
des caracteristique pour les EDP hyperboliques. Pratiquement, elles seront pleinement utilisees
en MATLAB et ses fonctionnalites de programmation.
Departement de Mathematiques
FST-Mohammedia, (2008)
Contents
1.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction
2.
Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
9
10
12
12
13
17
17
17
19
20
21
21
21
21
22
22
23
23
24
27
27
27
28
31
31
A. Taik
5.2.
Comparaison de uexact (x, 0.99) et uapp (x, 0.99), uexact (x, 1.98) et uapp (x, 1.98) 32
6.
Etudes theoriques de la methode explicite . . . . . . . . . . . . . . . . . . . . . . 32
6.1.
Convergence numerique . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.2.
Stabilite numerique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3
Departement de Mathematiques
FST-Mohammedia, (2008)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
37
38
39
39
39
42
42
46
50
55
57
58
List of Figures
1.1
1.2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3.1
3.2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
26
26
30
30
31
31
32
32
A. Taik
1. Introduction
Les e quations aux derivees partielles (EDP) sont omnipresentes dans toutes les sciences, puisquelles
apparaissent aussi bien en dynamique des structures, mecanique des fluides que dans les theories de
la gravitation ou de lelectromagnetisme (Exemple: les e quations de Maxwell). Elles sont primordiales dans des domaines tels que la simulation aeronautique, la synth`ese dimages, la prevision
meteorologique, la demographie, ou les finances. Enfin, les e quations les plus importantes de la
relativite generale et de la mecanique quantique sont e galement des EDP. Ce sont des e quations
indispensables pour la resolution de presque la totalite des probl`emes dans ces domaines.
Nous pouvons citer par exemple:
1. lequation de Schrdinger indispensable a` la mecanique quantique:
~2 2 u
+~ u
U (x)u
2m x2
t
=0
2. lequation dadvection qui decrit comment une quantite est transportee dans un courant (par
exemple un poluant dans de leau): u
(x, t)+c u
(x, t) = f (x, t), c e tant la vit`esse du milieu
t
x
qui est souvent une constante.
3. lequation de Black-Scholes utilisee en finances:
2 2c
c
c
+ S 2 S
u c = c(t, S) est un prix et , r des constantes.
2 + rS S rc = 0 o`
t
4. Lequation dondes decrivant les phenom`enes de propagation des ondes sonores et des ondes
e lectromagnetiques comme la lumi`ere dans des milieux comme lair ou le vide physique:
2
2
2
2
2
u c12 t2u = 0 xu2 + yu2 + zu2 = c12 t2u . Le nombre c represente la celerite pour le cas
de la lumi`ere ou la vitesse de propagation de londe u.
5. Lequation de Fourrier ou e quation de la chaleur qui decrit levolution de la temperature en
2
2
2
fonction du temps et de lespace: xu2 + yu2 + zu2 = 1 u
. Le nombre est appele diffusivite
t
thermique du milieu.
Certaines de ces EDP ont e te resolues analytiquement et leurs solutions sont connues. Toutefois, un nombre important dautres existent sans solutions analytiques. Cest dans cette optique
que les recherches se sont penchees sur les methodes numeriques pour arriver a` approximer les
solutions de ces e quations.
Notons que malgre ces efforts indeniables, il nexiste pas de methodes universelles pour la
resolution numerqiue des EDP. Lalgorithme de resolution depend tr`es e troitement du type de
probl`eme pose. Cest pour cela que nous allons restreindre notre champs detude. On exigera
que lequation satisfasse quelques propri`etes comme la linearite pour que la resolution soit possible.
2. Definition
En mathematiques, plus precisement en calcul differentiel, une e quation aux derivees partielles
ou e quation differentielle partielle (EDP) est une e quation dont les solutions sont les fonctions
inconnues verifiant certaines conditions concernant leurs derivees partielles. Cest une e quation
Departement de Mathematiques
FST-Mohammedia, (2008)
A. Taik
mathematique contenant en plus de la variable dependante (u dans les cas suivants) des variables
independantes (x, y, ...) Rn et une ou plusieurs derivees partielles quon peut e crire sous la
forme:
u u 2 u 2 u
F (x, y, ..., u, , , 2 , 2 , ...) = 0,
x y x y
Exemple
2
2u
y 2
les conditions e tant moins strictes que dans le cas dune e quation differentielle ordinaire; les
probl`emes incluent souvent des conditions aux limites qui restreignent lensemble des solutions.
Pour assurer donc lunicite de la solution, comme on le fait avec les e quations differentielles ordinaires, EDO, on tiendra compte des conditions predonnees comme les conditions aux limites et
les conditions initiales.
Ai,j (X)
X
2u
u
(X) +
Bi (X)
(X) + Cu = G(X)
xi xj
x
i
i=1
avec Ai,j , Bi , C, G des fonctions independantes de u ne sannulant pas toutes simultanement dans
Rn . Si nous nous limitons dans R2 , cest a` dire X = (x, y) R2 legalite precedemment posee
prend la forme de:
A
2u
2u
2u
u
u
+
B
+
C
+D
+E
+ F u = G(x, y)
2
2
x
xy
y
x
y
(2.1)
A. Taik
Remarque:
Notons que les methodes numeriques passent toujours par des discretisations des probl`emes analytiques en des probl`emes numeriques et quil existe une infinite des methodes de discretisation
dune e quation. Nous ne pouvons jamais les e numerer toutes mais les plus couramment utilisees
pour la resolution des e quations aux derivees partielles sont:
1. La methode des differences finies,
2. La methode des e lements finis,
3. la methode des volumes finis,
4. la methode des caracteristiques.
Mais sachez que nous nutiliserons ici que la methode des differences finies.
La methode consiste a` remplacer les derivees partielles par des differences divisees ou combinaisons de valeurs ponctuelles de la fonction en un nombre fini de points discrets ou noeuds
du maillage. Lavantage de cette methode est quil y a une grande simplicite decriture et un
faible cot de calcul. Elle est couramment pratique et facile dacc`es. Elle repose sur deux notions : la discretisation des operateurs de derivation ou differentiation et la convergence du schema
numerique ainsi obtenu. Son inconvenient est quon se limite a` des geometries simples, et quil y
a des difficultes de prise en compte des conditions aux limites de type Neumann.
Maillage:
Puisquon a e voque le mot maillage dans le paragraphe precedent et quon en aura tout le temps
besoin, definissons-le ici.
On appelle maillage un ensemble de points du domaine de definition sur lequel on va appliquer
la methode des differences finies. Pour une application definie sur un segment de R, on ajoutera
en general les deux extremites du segment; pour un maillage en dimension superieure, on sera
amene a` choisir, e ventuellement, des points du contours du domaine de definition. On appelle
le pas du maillage la distance entre deux points successifs du maillage voisins. En dimension 1,
cela se simplifie en difference des abscisses. Ce pas nest pas necessairement constant, il peut
meme e tre judicieux de ne pas le fixer comme tel. Le pas (global) de lapproximation peut e tre
defini comme le plus grand pas du maillage. Ainsi, si ce pas global tend vers 0, cela veut dire
Departement de Mathematiques
FST-Mohammedia, (2008)
A. Taik
que la repartition des points du maillage dans lintervalle choisi tend a` se faire sur tout le domaine
detude par densite.
Exemple: Pour un intervalle de validite [0, 2], avec n le nombre des pas, on aura n + 1 points qui
sont donnes par la relation xi = i h avec h = n2 constant, 0 i n.
Notation indicielle:
Durant ces projets nous utiliserons souvent la notation indicielle. Cest pourquoi nous voulons
en rappeler le principe. si x est un des vecteurs de base du rep`ere (quadrillage) discretise, nous
noterons le point x(i), qui est la ieme abscisse par xi et de meme la j eme ordonnee y(j) sera note
yj et si u est maintenant la fonction, ici la solution de lequation aux derivees partielles dependant
seulement des variables de lespace, on remplacera u(xi , yj ) par ui,j . Si, en plus des variables de
lespace, il existe une variable temprelle t(k) = tk , alors la fonction u(xi , yj , tk ) sera notee uki,j .
En resume, les indices des variables spatiales resteront en indices et celui du temps sera en exposant. Cest ce quon appelera la notation indicielle.
Departement de Mathematiques
FST-Mohammedia, (2008)
Chapitre 1
Resolution dune EDP elliptique
1. Discretisation de lEDP:
Soit :
2
2u
+
= 0, (x, y) [a, b] [c, d]
x2 x2
On prendra hx et hy les pas de discretisation des intervalles [a, b] et [c, d]
1. Discretisation de lintervalle [a, b]
hx = ba
(nx e tant le nombre dintervalles dans [a, b])
nx
x(i) = xi = a + i hx , i = 0, 1, , nx
2. Discretisation de lintervalle [c, d]
hy = dc
(ny e tant le nombre dintervalles dans [c, d])
ny
y(j) = yj = c + j hy , j = 0, 1, , ny
Remark 1. : Constatons que xi+1 = a + ( + 1)hx = (a + hx ) + hx = xi + hx . Dans la suite,
nous remplacerons chaque fois xi + hx , xi hx , yj + hy , yj hy successivement par xi+1 , xi1 ,
yi+1 , yi1 .
hx 0
f (x + hx , y) f (x, y)
hx
A. Taik
f (x, y)
f (x + hx , y) f (x, y)
'
x
hx
f (x, y)
f (x, y) f (x hx , y)
'
x
hx
schema avant
hx
f
(x
+
h
,
y)
f
(x,
y)
x
f (x,y)f (xhx ,y)
0
fx (x, y) = lim
schema arri`ere
hx
hx 0
hx
f (x+hx ,y)f
(xhx ,y)
schema centre
2hx
La derivee seconde fx00 de f (x, y) sera alors de la forme:
2f
x2
hx
2f
f (xi+1 , yj ) 2f (xi , yj ) + f (xi1 , yj )
'
2
x
h2x
(1.1)
Nous utiliserons tour a` tour ces e galites dans la suite pour approximer les derivees partielles.
2u 2u
+
=0
u = 0
x2 y 2
Departement de Mathematiques
FST-Mohammedia, (2008)
(1.2)
10
A. Taik
Posons u(xi , yj ) = ui,j (en notation indicielle). Compte tenu de la relation 1.1 du paragraphe
prececdent,
2u
ui+1,j 2ui,j + ui1,j
2
x
h2x
Puisque xi et yj jouent un rle symetrique dans lequation du potentiel (de Laplace), un raisonnement analogue a` celui de lapproximation de fx00 nous donne:
2u
ui,j+1 2ui,j + ui,j1
2
y
h2y
rapportons ces aproximations dans lEDP 1.2:
u
u
+u
4u +ui1,j +ui,j1
u = 0 i+1,j i,j+1 hi,j
=0
2
i = 0, 1, , nx et j = 0, 1, , ny
Remark 2. : A chaque e tape, nous remarquons que pour calculer la valeur de ui,j au point (xi , yj )
nous avons besoin de connatre les points ui1,j , ui,j1 , ui+1,j et ui+1,j comme lindique le dessin
suivant:
6
ui,j+1
ui1,j
j
ui,j
@ui+1,j
ui,j1
@
Cest pour cela que nous appelons cette formule la formule a` 5 points qui peut e tre representee
comme suit:
1
u = 0 = 2 1 4 1 ui,j = 0
h
1
Departement de Mathematiques
FST-Mohammedia, (2008)
11
A. Taik
u1,1
4 1
0
0
A = 1 4 1 , B = 0 et U = u2,1
u3,1
100
0 1
4
Avec une des methodes vues en Analyse Numerique II (resolution des syst`emes lineaires), nous
obtenons la solution:
1.786
U = 7.143
26.786
Departement de Mathematiques
FST-Mohammedia, (2008)
12
A. Taik
Les conditions aux limites nous ont ramene a` avoir la grille suivante dans laquelle nous allons
chercher les inconnus de lequation:
~y
6
u3,1
u3,2
u2,3
u3,4
u3,5
u3,6
u3,7
100
u2,1
u2,2
u2,3
u2,4
u2,5
u2,6
u2,7
100
u1,1
u1,2
u1,3
u1,4
u1,5
u1,6
u1,7
100
~x
Avec un petit programme sur Matlab, nous transformons la matrcie U en un vecteur ~v pour
pouvoir bien resoudre le syst`eme sans erreur puisque la resolution du syst`eme AU = B e xige que
U soit un vecteur. Voici le programme qui a assure la transformation:
********************************************
for j=1:ny-1
for i=1:nx-1
v(k)=u(i,j);
k=k+1;
end
end
**********************************************
Departement de Mathematiques
FST-Mohammedia, (2008)
13
A. Taik
4v1 + v2 + + v8 + = 0
v1 4v2 + v3 + + v9 + = 0
..
.
+ v6 4v7 + = 100
1 + 4v8 + v9 + = 0
..
.
Il nous reste maintenant a` resoudre le syst`eme matriciel suivant: A ~v = B, avec
..
4 1
1
.
.
1 4 1
1
..
0
1 4 1
1
100
...
...
...
.
et B = .
1 4 0
1
A=
..
.
1
0 4 1
1
.
.
.
.
.
100
0
..
..
1 .. .. ..
.
.
.
..
.
..
0
1
1 4
100
Lutilisation de la methode de Jacobi ou Gauss-Seidel pourrait nous donner les solutions du
syst`eme. Toutefois, nous allons adapter la resolution directe comme le titre lindique pour resoudre
ce syst`eme. voici le programme complet, explique, saisi en Matlab qui nous a permis davoir la
matrice U a` partir des calculs des e lements du vecteur ~v .
*************************************************
clc;clear
h=2.5;
a=0;
b=20;
c=0; d=10;
nx=(b-a)/h;
ny=(d-c)/h;
n=(nx-1)*(ny-1);
%%% (remplissage des e lements 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;
Departement de Mathematiques
FST-Mohammedia, (2008)
14
A. Taik
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 e lements de la matrice B)
for i=1:n
B(i)=0;
if (mod(i,nx-1)==0)
B(i)=-100;
end
end
%%% (resolution du syst`eme Av=B et transformation du vecteur ~v en la matrice U ).
V = A\B 0 ;
k=1;
for j=1:ny-1
for i=1:nx-1
u(j,i)=V(k);
k=k+1;
end
end
%%% (decallage des e lements pour inserer 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;
%%% les vecteurs x et y
Departement de Mathematiques
FST-Mohammedia, (2008)
15
A. Taik
x=0:h:b; y=0:h:d;
%%% (affichage la courbe en tenant compte des vecteurs x ,y et de la matrice U)
mesh(x,y,u)
**********************************************
Remark 3. : Pour e valuer le syst`eme avec les autres valeurs de h, il suffit de remplacer 2.5 par
les autres valeurs et compiler le programme, cela donnera la courbe correspondante pour chaque
valeur de h.
Voici en resume, les courbes quon obtient en variant h:
Malgre que cette methode ait pu nous donner une solution approchee a` lEDP u = 0, celle-ci
2
2
est obtenue par une approximation des xu2 et yu2 par lutilisation de la formule de Taylor tronquee
a` lordre 2. Nous avons donc commis une erreur de lordre de h2 .
Non seulement cette erreur commise est considerable mais le calcul des e lements du vecteur ~v
est de plus en plus couteux en memoire. Par exemple pour hx = hy = h = 1.25, la matrice
A M(105). La resolution de ce syst`eme matriciel avec A une matrice carree (105, 105) necessite
une memoire de 14000 bytes (octets) dans la machine. Or, pour affiner beaucoup plus la solution
numerique vers la solution analytique, nous devons faire tendre h vers zero pour quil soit tr`es
proche de la limite approximee par la methode de Taylor. Ce qui augmentera encore la necessite
Departement de Mathematiques
FST-Mohammedia, (2008)
16
A. Taik
de memoire et qui risquera de planter la machine sinon nous devons avoir des machines a` memoires
gigantesques (qui ne sont pas a` la portee de tout le monde!).
n
X
| Ai,j |, 1 i n
j=1,j6=i
3.1. Methode:
Le schema numerique obtenu dans la partie 1 de ce projet nous donne:
ui1,j + ui,j1 4ui,j + ui+1,j + ui,j+1 = 0
ui,j =
k+1
k
k
uk+1
i1,j + ui,j1 + ui+1,j + ui,j+1
=
(3.1)
4
Cette methode est appelee methode iterative de Liebmann. Une condition initiale est e xigee,
comme pour toute autre methode iterative, pour pouvoir commencer le processus.
Pour cette methode, on a besoin de seulement 6000 bytes (octets) pour resoudre le syst`eme au lieu
de 14000 bytes pour la methode directe, pour h = 1.25.
On peut aussi e crire:
"
#
k+1
k+1
k
k
u
+
u
+
u
+
u
i+1,j
i,j+1
i1,j
i,j1
k
uk+1
i,j = ui,j +
4
uk+1
i,j
le terme entre crochets est appele residus conu comme un ajustement de la valeur precedente uki,j
pour avoir la valeur uk+1
i,j
Departement de Mathematiques
FST-Mohammedia, (2008)
17
A. Taik
w est appele un optimum, et il est obtenu, dans les conditions de Dirichlet, par une estimation plus
raisonnable comme e tant la plus petite valeur des solutions de lequation
(cos
+ cos )2 w2 16w + 16 = 0
nx
ny
2+
4 (cos nx + cos ny )2
Nous reprenons ici le meme exercice e nonce au debut du projet et le resoudre en utilisant cette
nouvelle relation. voici, en Matlab, le programme a` compiler avec h = 0.625. Pour avoir les autres
courbes, il suffit de changer la valeur de h par les autres valeurs.
************************************************
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);
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 representatives pour chaque valeur de h.
Departement de Mathematiques
FST-Mohammedia, (2008)
18
A. Taik
Conclusion
Nous remarquons que les deux methodes convergent et tendent a` former une vraie courbe spatiale
quand h tend vers zero. Ce qui est en commun accord avec les approximations car si h <<< 1,
les approximations de Taylor sont presque e gales aux derivees partielles respectives. Il faut donc
tenir compte de la valeur de h et ne lui attribuer une valeur a` son gre. Il est aussi a` noter quavec
la methode de relaxation le probl`eme de memoire qui a e te un fleau dans la methode explicite est
resolu puisquon est passe dun besoin en memoire de 14000 bytes pour la methode directe a` 6000
bytes pour la methode de Liebmann avec h = 1.25. Cette meme methode de relaxation de Liebmann converge vite que la methode directe, ceci se voit par comparaison simple des figures.
Le choix de la methode compte aussi plus pour mieux mener la resolution numerique dune
e quation aux derivees partielles.
Departement de Mathematiques
FST-Mohammedia, (2008)
19
Chapitre 2
Resolution dune EDP parabolique
Enonce:
u
t
u
t
2u
2
c x
100x si x [0, 1]
100(2 x) si x [1, 2]
u(0, t) = u(2, t) = 0
u(x, 0) =
Prendre = 0.13, c = 0.11, = 7.8g/cm3 , x = 0.25. t sera donne par les conditions de
t
stabilite definies par linequation: r = c
< 12 . La solution analytique est donnee par:
x2
uexact (x, t) = 800
X
n=0
1
(2n + 1)(x 1)
2
cos
e0.3738(2n+1) t
2
+ 1)
2
2 (2n
1
2
puis r <
1
.
2
Que
20
A. Taik
xi = xi1 + x
xi1 = xi2 + x
..
x2 = x1 + x
x = x + x
1
0
En sommant membres a` membres les e quations ainsi obtenues et apr`es simplifications, nous trouvons:
xi = x0 + (i 1 + 1)x = x0 + ix or x0 nest autre que le point a de lintervalle [a, b], donc,
finalement:
xi = a + ix, 1 i nx
avec nx =
ba
x
2
x
X
n=0
1
(2n + 1)(x 1)
2
cos
e0.3738(2n+1) t
2 (2n + 1)2
2
Puisque nous sommes en analyse numerique 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 e valuer la valeur numerique de uexact pour tout point appartenant dans la
grille, nous devons faire une boucle qui, pour chaque point (xi , tj ), calcule uexact (xi , tj ).
Posons = 100 acceptable en analyse numerique, nous avons donc le programme suivant qui calcule les e lements de la matrice v representant e xactement les valeurs de u(xi , tj ) dans le cadrillage.
Departement de Mathematiques
FST-Mohammedia, (2008)
21
A. Taik
***********************************
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) + 800 1/(pi2 (2 n + 1)2 ) cos(pi (2 n + 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 obtenue pour r = 41 :
Departement de Mathematiques
FST-Mohammedia, (2008)
22
A. Taik
Dapr`es les approximations vues dans le projet 1, pargraphe 1.1.1, nous pouvons approximer xu2
par:
uji+1 2uji + uji+1
2u
(xi , tj )
(3.1)
x2
(x)2
Puisque u
est une derivee simple cest a` dire une derivee premi`ere, nous utilisons ici lune des
t
trois formules vues en projet 1, paragraphe 1.1.1. Prenons la formule avale (droite):
u
uj+1 uji
(xi , tj ) i
t
t
Nous avons remplace hx par x et ht par t.
(3.2)
t
uj+1
uji = (x)
2 c (ui+1 2ui + ui1 )
i
t
equation devient:
Posons r = (x)
2 c , l
uj+1
uji
i
t
uj+1
= ruji+1 + (1 2r)uji + ruji1
i
Ceci est lequation discretisee de lequation de la chaleur avec la methode des differences finies.
On lappelle e quation de la methode directe.
Departement de Mathematiques
FST-Mohammedia, (2008)
23
A. Taik
Remark 4. :
1. r regroupe les constantes physiques du probl`eme et celles de la discretisation de lespace
[a, b] et du temps [0, Tmax ]. Donc les pas de discretisations influencent lequation discretisee.
2. Pour j = 0, t = 0 et u1i = ru0i+1 +(12r)u0i +ru0i1 lequation necessite la connaissance
de la condition initiale pour demarrer le processus.Cette condition nest autre que f (x, 0) =
f (xi ) donnee par lenonce du probl`eme.
uj+1
= ruj3 + (1 2r)uj2 + ruj1
2
j+1
.
U
= M Uj + N
..
0 j nt 1
..
j+1
unx 1 = rujnx + (1 2r)ujnx 1 + rujnx 2
Avec: u0j la condition aux limites en a, on la notera dans la programmation uj0 = cla et ujnx la
condition aux limites en b qui sera notee ujnx = clb. Nous avons donc:
M =
1 2r
1 2r
0
..
.
..
.
0
r
...
1 2r
...
..
.
..
.
r
...
..
r
0
.
...
0
..
.
..
.
0
1 2r
r
r
1 2r
rU0j
0
..
.
.
et N =
..
.
..
0
rUnj x
La matrice M est une matrice tridiagonale ou trigonale et la resolution est dautant plus simple
a` programmer avec une des methodes iteratives ou directes vues en analyse numerique II. Mais,
encore une fois, nous allons nous suffire de la resolution directe par la division matricielle. Cest
a` dire si on a a` resoudre le syst`eme Au = B alors on e crira en Matlab x = A \ B et nous aurons
automatiquement la reponse.
Attention: B doit e tre un vecteur colonne de meme nombre delements que le nombre des lignes
de A et le vecteur ~u sera donne en un vecteur colonne. Il ne nous est pas nouveau de donner la
transposee dune matrice pour avoir tout ce que nous voulons.
Departement de Mathematiques
FST-Mohammedia, (2008)
24
A. Taik
Nous avons pris r = 14 pour le cas o`u r < 12 et r = 0.625 pour le cas o`u r > 21 , on a le programme
suivant qui nous calcule les valeurs du vecteur ~u, remplace par le vecteur ~h dans le programme
pour pouvoir lier le programme avec le premier calculant les e lements de la matrice v pour la solution e xacte, 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
suffit 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
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;
Departement de Mathematiques
FST-Mohammedia, (2008)
25
A. Taik
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 remarque, dapr`es les deux graphes corresondantes a` r < 12 et r > 12 , que la methode
presente deux regions de stabilite. Si r < 12 la methode est stable et converge vers la solution
Departement de Mathematiques
FST-Mohammedia, (2008)
26
A. Taik
analytique. Nous avons une courbe semblable a` celle de la solution analytiquement e tablie. Plus
j saccroit, plus les valeurs du vecteur ~u deviennent nulles. Ce qui est en entier accord avec la
solution e xacte qui est une serie des fonctions convergente, alors son terme general doit tendre
forcement vers 0.
Mais si r > 12 , la methode presente des failles et la courbe ne converge meme pas. Lallure obtenue
dans ce cas est totalement en desaccord avec celle de la solution e xacte.
Pour avoir un bon resultat dans cette methode, il faut donc tenir compte de la valeur de r car elle
influencera le resultat.
4.1. Methode:
Pour assurer une resolution numerique stable et ce dans toute la region de letude, Crank et Nicolson ont propose de prendre la moyenne des derivees partielles spatiales de u entre les instants tj et
tj+1 au lieu de considerer seulement la derivee spatiale a` linstant tj , cest a` dire:
u
2u
2u
(xi , tj ) =
(xi , tj ) + 2 (xi , tj+1 )
t
2 x2
x
1
2
j+1
uj+1
+uj+1
i+1 2ui
i1
2
(x)
uj+1
uji
i
t
j
j
j+1
j+1
t
2 uj+1
uji = (x)
+ uj+1
2 c ui+1 2ui + ui1 + ui+1 2ui
i
i+11 .
t
equation:
Posons r = (x)
2 c , on trouve l
j+1
j
j
j
ruj+1
ruj+1
i1 + (2 + 2r)ui
i+1 = rui1 + (2 2r)ui + rui+1
Departement de Mathematiques
FST-Mohammedia, (2008)
27
A. Taik
ruj+1
+ (2 + 2r)uj+1
ruj+1
= ruj0 + (2 2r)uj1 + ruj2
0
1
2
ruj+1
+ (2 + 2r)uj+1
ruj+1
= ruj1 + (2 2r)u2i + ruj3
1
2
3
ruj+1
+ (2 + 2r)uj+1
ruj+1
= ruj2 + (2 2r)uj3 + ruj4
3
4
2
..
..
j+1
j
j+1
j
j
ruj+1
nx 2 + (2 + 2r)unx 1 runx = runx 1 + (2 2r)unx + runx
= M1 U j+1 + N1 = M2 U j + N2
Avec:
2 + 2r
r
0
..
r
.
2 + 2r
r
r
2 + 2r
r
0
M1 = .
.
.
..
..
..
..
.
..
.
..
.
r
0
M2 =
2 2r
2 2r
0
..
.
..
.
0
r
..
2 2r
..
.
...
...
r
..
r
0
rU0j+1
0
..
.
...
..
, N1 =
..
0
.
..
2 + 2r
r
0
r
2 + 2r
rUnj+1
x
0
..
.
..
.
j
rU
0
0
0
..
.
..
.
..
...
.
.
, N2 =
..
..
.
...
2 2r
r
0
r
2 2r
rUnj x
28
A. Taik
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
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));
Departement de Mathematiques
FST-Mohammedia, (2008)
29
A. Taik
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 representatives de w dans les deux situations:
Constatations
Nous remarquons ici que la methode de Crank - Nicolson est inconditionnellement stable ( cest a`
dire quel que soit r R). Toutefois, quand r > 21 la methode converge plus vite vers 0 que si cest
le cas contraire. Il faut aussi savoir quon paie cette stabilite par la resolution, a` chaque instant tj ,
dun syst`eme lineaire qui necessite une inversion de la matrice M1 tridiagonale, soit:
M1 U j+1 + N1 = M2 U j + N2
= U j+1 = M11 [M2 U j + (N2 N1 )]
Departement de Mathematiques
FST-Mohammedia, (2008)
30
A. Taik
5.1. Comparaison de uexact (0.25, t) et uapp (0.25, t), uexact (0.75, t) et uapp (0.75, t)
Nous combinons le programme de la solution analytique avec celui de la solution numerique directe pour pouvoir faire la comparaison, puis on ajoute a` la fin du nouveau programme, la partie
suivante:
Remarquons que xi = 0.25 si i = 2 et xi = 0.75 pour i = 4.
**************************
Sa1=v(2,:);
Sn1=w(2,:);
plot(t,Sa1,r,t,Sn1,g);
Sa2=v(4,:);
Sn2=w(4,:)
figure(2)
plot(t,Sa2,r,t,Sn2,g);
**************************
Voici donc les courbes comparatives de ces deux methodes aux points 0.25 et 0.75:
Departement de Mathematiques
FST-Mohammedia, (2008)
31
A. Taik
5.2. Comparaison de uexact (x, 0.99) et uapp (x, 0.99), uexact (x, 1.98) et uapp (x, 1.98)
Remarquons quavec r = 14 , on na pas un point j tel que tj = 0.99 ni tj = 1.98 mais on voit que
pour j = 10, tj = 0.9281 0.99 et pour j = 20, tj = 1.9594 1.98. On refait ensuite la meme
chose mais on ajoute a` present la partie suivate a` la fin de la combinaison:
%%********************************
Sa1=v(:,10);
Sn1=w(:,10);
plot(t,Sa1,r,t,Sn1,g);
Sa2=v(:,20);
Sn2=w(:,20)
figure(2) plot(t,Sa2,r,t,Sn2,g);
*******************************
Voici donc les courbes comparatives des solutions pour les deux methodes a` tj = 0.9281 et tj =
1.9594:
Departement de Mathematiques
FST-Mohammedia, (2008)
32
A. Taik
k
c
j+1
t
(x)
= r(uji+1 + uji1 ) +
2 , ui
(1 2r)uji .
eji = Uij uji uji = Uij eji que lon remplace dans le schema numerique precedente:
j
j
Uij+1 ej+1
= r(Ui+1
eji+1 + Ui1
eji1 ) + (1 2r)(Uij eji )
i
j
j
ej+1
= r(eji+1 + eji1 ) + (1 2r)eji + Uij+1 r(Ui+1
+ Ui1
) (1 2r)Uij .
i
j+1
j
U
Ui = Ui + t t (xi , ), tj 2 tj+1
2
j
Ui+1
= Uij + x U
(xi , tj ) + (x)
xU2 (1 , tj ), xi 1 xi+1
x
2
U j = U j x U (x , t ) + (x)2 2 U ( , t ), x x
i j
2 j
i1
2
i
i1
i
x
2
x2
que lon remplace dans lequation precedemment trouvee pour avoir:
U
U
ej+1
= r(eji+1 + eji1 ) + (1 2r)eji + Uij + t
(xi , ) r(Uij + x
(xi , tj )
i
t
x
(x)2 2 U
U
(x)2 2 U
j
(
,
t
))
r(U
(x
,
t
)
+
(2 , tj )) (1 2r)Uij .
1
j
i
j
i
2
2
2
x
x
2
x
Apr`es simplification des quantites en couleurs, lequation devient:
+
U
(x)2 2 U
(x)2 2 U
j
j
ej+1
=
r(e
+
e
)
+
(1
2r)e
+t
(x
,
)r(
(
,
t
)+
2 (2 , tj ))
i
1 j
i
i+1
i1
i
t
2
x2
2
x
Dans un maillage tr`es fin, les points de la discretisation sont tr`es proches les uns des autres. Nous
avons donc xi 1 xi+1 , xi1 2 xi ainsi que tj tj+1 . Pour ce, nous allons
k t
remplacer 1 et 2 par xi et par tj puis r par c
pour avoir lequation sous la forme:
(x)2
j
U
k t (x)2 2 U
j
j
ej+1
=
r(e
+
e
)
+
(1
2r)e
+
t
(x
,
t
)
(xi , tj )
i
j
i
i+1
i1
i
t
c (x)2
2
x2
(x)2 2 U
(xi , tj )).
2
x2
Apr`es simplification de la quatite (x)2 , factorisons t:
k 2U
U
j+1
j
j
ei = r(ei+1 + ei1 ) + (1 2r)ei + t
(xi , tj )
(xi , tj ) .
t
c x2
+
Departement de Mathematiques
FST-Mohammedia, (2008)
33
A. Taik
Le deuxi`eme crochet, qui nest autre que lequation de la chaleur initialement posee dans lenonce,
est nul. Ce qui nous done legalite finale:
= reji+1 + reji1 + (1 2r)eji
ej+1
i
j+1
e r ej + r ej + (1 2r) ej
i+1
i1
i
Posons
max eji
1inx 1
j+1
e rE j + rE j + (1 2r)E j ej+1 E j , 1 j nt 1
Ej =
Par recurence,
ej+1 E j E 1 E 0
U 1 = AU 0
2
1
2 0
U = AU = A U
3
2
U = AU = A3 U 0
..
U j = AU j1 = Aj U 0
Departement de Mathematiques
FST-Mohammedia, (2008)
34
A. Taik
U = AU
2
1
2 0
U = AU = A U
3
2
0
U = AU = A3 U
..
j1
0
j
U = AU
= Aj U
0
Avec e0 = U U 0 ej = U U j = Aj U Aj U 0 = Aj (U U 0 )
ej = Aj e0
A admet N valeurs propores distinctes (Ref: cours sur les valeurs propres), donc ses vecteurs
propres associes forment une basse (Cf Alg`ebre 1):
AX1 = 1 X1
AX2 = 2 X2
AX3 = 3 X3
..
AX = X
n
n n
i est la valeur propore associee au vecteur propre Xi . Il existe alors c1 , c2 , cn tels que:
e0 = c1 X1 + c2 X2 + + cn Xn
N
N
N
N
X
X
X
X
j
j
e =A (
ci Xi ) =
A ci Xi =
ci A Xi =
ci ji Xi
j
i=1
i=1
ej =
i=1
N
X
i=1
ci ji Xi
i=1
j
X
j X
e =
ci ji Xi
|ci | ji |Xi |
i=1
i=1
1iN
Pour la matrice A de cet exemple, les valeurs propres sont donnees par (voir le cours sur les valeurs
et vecteurs propres):
i
, i = 1, , N
i = 1 4r sin2
2(N + 1)
Departement de Mathematiques
FST-Mohammedia, (2008)
35
A. Taik
Alors:
|i | < 1 |1 4r
sin2 i
k
t
| < 1, avec r =
2(N + 1)
c x
1 < 1 4r
sin2 i
<1
2(N + 1)
pour:
1
sin2 i
1
sin2 i
1 < 1 4r
r<
, i = 1, 2, , N
2(N + 1)
2
2(N + 1)
1
1
sin2 i
r < min
2 i=1, ,N 2(N + 1)
h 2 i1
2
sin2 x
Or x, sin x 1 a 1, a > 1 sina x
1, donc:
min
i=1, , N
sin2 i
2(N + 1)
1
1r<
1
2
On tire encore une fois que la methode directe (explicite) est stable si r < 21 . Ce qui est en parfait
commun accord avec lexperience realisee.
Conclusion
Il est interessant de remarquer que lequation de la chaleur, introduite initialement pour decrire la
conduction thermique, apparat e galement dans dautres branches de la physique theorique. Elle
permet par exemple de decrire :
1. Le phenom`ene de diffusion ;
2. Certains aspects probabilistes du mouvement brownien
Les methodes de resolution de cette e quation sont multiples et diversifiees. Toutefois, il faut
faire attention a` la stabilite et la convergence de la methode choisie car, simple et facile a` manipuler
quelle soit, elle pourrait causer des instabilites inattendues et si on na pas la solution analytique
pour faire la comparaison, des confusions pourraient sengendrer. Il serait sage de payer le cot
de resolution et avoir une methode stable et convergente inconditionnellement que de se contenter
dune resolution aleatoire ( valable pour quelques valeurs particuli`eres) vue quelle soit maniable
facilement.
Departement de Mathematiques
FST-Mohammedia, (2008)
36
Chapitre 3
Resolution dune EDP hyperbolique
1. Enonce:
Soit a` resoudre une e quation hyperbolique donnee par:
A
1.1.
2u
2u
2u
+
B
+
C
+E =0
t2
xt
x2
(1.1)
c
= 0.
1
t2
x2
Comme les deux derivees sont des derivees secondes, nous utilisons les approximations de Taylor
trouvees dans les e quations 1.1 pour e tablir le schema numerique de cette EDP. Nous avons donc:
uji+1 2uji + uji1
uj+1
2uji + uj1
i
i
= c1
(t)2
(x)2
(t)2 j
(t)2 j
j
(u
)ui uij1 .
+
u
)
2(1
c
1
i+1
i1
2
2
(x)
(x)
Ceci est lequation numerique de lequation dondes. Pour simplifier le schema, posons:
uj+1
= c1
i
c1
(t)2
x
= 1 t = .
2
(x)
c1
uj+1
= uji+1 + uji1 uj1
.
i
i
37
(1.2)
A. Taik
Remark 5. Avec les differences finies, lequation 1.2 est le schema numerique utilisee pour la
2
2
resolution de lequation dondes t2u = c1 xu2 .
Mais, il se pose un probl`eme de mise en oeuvre de ce schema vu que u est connu a` t = t0 = 0 qui
est la condition initiale. Or, pour calculer u a` t = t = t1 , nous devons connaitre la valeur de u
a` t = t1 = t.
Conditions mixtes:
Connatre les valeurs de u a` t = t nest plus un probl`eme quand nous avons des conditions de
Newmann, de type derivee ( une condition sur la vit`esse de propagation): u
(x, 0) = g(x), a` t = 0
t
u(xi , 0)
u(xi , t) u(xi , t)
=
= g(x)
t
2t
u1i u1
i
1
= g(xi ) u1
i = ui 2t g(xi ).
2t
Remplaons-le alors dans lequation 1.2 il vient:
1
u1i = u0i+1 + u0i1 u1i + 2t g(xi ) u1i = (u0i+1 + u0i1 ) + t g(xi ).
2
Limite de la methode de differences finies
Cest avec une condition sur la vit`esse, une approximation de quelques variables comme b = 0 et
t
e = 0, une simplification de lexpression c1 x
par 1, que nous avons pu resoudre cette e quation
hyperbolique. Toutefois et malheureusement, ce nest pas tout le temps pareil et la donnee dune
telle condition de type Newmann nest pas usuelle. On sera donc souvent bloque sur la resolution
dune e qaution hyperbolique si nous nous inspirons seulement de la methode des differences finies.
38
A. Taik
ordres avec un nombre des variables superieur a` deux, mais pour la clarte du rapport nous nous
limitons a` une e quation aux derivees partielles de deux variables.
2.2. Principe
En mathematique, la methode des caracteristique est une technique pour resoudre les equations
aux derivees partielles, plus generalement la methode des caracteristiques est valable pour toutes
les e quations les e quations aux derivees partielles hyperboliques.
La methode consiste a` reduire une e quation aux derivees partielles a` une famille dequations differntielles ordinaires, le long de laquelle la solution peut e tre integree a` partir des donnees initiales .
Elle cherche des courbes appelees les courbes caracteristiques ou tout simplement les caracteristiques
le long desquelles lequation aux derivees partielles se reduit en une e quation simple a` resoudre.
La resolution de cette simple e quation sur les caracteristiques nous permet de retrouver la solution
globale du probl`eme originale sur tout le maillage. comment pouvons-nous trouver les courbes
caracteristiques ?
2.3. Methode
En posant
la forme:
2u
x2
= uxx ,
2u
t2
= utt et
2u
xt
(2.1)
O`u a, b, c, e sont des fonctions ne dependant pas de u et non toutes nulles. Posons:
p=
u
u
= ux , et q =
= ut .
x
t
p
p
dx + dt = uxx dx + uxt dt.
x
t
q
q
et dq =
dx + dt = utx dx + utt dt.
x
t
Ce qui nous donne, apr`es addition et soustraction:
= dp =
(2.2) uxx =
(2.2)
(2.3)
dp
dt
uxt ,
dx
dx
Departement de Mathematiques
FST-Mohammedia, (2008)
39
A. Taik
dq
dx
uxt .
dt
dt
Substituons ces e galites dans lequations 2.1 il vient:
(2.3) utt =
auxt
dp
dq
dt
dx
+ buxt cuxt
+ a + c + e = 0.
dx
dt
dx
dt
dt
En multipliant cette e quation par dx
, elle devient:
dt 2
dt
dp
dt
dq
dt
uxt a( ) b( ) + c a
+c +e
= 0.
dx
dx
dx dx
dx
dx
(2.4)
Grce aux transformations precedentes, la resolution de lequation 2.1 revient a` ne resoudre 2.4.
On suppose que, dans le plan x, t, on definit les courbes de sorte que le premier crochet soit nul.
Sur ces courbes 2.1, il est e quivalent a` prendre le deuxi`eme crochet aussi e gal a` 0.
dt
Posons m = dx
, donc si am2 bm + c = 0, alors la solution de lEDP 2.1 peut-etre trouvee en
resolvant:
amdp + cdq + edt = 0.
Les courbes donnees par am2 bm + c = 0 sont appelees les caracteristiques de lequation 2.1.
On se limite dans le cas o`u b2 4ac > 0, ce qui fait donc que lequation susmentionnee admet
deux racines distinctes. Chaque point possedera deux courbes caracteristiques dont les pentes sont
les racines de lequation precedente.
Comment resoudre une EDP hyperbolique par la methode des caracteristiques ?.
Strategie generale
Nous allons maintenant donner les grandes lignes pour resoudre lEDP 2.1 par une integration
numerique le long des caracteristiques. On consid`ere deux points P et Q (voir figure1), lequation
aux derivees partielles 2.1 e tant hyperbolique, il y a deux caracteristiques en chaque point. La
courbe caracteristique a` droite de P , de pente m+ , intersecte celle de gauche de Q, de pente m
au point R.
La solution du probl`eme 2.1 peut-etre trouvee en resolvant amdp + cdq + edt = 0 le long de ces
caracteristiques.
Exemple
Soit a` resoudre lequation:
utt = c21 uxx
On a: a = c21 , b = e = 0 et c = 1 b2 4ac = 4c21 > 0.
am2 bm + c = c21 + 1 = 0 m = c11 m1 =
1
c1
et m2 = c11 .
Departement de Mathematiques
FST-Mohammedia, (2008)
40
A. Taik
On a pose m =
dt
dx
= c11 dt = c11 dx
= t =
1
x
c1
a` t = t, on a alors t 0 = t = c11 (x xi )
~t
m+
p
m
p
@mq
@
@
t=0
R
@
@
t=@
t@
m+
q
@
@
~x
La premiere e tape sera de trouver les coordonnees du point R, pour cela, nous resolvons lequation:
dt
t = ( dx
)av x = mav x sur les arcs P R et QR.
Ecrivons lequation amdp + cdq + edt = 0 sous la forme:
aav mav p + cav q + eav t = 0.
(2.5)
Commenons par le point P et puis par Q en utilisant les valeurs de m appropriees. Ceci va estimer
p et q au point R.
dx + u
dt, en utilisant la forme:
Finalement, on e valuera u en R de du = u
x
t
u = pav x + qav t.
Departement de Mathematiques
FST-Mohammedia, (2008)
(2.6)
41
A. Taik
3. Exercices dapplication
3.1. Exercice 1:
Soit a` resoudre:
2u
t2
u
t
= 2 xu2 4
= 0, 0 x 1
12x, 0 x 0.25
u(x, 0) =
4 4x, 0.25 x 1
u(0, t) = u(1, t) = 0
Prendre x = 0.25 et t = 0.1768
Corrige
On a a = 2, b = 0, c = 1 et e = 4,
Donc: b2 4ac = 0 4(2)(1) = 8 > 0, m1 =
+2 2
4
2
2
et m2 =
2
.
2
2
x
2
et t =
2
x
2
2 22 (pR2 pP ) + (qR2 qP ) + 4t = 0,
2
(pR2
2
pQ ) + (qR2 qQ ) + 4t = 0.
2(pR2 + 4) + qR2 + 4t = 0.
Apr`es resolution de ce syst`eme, on obtient: pR2 = 4 et qR2 =
Departement de Mathematiques
FST-Mohammedia, (2008)
2
2
42
A. Taik
~t
m
q
m+
p
R
5
6
@R
@
@
@
@
@
@
@
@
R
R
R
1
2
3
@
@
@
t = t @
@
@
m+
q
m@p
@
@
@
@
@
@
@
@
@
@
@
@
t = 0
@
@
R4
@
@
- ~
x
Figure 3.2:
qP + qR2
pP + pR2
) 0.25 + (
) 0.1768,
2
2
0
4 4
) 0.25 + (
=(
2
2
uR2 = 1.9375
2
2
) 0.1768 + 3.
0
0.25
0.5
0.0
3.0
2.0
0.0 0.9375 1.9375
0.0 -1.1875 -0.2500
0.0 -1.3125 -2.4375
0.75
1.0
0.9375
0.8125
-1.3125
1
0.0
0.0
0.0
0.0
Departement de Mathematiques
FST-Mohammedia, (2008)
43
A. Taik
Implementation numerique
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];
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
Departement de Mathematiques
FST-Mohammedia, (2008)
44
A. Taik
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:
x
u(t = 0)
u(t = 0.1768)
u(t = 0.3535)
u(t = 0.5303)
0
0.25
0.5
0.0
3.0
2.0
0.0 0.9375 1.9375
0.0 -1.1875 -0.2500
0.0 -1.3125 -2.3750
0.75
1.0
0.9375
0.8750
-1.3125
1
0.0
0.0
0.0
0.0
Constat
Dans ce cas les caracteristiques donnees par lequation am2 bm + c sont des droites.ici nous
avons pris un pas de discretisation egal a` 0.25.
Departement de Mathematiques
FST-Mohammedia, (2008)
45
A. Taik
3.2. Exercice 2:
Soit a` resoudre:
2u
2u
2 = (1 + 2x) x2 , x [0, 1]
u(x, 0) = 0
u
(x, 0)
t
= x(1 x)
u(0, t) = u(1, t) = 0
Corrige
Pour ce probl`eme, a = (1+2x), b = 0, c = 1, e = 0. La resolution de lequation am2 +bm+c =
0 donne:
s
1
m=
(1 + 2x)
Les courbes caracteristiques sont obtenues en resolvant les e quations differentielles:
q
dt
1
dx = 1+2x ,
dt
dx
q
=
1
.
1+2x
t = t0 + 1 + 2x 1 + 2x0 , pour m+ ,
t = t0
1 + 2x +
1 + 2x0 , pour m .
La figure suivante nous montre les differentes courbes caracteristiques que nous obtenons avec
cette e quation.
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 intersection R qui, apr`es resolution du syst`eme, donne les coordonnees R(0.4841, 0.1782).
En suite , on resout lequation 2.5 pour avoir p = u
et q = u
.
x
t
Apr`es utilisation de deux valeurs de m en chaque point, lequation 2.5 donne le syst`eme suivant:
Departement de Mathematiques
FST-Mohammedia, (2008)
46
A. Taik
Au point P : x = 0.25, t = 0, u = 0; p = ( u
) = 0;
x P
q = ( u
) = x x2 = 0.8175;
t P
m=
a = (1 + 2x) = 1.5, b = 0, c = 1, e = 0
Au point Q: x = 0.75, t = 0, u = 0; p = 0;
) = x x2 = 0.1875;
q = ( u
t P
m=
a = (1 + 2x) = 2.5, b = 0, c = 1, e = 0
Au point R: x = 0.4841, t = 0.1783;
m+ =
m =
a = (1 + 2x) = 1.9682, b = 0, c = 1, e = 0
Pour trouver sa valeur au point R, on calcule la variation de u le long de deux caracteristiques
en utilisant lequation 2.6.
P R : u = 0(0.2341) + 0.1875(0.1783) = 0.0334
Q R : u = 0 + 0.0334 = 0.0334
uR = 0.0334 + uP = 0.0334 + uQ = 0.0334
Avec u = uR uP .
La representation graphique precedente resume les autres valeurs de u dans le maillage.
Implementation numerique
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: );
Departement de Mathematiques
FST-Mohammedia, (2008)
47
A. Taik
%
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
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));
Departement de Mathematiques
FST-Mohammedia, (2008)
48
A. Taik
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);
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
Departement de Mathematiques
FST-Mohammedia, (2008)
49
A. Taik
end
end
end
Execution du code:
0.0
0.0
0.0 0.00235
0.0 0.0297
0.0 -0.0010
0.0
0.0334
-0.0205
-0.0187
0.0
0.0
0.0209 0.0
0.0017 0.0
-0.0329 0.0
Constat:
Dans ce cas les caracteristiques ne sont pas des droites ,la pente m est une fonction en x. Nous
avons pris un pas e gal a` 0.25.
3.3. Exercice 3:
Soit a` resoudre le syst`eme dequations:
2u
2u
2
2 u t2 + (1 x ) = 0, x [0, 1]
u(0, t) = u(1, t) = 0.
Corrige
On consid`ere le point R donne par lintersection de la caracteristique de pente positive du point
P (0.2, 0) et la caracteristique de pente negative du point Q(0.4, 0). Comparons cette e quation avec
la forme standard:
auxx + buxt + cutt + e = 0,
On trouve a = 1, b = 0, c = u, e = 1 x2 . On calcule, avant tout, la valeur numerique de u, p
et q au point P et Q:
avec les conditions initiales,
u = x(1 x),
donc,
uP = 0.2(1 0.2) = 0.16,
uQ = 0.4(1 0.4) = 0.24;
Departement de Mathematiques
FST-Mohammedia, (2008)
50
A. Taik
u
= 1 2x,
x
u
= 0.
t
Alors:
qP = 0 et qQ = 0
pour avoir les coordonnees du point R, nous devons connatre la pente m des caracteristiques.
En utilisant lequation : am2 bm + c = 0, on obtient:
b b2 ac
4u
m=
=
= u.
2a
2
Puisque m depend de la solution u, nous aurons besoin de trouver le point R par des approximations. Pour un premier essai, on utilise des valeurs initiales le long de tout larc; i.e, on prend
m+ = +mP et m = mQ :
m+ = uP = 0.16 = 0.4,
m = uq = 0.24 = 0.490.
A present, on peut estimer les coordonnees de R en resolvant le syst`eme:
0.04 + 0.096
(1)(0.4)(pR 0.6) + (0.16)(qR 0) + 1
(0.044) = 0
2
0.16 + 0.096
(0.044) = 0
(1)(0.490)(pR 0.2) + (0.24)(qR 0) + 1
2
Departement de Mathematiques
FST-Mohammedia, (2008)
51
A. Taik
0.6 + 0.399
0 0.246
(0.310 0.2) +
(0.044 0),
2
2
uR = 0.2095
0.2 + 0.399
0 0.246
(0.310) +
(0.044 0),
2
2
uR = 0.2076 0.2095
Implementation numerique
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));
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)];
Departement de Mathematiques
FST-Mohammedia, (2008)
52
A. Taik
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);
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);
Departement de Mathematiques
FST-Mohammedia, (2008)
53
A. Taik
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
end
end
Execution du code:
Constat:
On constate que m est une fonction qui depend de la solution u. Nous avons pris un pas de
discretisation e gal a` 0.2.
Departement de Mathematiques
FST-Mohammedia, (2008)
54
A. Taik
0.1600 0.2400
0.1600 0.2096
0.2096 0.2228
0.0415 0.02346
0.0636 0.2143
0.149
0.0594
0.2400
0.2435
0.2166
0.2233
0.2233
0.2143
0.1600
0.0
0.2049 0.1600
0.2049
0.0
0.2166 0.1831
0.1897
0.0
0.2289 0.1880
3.4. Exercice 4
Soit a` resoudre le syst`eme dequation :
2u
2 2u
2 = c x2 , x [0, 2] ,
u(0, t) = u(2, t) = 0,
u
(x, 0) = x(1 x), 0 < x < 2,
t
)cos((2n 1) ct
)
16 X (1)n1 sin((2n 1) x
2
2
u(x, t) = 2
.
2
n=1
(2n 1)
Implementation numerique
Code:
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
Departement de Mathematiques
FST-Mohammedia, (2008)
55
A. Taik
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)...
+(((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;
Departement de Mathematiques
FST-Mohammedia, (2008)
56
A. Taik
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.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.5000
0.5000
0.5000
0.0
0.0
-0.5000
-0.5000
-0.5000
-0.5000
1.0000
1.0000
0.5000
0.5000
-0.5000
-0.5000
-1.0000
-1.0000
-1.0000
1.5000 2.0000
1.0000 1.5000
1.0000 0.5000
0.0
0.5000
0
-0.5000
-1.0000 -0.500
-1.0000 -1.5000
-1.5000 -1.5000
-1.5000 -2.0000
1.5000
1.5000
1.0000
0.0
0.0
-1.0000
-1.0000
-2.0000
-1.5000
1.0000 0.5000
1.0000 0.5000
1.0000 0.5000
0.5000 0.5000
-0.5000
0.0
-0.5000 -1.0000
-1.5000 -0.5000
-1.0000 -1.5000
-2.0000 -0.5000
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
4. Conclusion
La resolution numerique des e quations aux derivees partielles restent un defit a` relever, il existe des methodes numeriques qui permettent la resolution des EDPs telles que la methode des
differences finies et la methode des caracteristiques, nous avons remarque que pour quelques
e quations aux derivees partielles lequations donde par exemple, la methode des differences finies
posait probl`eme, il fallait simplifier certains termes et ajouter une condition supplementaire (condition mixte ou de Neumann) et la donnee dune telle condition nest pas usuelle, on sera souvent bloquer sur la resolution dune e quations hyperbolique si nous nous inspirons seulement
de la methode de differences finies; il fallait trouver une autre methode entre autre la methode
des caracteristiques, cette derni`ere est simple a` appliquer et donne une bonne approximation contrairement a` la methode des differences finies. Nos resultats obtenus correspondaient a` ceux des
manuels utilises tandis que le graphe de la solution e xacte netait pas identique a` celui des valeurs
approchees, ce qui met en doute nos resultats numeriques. Mis a` part ces desagrements, nous avons
trouve ce travail tr`es interessant et fructueux, par ce travail nous avons maitrise loutil Matlab, nous
avons su que les EDPs hyperboliques sont utilisees en acoustique, oceanographie, meteorologie.
En plus de cela ce travail nous a permis de connaitre quil existe plusieurs methodes numeriques
Departement de Mathematiques
FST-Mohammedia, (2008)
57
A. Taik
qui permettent dapprocher une e quation aux derivee partielles mais quelles sont limitees, ce qui
nous conduit a` affirmer quil nexiste pas une methode numerique universelle pour approcher la
solution e xacte.
Reference
[1] Curtis F. Gerald, Patrick O. Wheatley, Applied Numerical Analysis. Third Edition, AddisonWesley Publishing Company.
Departement de Mathematiques
FST-Mohammedia, (2008)
58