You are on page 1of 62

Rsolution des

quations Diffrentielles
Nicolas Holzschuch
Cours dOption Majeure 2
Nicolas.Holzschuch@imag.fr
Rsolution des quations Diffrentielles
Trs inspir par le cours:
A. Witkin & D. Baraff,
Physically Based Modelling,
cours Siggraph 2001
http://www.pixar.com/companyinfo/research/pbm2001/index.html
(pointeur sur la page web)
Et surtout :
Differential Equation Basics
Implicit Methods
Plan
Retour sur le TD4
Introduction aux quations diffrentielles
Mthodes explicites
Pas variable
Mthodes implicites
Conclusion
Retour sur le TD4
Plan
Retour sur le TD4
Introduction aux quations diffrentielles
Mthodes explicites
Pas variable
Mthodes implicites
Conclusion
quations Diffrentielles Ordinaires
ODE
Ordinary Differential Equations
Lien entre drive et valeur de la fonction
Ordinaires : fonction dune variable
Diffrent des EDP
quations aux Drives Partielles
Fonction de plusieurs variables

f ' (x) = F( f (x))
quations Diffrentielles
Forme gnrique ODE premier degr :
Notes:
t reprsente le temps
f variable en fonction du temps
Parfois Y au lieu de X, parfois x au lieu de t,
Souvent X=(x,y)

dX(t)
dt
= f X(t),t
( )
X : R R
n
f : R
n
R R
n
quoi a sert ?
tout ou presque !
Chimie
Physique
Ingnierie
conomie
galement en Informatique Graphique :
Animation, modlisation, rendu
ODE systme de base
EDP application des mthodes dODE
Rsolution des quations Diffrentielles
Dj vues
Le plus souvent, rsolution analytique
Nombreux problmes sans solution analytique
Par ex. pb. 3 corps
Rsolution numrique

a y + b y + cy = 0
D = b
2
- 4ac
D > 0, y = le
r
1
x
+ me
r
2
x
D < 0, r
1
=a + ib, r
2
=a -ib, y = e
ax
( pcos(bx) + qsin(bx))
D = 0, y = (lx + m)e
rx





Rsolution numrique
tant donne la fonction f(X,t), calculer X(t)
Le plus souvent, valeur initiale :
Valeur X(t
0
) = X
0
Trouver X(t) pour t > t
0
galement :
problme aux limites, contraintes

dX(t)
dt
= f X(t),t
( )
Rsolution pour lanimation
Pour lanimation, srie de valeurs
chantillons de la fonction X(t)
Par exemple, images dune animation

X(t) = X
0
t = t
0
dX(t)
dt
= f X(t),t
( )
t t
0


X(t
i
) t
i
= t
0
, t
1
, t
2
,K
Champ de vecteurs
f(X,t) est un champ de vecteurs :
ventuellement variable en fonction du temps
Champ de vecteurs
f(X,t) est un champ de vecteurs :
X(t) est un chemin dans le champ
trajectoire
X
0
ODE dordre plus lev
Par exemple, dynamique = ODE dordre 2 :
On se ramne une ODE dordre 1 :

d
2
dt
2
x =
1
m
F

d
dt
x(t) = v(t)
d
dt
v(t) =
1
m
F(x,v, t)
Espace des phases
Equation de degr 1 :
deux dimensions
Remplace quation de degr 2 une dimension

X=
x
v






f (X, t) =
v
1
m
F(x,v, t)








Pour une particule 3D
ODE, de degr 1, de dimension 6 :

X=
p
x
p
y
p
z
v
x
v
y
v
z


















f (X, t) =
v
x
v
y
v
z
1
m
F
x
(X, t)
1
m
F
y
(X, t)
1
m
F
z
(X, t)
























Pour un ensemble de particules 3D


X=
p
x
1
p
y
1
p
z
1
v
x
1
v
y
1
v
z
1
p
x
2
p
y
2
p
z
2
v
x
2
v
y
2
v
z
2
M








































f (X, t) =
v
x
1
v
y
1
v
z
1
1
m
F
x
1
(X, t)
1
m
F
y
1
(X, t)
1
m
F
z
1
(X, t)
v
x
2
v
y
2
v
z
2
1
m
F
x
2
(X, t)
1
m
F
y
2
(X, t)
1
m
F
z
2
(X, t)
M








































