Vous êtes sur la page 1sur 96

Rsolution numrique des quations

aux drives partielles (PDE)

Sbastien Charnoz & Adrian Daerr

Universit Paris 7 Denis Diderot


CEA Saclay
Rfrences :
Numerical Recipes in Fortran, Press. Et al. Cambridge University press
http://homepage.univie.ac.at/Franz.Vesely/cp0102/dx/dx.html

De nombreux problmes en physiques sont dcrits par des quations d volution


qui implique plusieurs paramtres (t et x souvent)

Equation donde

Equation de diffusion (chaleur)

Equation de Shrodinger

Etc

Comme elles impliquent plusieurs paramtres, lquation diffrentielle fait intervenir


des drives partielles par rapport chacun des paramtres

Equation donde

Equation de diffusion (chaleur)

Equation de Shrodinger

Do le terme PDE pour Partial Differential Equation

Leur rsolution est souvent plus complexe que les quations 1 seul paramtre
(ODE), et fait intervenir des grilles car il faudra discrtiser tous les paramtres
Par exemple : Une grille 3D pour lespace et une grille 1D pour le temps

Les techniques de rsolution changent un peu en fonction de la dimension du problme

Nous traiterons ici les plus souvent des systmes 2D :


1 dimension despace et 1 dimension de temps.
Mais les mthodes se gnralisent N dimensions.

Comme pour les ODE , nous rencontrerons des problmes de:


- PRECISION
- RAPIDITE
- STABILITE

Il y a deux grandes mthodes de rsolutions

Soit on travail dans lespace physique (espace rel) et les mthodes


seront appeles Diffrences finies ( Finite Difference ). On travaille sur une grille
despace et de temps.

Soit on travail dans lespace de Fourrier (dcomposition des fonctions sur une base
de fourrier) , et les mthodes seront appeles Spectrales. On travaille sur une base
finie (donc incomplte) sur laquelle les solutions se dcomposent. On aura donc une
grille qui contiendra les termes de la dcomposition.

Nous tudierons avant tout les mthodes de diffrence finies

Pour commencer, un exemple :


Lquation d'advection

Lquation d'advection dcrit comment une quantit est transporte dans


un courant (par exemple un poluant dans de leau).

Drive totale

Production de polluant linstant t la position r

Du
= f (r , t )
Dt
u u x u y u z
= f (r , t )
+
+
+
t x t y t z t
u r r
+ v u = f ( r , t )
t
v scalaire gradient de u

Si on tudie uniquement le cas 1D


Et si la vitesse de leau est constante = C
Alors lquation d'advection devient :

t u ( x, t ) + c x u ( x, t ) = f ( x, t )
drive partielle
par rapport au temps

drive partielle
par rapport lespace

Nous allons dabord tudier quelques proprits de cette quation


Ensuite nous verrons comment la rsoudre numriquement

Les caractristiques.
Une proprit remarquable de lquation d'advection (que lon retrouve
dans les quations dondes) est que la solution se propage linairement
la vitesse C. On appelle cela une courbe caractristique.
Cette proprit va nous tre trs utile.

t u ( x, t ) + c x u ( x, t ) = f ( x, t )
Faisons le changement de variables suivant :

X= x+t et T=x+t et u(x,t) =U(X,T). On prendra f(x,t)=0


Comment s crivent les drives?

u ( x, t ) = U ( X , T )
U
U
dT
dX +
du =
T
X
u U X U T
x = X x + T x

u = U X + U T
t X t T t
U
U
u
x = X + T

u = U + U
t
X
T
Comment se rcrit alors lquation d'advection ?

Lquation se rcrit aprs changement de variables

U
U
=0
( + c )
+ ( + c )
T
X
si on prend = -c alors l' quation devient
U
=0
T

(tout simplement !!)

Alors U(X,T) = U(X) seulement

Donc u(x,t)=U(X)=u(x-ct)=u(x-ct)
Donc u reste constant le long des droites x-ct=cste
t=x/c+ cste

t=
x/
c+
an

t=
x/
c+
a3

t=
x/
c+
a1

t=
x/
c+
a0

0
Xmin

Xmax

Ces droites ( de pente 1/C) sont les courbes caractristiques de lquation


d'advection. La solution u(x, 0) se propage le long de ces droites
Que vaut u(x,t) ? Si x-ct=a alors u(x,t)=u(a-ct, 0)
Si a-ct tombe en dehors de domaine de X initial =[Xmin,Xmax], alors il faut imposer
une condition limite si (a-ct) =[Xmin,Xmax] alors u(x,t)=(a-ct)

