Vous êtes sur la page 1sur 20

Introduction à la simulation numérique

Edwige Godlewski et Alexandra Claisse


Laboratoire Jacques-Louis Lions
Université Pierre et Marie Curie - Paris 6

ENS, 23 avril 2008


Les étapes

• Modélisation (physique, chimie, biologie, médecine, ...)


• → système d’équations aux dérivées partielles
• analyse théorique : existence, unicité, propriétés des solutions
• approximation du problème
• analyse numérique des méthodes
• programmation des algorithmes
• simulation numérique
• validation de l’approche
Un exemple : Équations de la dynamique des gaz
Modélisation en mécanique des fluides de l’écoulement d’un fluide
compressible
∂ ∂
%+ (%u) = 0
∂t ∂x
∂ ∂
(%u) + (%u 2 + p) = 0
∂t ∂x
∂ ∂
(%e) + ((%e) + p)u) = 0
∂t ∂x
% densité, u vitesse, p pression, e énergie.
Équations de conservation de la masse, de la quantité de
mouvement, de l’énergie.
∂ ∂
Système d’équations aux dérivées partielles : ∂t , ∂x , dérivées de
fonctions qui dépendent du temps t et de l’espace x, ici
simplification on a seulement x, pas (x, y , z). On regarde
l’évolution au cours du temps connaissant la condition initiale
donnée à un temps t0 (exemple en météo).
Démarche de l’analyse théorique

• Formalisme le plus général possible

∂u ∂
+ f(u) = 0
∂t ∂x
où u représente les 3 quantités (%, %u, %e) et f(u) représente
les 3 quantités (%u, %u 2 + p, (%e + p)u).
• Étude des propriétés communes à ces systèmes.
• On regarde des cas simplifiés, par exemple quand on n’a
qu’une seule équation.
• Y a t-il une, des solutions ? sous quelles hypothèses ? peut-on
les caractériser ?
• Énoncés de théorèmes généraux d’existence, unicité,
continuité par rapport aux données
• Application au cas particulier de départ
Généralités sur l’approximation

La solution exacte même si elle existe est impossible à expliciter.


Pour des raisons concrètes, on a besoin de connaı̂tre la solution.
Exemples : prédiction du climat, de la température d’une navette
spatiale, calcul du cx pour le design d’un véhicule, amélioration de
la combustion des moteurs, du débit des conduites pétrolières, ...
→ On a développé des méthodes permettant
• d’approcher la solution,
• de faire le calcul effectif de cette solution approchée,
• d’estimer l’erreur d’approximation en fonction de paramètres
connus, au moins sur des cas test.
Exemples d’approximation

À la base des méthodes numériques : on calcule les valeurs de la


solution seulement en un nombre fini (mais grand ! ) de points

dans tous les cas, on sait sous quelle condition la méthode est
stable et estimer l’erreur
Exemples d’approximation

À la base des méthodes numériques : on calcule les valeurs de la


solution seulement en un nombre fini (mais grand ! ) de points
• l’interpolation : si on connaı̂t des valeurs d’une fonction en
quelques points (mesures, calcul), on sait reconstituer une
fonction usuelle qui l’approche
• les différences finies : à partir des valeurs d’une fonction en
quelques points, on sait approcher la dérivée en ces points
• intégration numérique : on sait approcher l’intégrale d’une
fonction à partir de ses valeurs en quelques points

dans tous les cas, on sait sous quelle condition la méthode est
stable et estimer l’erreur
Exemples d’approximation

À la base des méthodes numériques : on calcule les valeurs de la


solution seulement en un nombre fini (mais grand ! ) de points
• l’interpolation : si on connaı̂t des valeurs d’une fonction en
quelques points (mesures, calcul), on sait reconstituer une
fonction usuelle qui l’approche
• les différences finies : à partir des valeurs d’une fonction en
quelques points, on sait approcher la dérivée en ces points
• intégration numérique : on sait approcher l’intégrale d’une
fonction à partir de ses valeurs en quelques points
• les méthodes pour résoudre une équation différentielle : on
sait approcher la solution d’une équation différentielle
dans tous les cas, on sait sous quelle condition la méthode est
stable et estimer l’erreur
Différences finies
On connaı̂t des valeurs d’une fonction f en des points d’une grille
xi . Par exemple la grille est uniforme, de pas ∆x : xi = i∆x.

x1 x2 x3 x4 x5

∆x

On peut approcher f 0 (xi ) et f 00 (xi ) par


f (xi+1 ) − f (xi ) 00 f (xi+1 ) − 2f (xi ) + f (xi−1 )
f 0 (xi ) ∼ , f (xi ) ∼
∆x ∆x 2
et on sait évaluer la différence en fonction de ∆x
f (xi+1 ) − f (xi )
f 0 (xi ) −
∆x
Si on ne connaı̂t pas encore f mais seulement des valeurs
approchées fi ∼ f (xi ), on peut quand même calculer
fi+1 −fi 0
∆x ∼ f (xi )
Interpolation
On connaı̂t des valeurs d’une fonction f en des points d’une grille
xi . On construit une fonction simple qui approche f , par exemple
linéaire par morceaux