a reste un chemin
Chemin dans lespace des phases :
Pour nous, cest un tableau de nombres
X
0
Ide intuitive : par tapes
tat courant X donn
Calculer f(X,t) ltat
courant (ou proximit)
Avancer dun pas
Prendre nouvelle valeur X
La plupart des mthodes
suivent ce schma
Note : quations intgrale
Lquation diffrentielle :
Est quivalente lquation intgrale :

X(t) = X
0
t = t
0
dX(t)
dt
= f X(t),t
( )
t t
0

X(t) = X
0
+ f X(t),t
( )
dt t t
0
t
0
t

Plan
Retour sur le TD4
Introduction aux quations diffrentielles
Mthodes explicites
Pas variable
Mthodes implicites
Conclusion
Mthode dEuler
La plus simple
La plus intuitive
Pas donn h
tant donn X
0
=X(t
0
), avancer dun pas :
Approximation linaire par morceaux de la trajectoire

t
1
= t
0
+ h
X
1
= X
0
+ hf (X
0
, t
0
)
La taille des pas
Contrle la prcision
Petits pas :
Suit la courbe de plus prs
Pour lanimation :
Beaucoup de pas par image
Mthode dEuler : prcision
Suit la tangente, sloigne de la courbe
par exemple :
Solution exacte : un cercle
Euler part en spirale, mme avec pas trs petit

f (X, t) =
-y
x







X(t) =
rcos(t + k)
rsin(t + k)






Mthode dEuler : instable
La solution exacte est une exponentielle :
En fonction de la taille du pas
Plus k est grand, plus h doit tre petit

f (x, t) = -kx

x(t) = x
0
e
-kx

x
1
= x
0
(1- kh)
h 1/ k ok
h >1/k oscillations +/ -
h > 2/k divergence





Analyse de lerreur
Srie de Taylor :
La mthode dEuler approxime linairement :
Pas divis par 2, erreur divise par 4
Deux fois plus de pas
Erreur totale divise par 2
Approximation dordre 1 : prcision en O(h)
Nombre dtapes en 1/prcision


X(t
0
+ h) = X(t
0
) + h
d
dt
X(t)
( )
t
0
+
h
2
2!
d
2
dt
2
X(t)
( )
t
0
+
h
3
3!
d
3
dt
3
X(t)
( )
t
0
+L

X(t
0
+ h) = X(t
0
) + hf (X
0
, t
0
), Erreur en O h
2
( )
Mthodes dordre 2
Prendre un terme de plus dans la srie :
Drivation :

X(t
0
+ h) = X(t
0
) + h
d
dt
X(t)
( )
t
0
+
h
2
2!
d
2
dt
2
X(t)
( )
t
0
+ O h
3
( )

d
2
dt
2
X(t)
( )
t
0
=
d
dt
d
dt
X(t)
( ) ( )
t
0
=
d
dt
f X(t),t
( ) ( )
t
0
=

X
f X(t), t
( ) ( )
X
0
d
dt
X(t)
( )
t
0
+

t
f X
0
, t
( ) ( )
t
0
=

X
f X(t), t
( ) ( )
X
0
f X
0
, t
0
( )
+

t
f X
0
, t
( ) ( )
t
0
Mthodes dordre 2 (suite)
On ne veut pas calculer les drives de f(X,t)
On utilise encore Taylor :
On prend Dx=hf(X
0
,t
0
), Dt=h :

f (X
0
+ DX, t
0
+ Dt)
= f (X
0
, t
0
) +

X
f (X, t
0
)






X
0
DX+

t
f (X
0
, t)






t
0
Dt + O(D
2
)

f (X
0
+ hf (X
0
, t
0
), t
0
+ h) - f (X
0
, t
0
)
=

X
f (X, t
0
)






X
0
hf (X
0
, t
0
) +

t
f (X
0
, t)






t
0
h + O(h
2
)
= h
d
2
dt
2
X(t)






t
0
+ O(h
2
)
Mthodes dordre 2 (suite)
On combine :
Posons :
Alors :
Mthode du Trapze, ou Euler amlior.