Exemple :
Supposons que U(x,0) =
Alors U(x,0) se propage la vitesse c

t
r
ca

Xmin

r
ct

is

u
tiq

Xmax

On retrouve le mme comportement dans lquation dondes


Notez que la donne initiale U(x,0) est vacue aprs un temps (Xmax-Xmin)/c
Qui est le temps de traverse du domaine de rsolution

Cette proprit de propagation de la donne initiale le long des courbes de


caractristiques va imposer de srieuses contraintes pour la rsolution numrique.
Elle pourra tre aussi utiliser comme un critre de validit de lintgrateur.

Rsolution numrique de lquation d'advection

La mthode le plus simple est celle des diffrences finies


On rsoud lquation d'advection sur une grille, donc chaque
bote a pour cot : dx x dt
T
xj=a+jdx et dx=(b-a)/J
tn=ndt et dt=T/N

unj

J=nb de boites en X
N= nb de boites en T

Soit Un j lapproximation
numrique de u(xj, tn)

dt
b

0 a
Ltat initial du systme est
donn par U0j pour tout j = u(xj,0)

dx

Soyons daccord sur les notations


temps
n

Uj

espace

n varie de 1 N
j varie de 1 J

n=0 : condition initiale


j=0 ou J+1 : condition limites
au bord du domaine

Lvolution du systme sera value en valuant succssivement


Les valeurs de Un+1j pour tout J en fonction des valeurs prcdentes de U.
Lquation rsoudre est

t u ( x, t ) + c x u ( x, t ) = 0
Appliquons des mthodes dordre 1

Comment calculer d Unj/dt


Comment calculer d Unj/dx

d u(xj,tn)/dt ?

d u(xj,tn)/dx ?

Au premier ordre , on peut dire :

U nj
t
et
U nj
x

U nj +1 U nj
dt
U nj U nj1
dx

Oprateur diffrence avant explicite:


D+ (fk)=fk+1-fk

Oprateur diffrence arrire explicite:


D- (fk)=fk-fk-1

Le choix de D- est motiv par le fait que linformation


se dplace en avant. Linfo pour X+1 vient de X
Donc lquation devient : ????

t u ( x, t ) + c x u ( x, t ) = 0
U nj
t

U nj +1 U nj

U nj

dt

n +1
j

n
j

+c

U U
n
j

n
j 1

dx

=0

dx
cdt n
n +1
n
n
U j =U j
U j U j 1
dx
dt

U nj U nj1

Le schma dintgration sera donc:

n +1
j

cdt n
n
=U
U j U j 1
dx
n
j

Avec UnJ+1 et Un0 donn par les conditions limites


du problme
On notera :

cdt
=
dx

Condition de validit du schma sur ??

Ujn+1

tn+1
dx-cdt

p
tn

Uj-1n

Ujn

cdt

ca

ra
c

t
r is

tiq

ue

tn-1

xj-1

xj

Xj+1

Normalement Ujn+1= Upn avec Xp situ entre xj-1 et xj

Le schma nous dit donc Upn=Ujn-cdt/dx (Ujn-Uj-1n)


=> On a bien fait de prendre D- pour la drive spatiale car linfo vient
bien de la gauche !!!

Comme Upn=Ujn-cdt/dx (Ujn-Uj-1n)=(1-) Ujn +Uj-1n


cest en fait une interpolation linaire de Upn !!!
Uj-1

Ujn

dx-cdt

Ujn

cdt

Pour que linterpolation soit efficace il faut que


cdt << dx => << 1 : CONDITION DE COURANT / CFL
(CFL : courant-Friedrichs-Levy)

La condition de courant est .. trs courante


quand on intgre des PDE. On la rencontre
toujours sous une forme ou sous une autre
On peut la comprendre comme suit
Si c est la vitesse de transmission de linfo.
Si dx est le pas despace
Si dt est le de temps
Il faut que le pas de temps dt soit beaucoup plus
court que le temps de transmission de linfo la
longueur dx :
dt <<dx/c cdt/dx << 1 CONDITION CFL

Implmentation numrique : Ecriture matricielle


Un+10<j<J =Un+1=

Un0<j<J =Un=

U1n +1

...
U n +1
J
n +1
0

U 0n

U1n

...
U n
J

On sait de plus que : Ujn+1=(1-) Ujn +Uj-1n


Calculer A dans la relation Un+1=AUn