x1 x2 x3 x4 x5

∆x

“Calcul” d’autant plus précis que ∆x est petit.


Différences finies
On connaı̂t f , on approche la dérivée par différences finies aux
points xi

tangente
diff. finie

x1 x2 x3 x4 x5

∆x

f (x3 ) − f (x2 )
f 0 (x2 ) ∼
∆x
Intégration numérique
On connaı̂t f , on approche l’intégrale par une méthode des
rectangles aux points xi

rectangle à gauche

x1 x2 x3 x4 x5

∆x

point milieu

x1 x2 x3 x4 x5
Équations différentielles
On cherche une fonction y (t) solution d’une équation
y 0 (t) = f (t, y (t))
Exemple classique pour tout t on veut que la fonction soit propor-
tionnelle à sa dérivée : y 0 (t) = ay (t), soit f (t, y ) = ay . On connaı̂t
la solution si on se donne la valeur au temps 0 (exponentielle)
y 0 (t) = y (0)e at
Exemple d’application On note N(t) l’effectif d’une population à
l’instant t. Le taux d’accroissement de la population, c’est-à-dire
la dérivée de N(t) en fonction du temps, est égal à = naissances -
morts + migrations. On suppose qu’il n’y a pas de migrations et
que les nombres de naissances Na et de morts Nm sont proportion-
nels à N(t) on obtient : Na = an N, Nm = am N on retrouve
l’équation différentielle précédente
dN(t)
= (an − am )N(t) ⇒ N(t) = N(0)e (an −am )t
dt
Méthode numérique pour les équations différentielles
Dans le cas général, EDO : y 0 (t) = f (t, y (t)) sous certaines
hypothèses, il y a un beau théorème qui permet de dire que la
solution existe et est unique quand on se donne la valeur de y (0)
(ou de y (t0 )). Ce n’est pas possible d’expliciter la solution y (t) en
général avec des fonctions usuelles (x k , exp, log, sin...).
On calcule les valeurs approchées yi de la fonction y (ti ) en des
points ti d’une grille. On approche y 0 (ti ) par
y (ti+1 ) − y (ti )
y 0 (ti )∼ , et f (ti , y (ti ))∼f (ti , yi )
∆t
on peut calculer la suite de valeurs yi ∼y (ti ) à partir de la valeur
initiale y0 = y (t0 ) par l’algorithme
yi+1 − yi
=f (ti , yi )
∆t
yi+1 =yi + ∆t f (ti , yi )
C’est la méthode d’Euler. Calcul d’autant plus précis que ∆t est
petit.
petit programme scilab

on programme facilement cette méthode yi+1 = yi + ∆t f (ti , yi )


exemple f (t, y ) = y (cos t − 2t tan t 2 sur [0, π/3]
function z=f(t,x)
z = x. ∗ (cos(t) − 2 ∗ t. ∗ tan(t.2 ));
getf("exemple.sci")
t0=0;
n=50;
a=%pi /3;
h=a/n;
y0=1;
euler=ones(n+1,1);
for i=1:n
euler(i+1)=euler(i)+h∗f (t0 + (i − 1)∗h,euler(i));
end
calcul en dimension supérieure
Si on cherche une fonction u(x, y ) où x, y varient dans une partie
du plan, u solution d’une équation aux dérivées partielles, exemple
classique
∂2u ∂2u
∆u(x, y ) ≡ + = f (x, y )
∂x 2 ∂y 2
On a aussi des méthodes adaptées.
On calcule la solution approchée sur un maillage du plan : on
recouvre le domaine de petites cellules, par exemple des triangles.
On peut aussi mailler une surface...
calcul et maillage
...un volume
Vrais problèmes

Dans le cas général, on a des méthodes adaptées à chaque type


d’équations. Avoir un regard critique sur les résultats obtenus :
• on fait l’analyse numérique de la méthode utilisée, c’est à
dire on démontre ses propriétés théoriques (stabilité,
convergence) sous des hypothèses générales
• on valide sur des cas réels plus simples (cas test), par exemple
dont on connaı̂t la solution
• on compare l’approche sur des cas réels avec des mesures
• on applique la méthode au cas réel plus complexe
• si possible, on fait varier certains paramètres et on compare
les résultats (exemple on raffine le maillage, on diminue le pas
de temps)
• si possible, on compare plusieurs méthodes
Domaines de recherche

• nouveaux domaines d’applications : médecine, chimie


quantique, finance, ...
→ développer de nouveaux outils pour les étudier, de
nouvelles méthodes pour les approcher
• nouveaux outils informatiques, taille mémoire...
→ nouveaux algorithmes, calcul parallèle, méthodes
adaptatives
• couplage de modèles : exemple fluide-structure
→ décomposition de domaines, étude de l’interaction
• Interaction avec d’autres domaines : par exemple les
probabilités
→ propagation des incertitudes (fiabilité des calculs)
FIN

et maintenant ?

vos questions
ou
.... à Alexandra !

Vous aimerez peut-être aussi