X(t
0
+ h) = X(t
0
) + h
d
dt
X(t)
( )
t
0
+
h
2
2!
d
2
dt
2
X(t)
( )
t
0
+ O h
3
( )

h
d
2
dt
2
X(t)






= f (X
0
+ hf (X
0
, t
0
), t
0
+ h) - f (X
0
, t
0
) + O(h
2
)

f
0
= f (X
0
, t
0
)
f
1
= f (X
0
+ hf
0
, t
0
+ h)

X(t
0
+ h) = X
0
+
h
2
( f
0
+ f
1
) + O(h
3
)
Mthodes dordre 2 (suite)
On aurait pu aussi prendre
Dx=(h/2)f(X
0
,t
0
), Dt=h/2 :
Et on rarrange de la mme faon, on pose :
On obtient :
Mthode du point milieu

f
0
= f (X
0
, t
0
)
f
m
= f (X
0
+
h
2
f
0
, t
0
+
h
2
)

X(t
0
+ h) = X
0
+ hf
m
+ O(h
3
)
Mthodes dordre 2
Point milieu :
1/2 pas Euler
valuer f en X
m
1 pas avec f
m
Trapze :
1 pas Euler
valuer f
l
1 pas avec f
l
Moyenne
Mthode du point milieu
Note : programmation
Mthode dEuler
appels f(X,t) pour X sur la position courante
f peut utiliser la position courante
Variables globales
Facile crire
Autres mthodes :
Plusieurs appels f(X,t)
Par sur la position courante
f ne doit pas utiliser ni modifier la position
Passage de paramtres
Plus difficile crire
Efficacit
valuer f(X,t) est ltape la plus coteuse
Mthodes dordre 2 font 2 valuations par pas
2 fois plus cher ?
prcision donne :
Nombre de pas en 1/sqrt(prcision)
Rsultat : rentable
Runge-Kutta
Mme principe, des ordres plus levs
Ordre 4 :
Cest ce quon utilise en gnral

f
0
= f (X
0
, t
0
)
f
1
= f (X
0
+
h
2
f
0
, t
0
+
h
2
)
f
2
= f (X
0
+
h
2
f
1
, t
0
+
h
2
)
f
3
= f (X
0
+ hf
2
, t
0
+ h)
X(t
0
+ h) = X
0
+
h
6
( f
0
+ 2 f
1
+ 2 f
2
+ f
3
)
Plan
Retour sur le TD4
Introduction aux quations diffrentielles
Mthodes explicites
Pas variable
Mthodes implicites
Conclusion
Pas variable
Comment choisir le pas h ?
Trop large : erreurs, instabilit, divergence
Trop petit : on navance pas, long temps de calcul
On veut un pas idal :
Aussi grand que possible sans trop derreur
Li aux raideurs des quations
Le pas idal peut varier au cours du temps
Pas variable
Le pas idal peut varier, adaptons-nous :
grand pas dans les endroits faciles
petit pas dans les endroits difficiles
Adapter la taille du pas aux difficults
Automatiquement,
En cours de rsolution, en fonction des calculs
Comment dcider ?
Pas variable automatique
On part avec un pas h
On fait une itration,
On estime lerreur commise
Erreur grande :
On diminue h,
On recommence
Erreur petite :
On accepte le rsultat,
ventuellement on augmente h
Comment estimer lerreur?
On calcule litration par deux mthodes :
Euler avec un pas h
Euler avec deux pas h/2
Erreur estime = diffrence des deux valeurs :
Err=|X
a
-X
b
|
Ce nest quune estimation :
Facile calculer
Peut tre prise en dfaut
Raisonnablement efficace
Choix dun nouveau pas h
Pour une mthode dordre j, erreur en O(h
j+1
) :
Tolrance donne tol
En pratique :
On prend h un peu en dessous :
On ne change pas trop vite :
On a des limites absolues :

err = Ch
old
j +1
tol = Ch
new
j +1
C
err
h
old
j +1

tol
h
new
j +1
h
new
= h
old
tol
err






1
j +1

h
new
= h
old
(0.8(tol /err))
1
j +1

h
new
0.1h
old
,2.0h
old
[ ]