Simple relation matricielle entre Un+1 et Un

U 0n +1 CL
0
0


U1n +1 1
0


1
... = 0
... 0

0
n +1
U J 0
0
0

A est une matrice bi-diagonale


CL ?? condition limite

0
0
0
...

U
0 0
n
0 U1

0 ...

... ...
n

1 U J

Stockage mmoire
important

Si La condition limite est fixe alors : CL=0, et on impose Un+10=cst

Algorithme dintgration.
Conditions limites en dehors du domaine: U=0
Conditions aux bords :
Sinus(wt)

Fonction creneaux

1. Initialiser U0, dx, dt, c


2. Calculer Un+1=A Un
3. Mettre U0n+1= cste pour la condition au bord
4. retourner en 2

Exemple dintgration numrique


Condition au bord : sin(temps)

Si sigma=1, solution exacte Ujn+1=Uj-1n, en pratique IMPOSSIBLE ..

Prenons dt=0.01
=> sigma=0.2

Que se passe-t-il ?

dt=0.001
sigma)=0.02

On observe de la
dispersion numrique
=>
Diffusion artificielle
engendre par le schma

Autre exemple : crenaux

Dt=0.05
sigma=1

Dt=0.01
Sigma=0.2

Dissipation numrique do viens tu ??


Nos drives sont estimes de manire trop simples.
2
dx 2 U j 1
2
(
)
+
O
dx
U j = U j 1 + dx
+
2
2 x
x
donc

U j 1

U j U j 1
dx

U j 1

2
dx U j 1
=
+
+ O(dx)
2
x
2 x

En fait un rsoud lquation :

U
U cdx U
dx
+c
+
+
0
(
)
=
0
2
t
x
2 x
2

Terme dissipatif

Analyse de stabilit : Mthode de Von Neuman


On doit considrer la transforme de Fourrier => Approche spectrale

On dcompose la fonction Un(x) sur une base de sinus et cosinus.


Sachant que Unj= Un(xj) avec xj=j dx

U = f e

n ikx j
k

n
j

= f e

n ik jdx
k

La longueur donde du mode k est =L/k


K=nb de fois quun mode entre dans la boite de longueur L

Dcomposition
dune solution
Sur les modes

K=0

K=1
Domaine : 0 < x < 1000
K=2

U = f e
n
j

K=3

K=4 etc

n ik jdx
k

approche spectrale :
travailler sur les f plutt
que sur les U

U nj = f kn e ik jdx
k

On considre alors lvolution des fnk qui sont les


coefficients de chaque mode.
Au cours du temps : f n+1k= g(k) f nk
Stabilits || g(k) || < 1 pour tout k
On regarde si les modes sont amplifis ou non

Comment le schmas upwind se traduit dans une base de fourrier ?

n +1
j

= (1 )U nj + U

Schma dintgration

n
j 1

On remplace U par sa TF

f kn +1 e ikj dx = (1 ) f kn e ikj dx + f kn e ik ( j 1) dx =
k

(1 ) f kn e ikj dx + e ikdx f kn e ikj dx


k

Trouver le facteur damplification du mode k : uk n+1 = g(k) ukn

= (1 ) f + e

n +1
k

n
k

n +1

ikdx

n
k

= (1 + e

ikdx

)f

g (k ) = (1 + e

ikdx

) = 1 + (e

fk

n
k
ikdx

1)

g (k ) = 1 2 (1 )(1 cos(kdx) )
2

Stabilit : si ||g(k)|| < 1 pour tout k


SIGMA infrieur ou gal 1
On retrouve encore la condition de courant
Notre schma est stable mais dispersif
On voit aussi quil y a un couplage des modes => origine de la dispersion

Sigma=0.2
Evolution dune impulsion
gaussienne

Evolution dun crneau

Conclusion sur le shmas UPWIND ( Contre le vent )


Un schmas UPWIND sert rsoudre les quations de transport
(quation dadvection).
On lobtient aisment en crivant
temps

Espace

U nj
t
U nj
x
U nj
x

=
=
=

U nj +1 U nj
dt
U nj U nj1
dx
U nj+1 U nj
dx

si C > 0
si C < 0

Il est stable si la condition CFL est remplie


Mais il est dispersif
Il est principalement utilis pour propager des fonctions avec des bords nets
(ondes de choc)

Exploration dautres schmas dintgration

- Ordre plus levs


- Schmas implicites

On peu sinspirer du dveloppement de Taylor pour tablir dautres


schmas dintgration

J-1

U nj

J+1

2 n

Uj
dx
2
n
n
+
+
O
dx
(1) U j +1 = U j + dx
(
)
2
x
2! x
n
2 n
2

Uj
U
dx
j
n
n
2
+
+
O
dx
(2) U j 1 = U j dx
(
)
2
x
2! x
(1) (2) donne

U
x

n
j

n
j +1

2dx

n
j 1

D.L. en XJ+dx
D.L. en Xj - dx

Mthode dordre 2
Diffrence centrale

+ O(dx 2 )

Le Mme raisonnement sur t donne :

U nj
t

U nj +1 U nj 1
2dt

+ O(dt 2 )

Cette nouvelle expression est en fait la moyenne des drives


Droites et Gauches.

U nj
x

U nj+1 U nj1
2dx

n
n
n
n

U
U
U
U

1
j +1
j
j
j 1
=
+

2
dx
dx

On peut continuer lexercice pour des ordres plus levs

U nj

2 n
2 n
2
3

U
Uj
4
8
dx
dx
j
n
n
3
(1) U j + 2 = U j + 2dx
(
)
+
+
+
O
dx
2
3
2! x
3! x
x
n
2 n
2 n
2
3

U
U
Uj
dx
dx
j
j
n
n
3
(2) U j +1 = U j + dx
+
(
)
+
+
O
dx
2
3
2! x
3! x
x
n
3 n
2 n
3
2

U
U
Uj
dx
dx
j
j
3
n
n
(3) U j 1 = U j dx
+

(
)
O
dx
3
2
x
2! x
3! x

U nj
x

U nj+ 2 + 6U nj+1 3U nj 2U nj1


2dx

Mthode a 4 points avant


Etc

+ O(dx 3 )

Mais ces mthodes impliquent daller chercher linformation plus loin


dans le temps ou lespace .

Il Faut stocker en mmoire ltape N-1


Construisons nouveau schmas pour lquation dadvection, dordre 2 en temps
et en espace

t u ( x, t ) + c x u ( x, t ) = 0
U nj
t

U nj +1 U nj 1
2dt

NOUVEAU SCHEMA DINTEGRATION ?

U nj
x

U nj+1 U nj1
2dx