h
new
h
min
, h
max
[ ]
Pour lanimation
On a besoin des valeurs intervalles rguliers
On peut sassurer de ne pas dpasser limage
Valable si h << df
On peut dpasser limage, puis interpoler en
arrire :
Valable si hdf

t
f
1
, t
f
2
,... t
f
i
= t
f
i -1
+ df

h min(h
min
, t
f
i
- t)

X(t
f
i
) =
t
f
i
-(t - h)
h
(X(t) - X(t - h)) t - h < t
f
i
< t
Plan
Retour sur le TD4
Introduction aux quations diffrentielles
Mthodes explicites
Pas variable
Mthodes implicites
Conclusion
Mthodes implicites
Exemple du ressort de rappel :
f(x,t)=-kx, x(t
0
) = c
Dcroissance exponentielle
Toutes les mthodes explicites sont instables pour
k grand
Mthodes pas variable :
Nexplose pas
Le pas est trs petit (temps de calcul trs long)
Mthodes implicites
Autre exemple :
Une particule qui se dplace sur laxe des x
y est presque nul, rien ne se passe
Mais les mthodes explicites doivent travailler
des pas trs petits
On navance pas

f
x
y






, t






=
1
-ky






. X
0
c
0.00001






quations rigides
Exemples de systmes rigides :
Pas de dfinition simple
Terme en -k grand
chelle diffrente suivant les variables
Problme difficile et instable
Souvent avec ressorts de rappel constante leve
viter, si possible :
En gnral impossible
Instabilit lie la partie la plus rigide de la scne
Euler Implicite
On connat X
0
, t
0
, h, t
1
=t
0
+h
Mthode dEuler explicite :
Mthode dEuler implicite :
On utilise la drive la fin du pas
X
1
est dfini par une quation implicite

X
1
= X
0
+ hf (X
0
, t
0
)

X
1
= X
0
+ hf (X
1
, t
1
)
Euler implicite, suite

X
1
= X
0
+ DX
X
1
= X
0
+ hf (X
1
, t
1
)
X
0
+ DX= X
0
+ hf (X
0
+ DX, t
1
)
DX= hf (X
0
+ DX, t
1
)
1
h
DX= f (X
0
, t
1
) +

X
f (X, t
1
)






X
0
DX+ O(DX
2
)
1
h
I - J(X
0
, t
1
)
( )
DX= f (X
0
, t
1
)
DX=
1
h
I - J(X
0
, t
1
)
( )
-1
f (X
0
, t
1
)
Euler implicite, suite
Mthode dEuler implicite :
Besoin de calculer J(X,t) en plus de f(X,t)
Inversion de matrice nn chaque tape
J souvent creuse, inverse en O(n)
J souvent mal conditionne ou singulire
Programme plus compliqu
Mais systme trs stable

X
1
= X
0
+
1
h
I - J(X
0
, t
1
)
( )
-1
f (X
0
, t
1
)
Stabilit pour Euler implicite
Dcroissance exponentielle :
Avec la mthode dEuler implicite :
Pas de limites sur h
Pas arbitrairement grands sans divergence

f (x, t) = -kx J(x, t) = -k

x
1
= x
0
+
1
h
- J(x
0
, t)
( )
-1
f (x
0
, t)
= x
0
+
1
h
+ k
( )
-1
(-kx
0
)
= x
0
+
h
1+ hk






(-kx
0
)
= x
0
1
1+ hk






Prcision/stabilit
On a augment la stabilit
La prcision reste faible
Comme lexplicite, dailleurs
Tendance couper les tournants :
Spirale vers lintrieur au lieu de lextrieur
Diminue les hautes frquences
Dans les simulations physiques, dissipation
dnergie
Trapze implicite
Trapze explicite :
Trapze implicite :
Un demi-pas en arrire, un demi-pas en avant
Rencontre des demi-pas

X(t
0
+ h) = X
0
+
h
2
( f
0
+ f
1
) + O(h
3
)
X
1
-
h
2
f (X
0
+ hf (X
0
, t
0
), t
1
) X
0
+
h
2
f (X
0
, t
0
)

X
1
-
h
2
f (X
1
, t
1
) = X
0
+
h
2
f (X
0
, t
0
)
Trapze implicite, suite
Comme pour Euler implicite :