t u ( x, t ) + c x u ( x, t ) = 0
U U
1
n +1
n 1
U j U j + c
2dt
2dx
n +1
n 1
n
n
U j = U j U j +1 U j 1

)
(

n
j +1

n
j 1

=0

Nouvel Algorithme dintgration


Remarquez la simplicit .. Ordre 2 en plus !!
Mais ncessite plus de mmoire
Cette mthode sappelle leap-frog ou saute mouton en franais
(. et pas saute grenouille)

Mise en uvre du Leap-Frog

n +1

= AU + U
n

n 1

+
A= 0

0
0

0
0

+
0
0

0
+
0

...
+

0
0

...
0

Problme : Comment Calculer le 1ER pas de temps (N=1) car on ne connat pas
le systme N=-1.
Solution : Faire le premier pas avec un UPWIND, et ensuite continuer en LEAPFROG

1er pas de temps


upwind

1. Initialiser le systme, dt,dx,U0


2. Calculer U1= AupwindU0

Pas de temps
suivants par
leap-frog

3. Calculer U2=AleapfrogU1+U0
4. U0=U1 et U1=U2
5. Retourner en 3

On garde en mmoire
Un-1

Comparaison upwind Vs leap frog, sigma=0.2


Evolution dune impulsion gaussienne

Upwind

Leap Frog

Le leap-frog semble bien meilleur !!


Est-ce toujours le cas ?

En fait pas toujours Quand la fonction est trs raide le Leap-Frog peu devenir
instable
Evolution dune impulsion crneau

upwind

Leap frog

Notez la manire davancer du leap-frog


n +1
n 1
n
n
j
j
j +1
j 1

=U

N+3

Il y a toujours un dcalage
de 2 .
En fait on dcouple les temps
pairs et impairs

N+2
temps

N+1
Cela pourra engendrer des instabilits
pour les fonctions trs raides

Des mthodes existent pour


rsoudre partiellement ce problme

N-1
J-2

j-1

espace

J+1

Une mthodes implicite : le Cranck-Nicholson


Elles sont inconditionnellement stables.
Ordre 2 en espace et Ordre 2 en temps
Ide : Faire des moyennes
(plutt que spatiales)
n+1
n
u Uj Uj
=
t
dt
n+1
n+1
n
n
U

U
+
U

u 1 u
u
1 j+1 j1
j+1
j1
=
+
=

x 2 x t=n+1 x t=n 2
2dx

temps

N+2

N+1
N
N-1
J-2

j-1

espace

J+1

)(

u u
+c = 0
t x
n+1
n cdt
Uj =Uj
Unj++11 Unj+11 + Unj+1 Unj1
4dx

[(

Schma implicite

)(

)]

[(

) (

cdt
n +1
n +1
n
n
U =U
U j +1 U j 1 + U j +1 U j 1
4dx
= cdt/dx
n +1
j

n
j

)]

En regroupant les termes en Un+1 et en Un

n +1
j

(
U
4

n +1
j +1

AU
U

n +1

n +1

= BU
1

= A BU

n +1
j 1

)=U

n
j

(
U
4

n
j +1

n
j 1

n +1
j

AU

(
U
4

n +1

n +1
j +1

n +1
j 1

)=U

= BU U
n

n +1

n
j

(
U
4

= A BU

n
j +1

n
j 1

Donc le schmas implicite de Cranck Nicholson ncessite une inversion de matrice:

0
0
/4
1

1
0
/4
/ 4
A= 0
/ 4
1
/4

/ 4
0
...
0
0
/ 4
0
0

0
0
0
/ 4
1

0
1
0
/ 4
/ 4
0 ; B = 0
1
/ 4
/4

...
0
...
/4
0
0
1
0
0
/4

On prendra comme condition limite : U(j=0)=0, et U(j=Jmax)=0

0
0

...
1

Stabilit du Cranck Nicholson :

1 / 2i sin( dx)
g (k ) =
1 + / 2i sin( dx)
Donc la norme de g(k) est 1 pour tout k,donc cest une mthode inconditionnellement
convergente.
Elle est adapte pour les problmes trs doux, mais produit des oscillations ds
quil y a des discontinuits.

Evolution de la solution
La solution est bien stable
Ici on a 1000 boites en x

Remarquer les petites oscillations


la base du pic

Mais pour une fonction


discontinue, on obtient des
Oscillations
(ici une fonction porte)

Reprenons la fonction gaussienne, mais, diminuons le nombre de botes en X

Evolution de la fonction

Vue globale

On voit que quand on diminue le nb de boites en X, la fonction est plus


discontinue et genere des oscillations intempestives

Cranck Nicholson est souvent une bonne mthode


Mais plutt pour des fonctions douces
Pour une fonction trs discontinue, on utilisera plutt la mthode upwind

La classification des quations aux drives partielles dordre 2:


trs courantes en physique
Forme gnrale dune qua.diff du second ordre :
u est un vecteur : (x1, x2, ,xn)

Si G=0 , lquation est dite homogne .


On calcule le Discriminant :
Le signe de nous donne le type dquation

Si > 0 alors lquation est Hyperbolique :


ex: propagation donde :
eq. dadvection
(drive par dt )

2
2 f
2 f
=c
2
x 2
t
f
f
+c
=0
t
x

Si = 0 lquation est dite Parabolique :


ex: Diffusion de la chaleur :

Equation de Shrodinger :

T
2T
=k 2
t
x

2U

U
= i 2 + U
t
x

Si <0 lquation est dite Elliptique :


Equation de
Laplace

2u 2u
+ 2 =0
2
x
y

ex: Equation de Poisson :

2
2
2
( x, y, z ) = 2 + 2 + 2 V ( x, y, z )
y
z
x

= densit de charge, V, potentiel dterminer

DERIVEES SECONDES
Beaucoup dquations en physique font intervenir une drive seconde.
On peut lapproximer avec le mme type de raisonnement que pour
la drive premire

U nj

2 n
2

Uj
dx
n
n
2
(
)
+
O
dx
U j +1 = U j + dx
+
2
2! x
x
n
2 n
2

Uj
dx
j
n
n
2
U j 1 = U j dx
+
+
O
(
dx
)
2
2! x
x

Une fois de plus on sinspire


du dveloppement de Taylor

2 n
2

Uj
dx
n
n
2
(1) U j +1 U j = dx
+
+
O
(
dx
)
2
2! x
x
n
2 n

Uj
j
2
n
n
2
(2) U j + 2 U j = 2dx
+ 2dx
+
O
(
dx
)
2
x
x

U nj

On trouve donc :

2U nj
x 2

U nj+ 2 2U nj+1 + U nj
dx 2

+ o(dx)

Diffrence AVANT

En Dcalant la position, on peut trouver dautres approximation

2U nj
x

2U nj
x

U nj 2 2U nj1 + U nj
dx

U nj+1 2U nj + U nj1
dx

+ o(dx)

+ o(dx 2 )

Diffrence ARRIERE

Diffrence CENTREE

Les mme formules sappliquent pour les drives temporelles (remplacer x par t)
Noter que la diffrence CENTREE est toujours meilleure (ordre 2)

On peut aussi calculer de la mme manire les drives croises :


Exemple

2U nj
xt
2U nj
xt

2U nj
xt

U nj++11 U nj +1 U nj+1 + U nj
dxdt
U nj+11 U nj 1 U nj1 + U nj
dxdt

+ o(dx) + o(dt )

Diffrence AVANT

+ o(dx) + o(dt )

Diffrence ARRIERE

U nj++11 U nj+11 U nj+11 + U nj11


4dxdt

+ o(dx 2 ) + o(dt 2 ) Diffrence CENTREE

Une fois de plus les mthodes centres sont dordre 2

Les quations HYPERBOLIQUES

On a dj tudi lquation dadvection


Autre exemple : propagation des ondes

Ces quations ont des caractristiques , elles propagent


une condition initiales.
Les mthodes dordre 2 marchent bien pour les fonctions douces
Pour des fonctions raides on prfrera une mthode dordre 1 UPWIND
Cf. cours pcdent

Les quations PARABOLIQUES

U
U
2 = 0
t
x
2

Exemple :
quation de la chaleur
(Fourrier)

=diffusivit thermique

Mthode la plus simple : Explicite

U nj

Temps : diffrence avant

2U nj

Espace : diffrence centre

x 2

U nj +1 U nj
dt

U nj+1 2U nj + U nj1
dx 2

+ o(dx 2 )

On remplace et on trouve le schmas :

n +1
j

= (1 2 )U + (U

o = dt / dx

n
j

n
j 1

+U

n
j +1

Notez la nouvelle expression de

Stabilit ? METHODE DE VON NEUMAN nouveau

n +1
j

= (1 2 )U nj + (U

n
j +1

+U

n
j 1

ukn+1 = g(k) unk

n + 1 ikj dx
n ikj dx
u
e

u
(
1
2
)
=

k
ke +
k

u kn e ik ( j +1) dx + u kn e ik ( j 1) dx
k
k

ikdx
+ ikdx
n ikj dx
n ikj dx
n + 1 ikj dx
u
e
=
(
1

)
u
e
+
(
e
+
e
)

u
k
k
ke
k

En regroupant terme terme on trouve

kdx
g (k ) = 1 4 sin 2

g (k )2

1
dx 2
1 dt
<
2
2

On retrouve nouveau une condition proche de la condition de courant (CFL)


En pratique : cette mthode explicite est donc STABLE si CFL est respect, cependant
Comme elle nest que dordre 1 en temps elle est trs diffusive et pas trs bonne

Que reprsente dx2/2 ?


est le cfficient de diffusion. On montre en thorie cintique des gaz (cf. le cours
sur les gaz parfaits) que le temps ncessaire pour diffuser sur une distance
dx est : dx2/2 Donc cest bien une quantit physique..
Cest la nouvelle condition de courant (CFL) pour la chaleur.

Cours sur la diffusivit :


www.unice.fr/lpmc/bdd/suprex/ download/Cours-thermo-ch3.doc

Ex: Diffusion de la chaleur


dans une barre
Ici SIGMA=0.4

Marche pas mal

Mais i on augmente le pas de


temps?

Ici SIGMA=0.8
. Le rsultat est faux

Les mthodes implicites donnent de meilleurs rsultats

Mthode Implicite dordre 1 (en temps)


Temps : idem

U nj
t

Espace : idem prcdent


mais estime au temps n+1

2U nj
x 2

U nj +1 U nj
dt

U nj++11 2U nj +1 + U nj+11
dx 2

On aboutit au schma implicite suivant

U nj++11 + (1 + 2 )U nj +1 U nj+11 = U nj
o = dt / dx 2

+ o(dx 2 )

Pour rsoudre , on adopte nouveau une dmarche matricielle

AU
Avec A

n +1

=U

n +1

=A U
-1

1 + 2

1 + 2
A= 0
1 + 2

0
0
0
0

0
0
0

...
...

1 + 2
0

Matrice nouveau tri-diagonale facilement inversible


On fera attention aux conditions limites lors de lintgration

Stabilit ? Mthode de Von Neuman encore


On trouve

g (k ) =

1
kdx
1 + 4 sin 2

Donc || g(k)|| 2 < 1 en toutes circonstances => inconditionnellement stable

Petit pas de temps, sigma=0.4

Grand pas de temps : sigma=1.2

On voit bien ici la supriotit de la mthode implicite

Cranck Nicholson (Intgrateur trs populaire)


Temps : idem

U nj
t

U nj +1 U nj
dt

Espace : On fait la moyenne


aux temps n-1 et n+1

2U nj
x 2

n +1
n +1
n +1
n
n
n
1 U j +1 2U j + U j 1 U j +1 2U j + U j 1
2

+
+
o
(
dx
)
2
2

2
dx
dx

En fait cest un schmas dordre 2 en temps n+1/2 (astuce !!)


On obtient

U nj+11 + (1 + 2 )U nj +1 U nj++11 = U nj1 + (1 2 )U nj + U nj+1


Quon crit matriciellement :

AU

n +1

= BU

Il faudra donc calculer A-1. Si on pose C=A-1B on a alors


La relation simple Un+1= C Un

Ici =a

Stabilit : ||g(k)||2=

TESTS : a marche bien, est cest plus prcis que les mthodes prcdentes

Les quations ELLIPTIQUES (ou Problmes Conditions Limites)


Les quations elliptiques ne dpendent pas du temps.
Par exemple : Equation de Poisson pour le potentiel electrique
laplacien

2U = ( x, y, z )
2U 2U 2U ( x, y, z )
+ 2 + 2 =
2
x
y
z
0

U est le champ de potentiel , est la distribution de charges


lectriques dans lespace

On rencontre le mme type dquation en mcanique des fluides :


Pour un coulement permanent, visqueux, non turbulent , on a :

v=
2

coulement de Poiseuille

grad ( P)

On voit dans tous les cas que le temps nintervient pas .


Cela signifie que lon calcule UN CHAMP : il faut calculer la valeur de U en tout
point de lespace.
Par exemple le champ de potentiel, le champ de vitesse, le champ gravitationnel
etc
Ce champ dpend uniquement de ses conditions limites :
La distribution de charges, de masses, lcoulement aux bords du domaine etc
On appelle donc ces problmes PROBLEMES A CONDITIONS LIMITES

Ils sont en gnral assez complexes a rsoudre. Nous les survolerons rapidement
Il existe quelques mthodes matricielles, mais les meilleures sont les mthodes
spectrale, i.e o le systme est rsolu dans lespace de fourrier et ensuite converti
dans lespace rel.

Exemple : Rsolvons le champ engendr par une charge electrique 2D

2U 2U
+ 2 =
2
x
y
0
En prenant pour expression de la drive seconde, la diffrence centrs, on
Aboutit une quation du genre

Y
Charge lectrique
au nud i,j
i

U(i,j) est la valeur de U la position :


X=i x dL et Y= j x dl
j

Grille de Charges
ij

Grille du champ
de potentiel Uij
Poids
: -4
:1

Origine de la complexit des quations elliptiques


Comment crire lintgrateur sous forme matricielle ? Est-ce possible ?

2
1

Oprateur LAPLACIEN

Champ U

Distribution de
charges

Dcalage d une ligne


En bas

Dcalage dune ligne


en haut
Dcalage dune Dcalage dune
colonne droite Colonne gauche

Pour dcaler les lignes on peut multiplier par :


ou

1
1

1
1

S-1

S+1

Mais pour dcaler les colonnes ?


Le seul moyen est dutiliser la transpose

Dcaler dune colonne : dcaler les lignes de la transpose et prendre la


transpos du rsultat (S+1 AT)T

Rflchissons un peu .
PROBLEME !!!! =>
La transposition de matrice nEST PAS une opration linaire
Il nest pas possible dexprimer un dcalage de colonne
par une simple multiplication matricielle

Une quation du type : A X + B XT = C nest pas une opration linaire .


Donc on ne PEUT PAS ecrire simplement ce probleme sous la forme dune
Simple multiplication de matrices

On peut sen sortir en crivant un systme de N2 quations N2 inconnues


(donc une matrice contenant N4 termes) ce qui est long est TRES infficace
On voit donc que les quations elliptiques sont trs coteuses en mmoire et
en calcul

Exemple : tous les problmes N corps

Survivre une quation elliptique


Introduction aux mthodes spectrales
-

Astuce : remarquer que cette opration mathmatiques est


en ralit une CONVOLUTION :

Rappel sur la convolution 1D :

Convolution discrte : valeur de f * g au point m

Exemple :
Soit f une suite de valeurs ( un vecteurs), ici 20 valeurs
F(m)=[100, 98,95,89,80,70, 58,45,30,15, 0, -15, -30,-45,-58 ,-70,-80,-89,-95,-98]

Si on pose :
X=M*dx
O dx=0.157
En fait F=100*cos(x)

Faisons la convolution par G=[1,1,1] /3 (G est appel Noyau de Convolution )


Comme

Soit C=f*g , alors chaque point de C est remplac par la moyenne des trois
points voisins de f
F(m)=[100, 98,95,89,80,70, 58,45,30,15, 0, -15, -30,-45,-58 ,-70,-80,-89,-95,-98

[1/3,1/3,1/3]

[0.,97.6,94.0,88.0, 79.6, 69.3, 57.6, 44.3, 30.0,15.0, 0.0, 15.0, -30.0, -44.3, -57.6, -69.3, -79.6,]

On peut voir la convolution comme une sorte de fentre glissante agissant


sur la fonction elle-mme. G sappelle le noyau de convolution

Autre exemple : G=1/2 ([-1,1,0]/dx + [0,-1,1]/dx) =[-0.078,0,+0.078]


= moyenne de la drive droite plus drive gauche
Alors f*g sera une approximation lordre 1 de la drive

Ligne : f
Tirets : f*g

La convolution peut donc servir BEAUCOUP de choses

Convolution 2D :
On fait parcourir une boite glissante, le nouyeau de convolution sur une grille

Laplacien

-4

j
g

Laplacien de U

On fait glisser g sur la grille U pour obtenir le laplacien de U

Ex :
F(i,j)= 1/i+1/j

Laplacien de F (convolue)

Donc le problme du champ peut se rcrire

f = (U * lap )( x, y ) = ( x, y )
2

Oprateur Laplacien

Pourquoi cela nous aide ???


Eh bien grce ce fameux thorme:

la transforme de Fourrier du produit de convolution est gale


au produite des transformes de fourrier (a un constante multiplicative prs..)

Donc notre problme se rcrit :


Soientt U*= TF(U), Lap*=TF(lap) , *=TF ()
o TF signifie transforme de fourrier
U*xLap*=* =>
U*= */Lap* =>

U=

TF-1(*/Lap*)

(Eh voila ..)

AVANTAGE : lalgorithme FFT est trs rapide (en Nxlog(N) )


INCONVENIENT : conditions limites priodiques !!
Ce genre de mthode est la base des mthodes dites spectrales

Mais elles sont en ralits trs sensibles au bruit numriques et ncessitent


Dtre utilises avec soins

Exemple : mthode PARTICLE MESH , sinspire des rsultats prcdents


Lquation de poisson scrit :

U = ( x, y )
2

Mais on se souvient que le potentiel engendr par UNE charge qi la position ri est :

q
Vi (r ) =
r ri
Alors U peut se rcrire plus simplement

U (r ) =
i

qi
= ( * p )
r ri

O (r)= charge la position r


O P(r)=1/R
On a donc U*= *

x P* => U=TF-1 (* x P*)

Convolution

EXEMPLE :
Calculer le champ de potentiel engendr par 10 charges + et 10 charges -, placs
Dans une grille 200x200 (40,000 points de maillage)

blanc = +1
noir =-1

(r)

Noyau de convolution :

1/R

P(r)
Affichage code de couleurs

Affichage P(x,y)

TF

TF

P*

P*

U*

U* : Transforme de Fourrier du Champ U

Pour trouver U , on prend la transforme de fourrier inverse de U*, et on trouve

Champ de potentiel

Remarquez les conditions priodiques

La mme chose avec 4000 charges (ce nest pas plus long)

CONCLUSION sur les quations elliptiques


Les fonctions elliptiques (qui ncessitent de calculer un champ sur une grille)
ncessitent une rsolution assez complexe car lquation qui permet
ne les calculer nest pas linaire et ne scrit pas simplement
avec des matrices.
On les appelle quations aux conditions limites
Les approches spectrales, qui passent par une TF, sont souvent les plus
rapides (grce lalgorithme FFT) .

Les conditions limites peuvent tre parfois difficiles manipuler.


Naturellement la TF suppose des conditions limites priodiques
Pour des systmes isols non priodiques cela ncessite encore un
peu de travail.