X
0
+ DX= X
0
+
h
2
f (X
0
, t
0
) +
h
2
f (X
0
+ DX, t
1
)
2
h
DX= f (X
0
, t
0
) + f (X
0
, t
0
) + J(X
0
, t
1
)DX
( )
+ O(DX
2
)
DX=
2
h
I - J(X
0
, t
1
)
( )
-1
f (X
0
, t
0
) + f (X
0
, t
1
)
( )

X
1
= X
0
+
2
h
I - J(X
0
, t
1
)
( )
-1
f (X
0
, t
0
) + f (X
0
, t
1
)
( )
Point-milieu implicite
Point-milieu explicite :
Point-milieu implicite :
La tangente au milieu du dbut et de la fin doit
passer par le dbut et la fin.

X
1
= X
0
+ hf (
1
2
X
0
+
1
2
(X
0
+ hf (X
0
, t
0
)),t
0
+
h
2
)

X
1
= X
0
+ hf (
1
2
(X
0
+ X
1
),t
0
+
h
2
)
Point-milieu implicite, suite
Comme pour Euler et trapze :

X
0
+ DX= X
0
+ hf (X
0
+
1
2
DX, t
0
+
h
2
)
1
h
DX= f (X
0
, t
0
+
h
2
) + J(X
0
, t
0
+
h
2
)
1
2
DX
( )
+ O(DX
2
)
DX=
1
h
I -
1
2
J(X
0
, t
0
+
h
2
)
( )
-1
f (X
0
, t
0
+
h
2
)

X
1
= X
0
+
1
h
I -
1
2
J(X
0
, t
0
+
h
2
)
( )
-1
f (X
0
, t
0
+
h
2
)
Runge-Kutta implicite
quations dordre 2
Thoriquement, doublement de la dimension :
Avec mthodes implicites, matrice 2n2n
On peut passer matrice nn

d
2
dt
2
x =
1
m
F

X=
x
v






f (X, t) =
v
1
m
F(x,v, t)








ODE dordre 2 et mthodes implicites
Matrice nn avec solution en DV
Ensuite, DX=h(V
0
+ DV)

DX
DV






= h
V
0
+ DV
f (X
0
+ DX, V
0
+ DV)






f (X
0
+ DX, V
0
+ DV) = f (X
0
) +

X
f (X, V)






(X
0
,V
0
)
DX+

V
f (X, V)






(X
0
,V
0
)
DV
1
h
DV = f (X
0
) +

X
f (X, V)






(X
0
,V
0
)
h V
0
+ DV
( )
+

V
f (X, V)






(X
0
,V
0
)
DV
I - h

V
f (X, V)






(X
0
,V
0
)
- h
2

X
f (X, V)






(X
0
,V
0
)








DV = h f (X
0
) + h

X
f (X, V)






(X
0
,V
0
)
V
0








Plan
Retour sur le TD4
Introduction aux quations diffrentielles
Mthodes explicites
Pas variable
Mthodes implicites
Conclusion
En rsum
Plusieurs mthodes de rsolution
Il en existe beaucoup dautres :
Mthodes pas lis : les valeurs voisines ont une
influence
prdiction/correction, valeurs limites
Ordre adaptatif
Plus le problme est compliqu, plus il faut
comprendre la thorie
Beaucoup de thorie
Heureusement, il y a la bibliothque
Comparatif
Runge-Kutta dordre 4 :
Souvent la rponse par dfaut
Bon rapport qualit/prix
Mais pas une rponse universelle !
Euler :
Beaucoup de dfauts
Dconseille pour presque tout
Mais tellement rapide implmenter
Et si a marche ?
Tout va mal si
La fonction f nest pas lisse
Aucune de ces mthodes ne peuvent traiter les
discontinuits
La taille du pas descend jusquau minimum
(pour les mthodes pas adaptatif)
La solution peut avoir des discontinuits :
Choc rigide entre solides, impulsion
Comment faire ?
Pour lanimation
Beaucoup dapplications :
Lois de la dynamique appliques aux objets
Animation sans animateur
Mais aussi sans contrle
Systmes de particules : grande dimension
Lessentiel : que le mouvement soit beau
La prcision physique est secondaire
Un outil, parmi dautres

You might also like