Académique Documents
Professionnel Documents
Culture Documents
=
=
=
x) ,
n
y ,...,
2
y ,
1
(y
n
f
dx
n
dy
x) ,
n
y ,...,
2
y ,
1
(y
2
f
dx
2
dy
x) ,
n
y ,...,
2
y ,
1
(y
1
f
dx
1
dy
...
Systme :
=
1,0
y )
0
(x
1
y
Conditions initiales :
11
0
y y = )
0
(x
(x) F y=
=
=
=
n,0
y )
0
(x
n
y
2,0
y )
0
(x
2
y
1,0
y )
0
(x
1
y
...
=
=
=
(x)
n
F
n
y
(x)
2
F
2
y
(x)
1
F
1
y
...
Solutions :
TRANSFORMATION VERS UNE FORME CANONIQUE :
Exemple : x) ,
1 - n
dx
z
1 - n
d
,...,
2
dx
z
2
d
,
dx
dz
G(z,
n
dx
z
n
d
=
On pose :
= =
=
y
1
dy
dz
1
y z
=
dy
2
y
dx
1
dy
soit :
12
=
=
= =
= =
dx
n
dy
n
dx
z
n
d
n
y
dx
1 n
dy
1 n
dx
z
1 n
d
3
y
dx
2
dy
2
dx
z
2
d
2
y
dx
1
dy
dx
dz
...
=
=
x) ,
n
y ,...,
2
y ,
1
G(y
dx
n
dy
3
y
dx
2
dy
2
dx
...
Exemple : Mettre sous forme canonique lquation suivante
0 5z
dx
dz
x
dx
z d
x
dx
z d
2
2
2
3
3
3
= + +
d
dz
y
1
y
1
y z
= =
=
dx
d
2
y
1
y
=
13
1
dx
d
dx
d
dx
z d
dx
d
dx
z d
dx
d
dx
dz
4
y
x
4
y
3
y
3
3
3
y
2
y
2
2
2
y
1
y
=
=
= =
= =
= 1
dx
d
5
dx
d
dx
d
dx
4
y
1
y
2
y
2
4
y
3
y
3
4
y
3
y
3
y
2
y
2
=
=
=
+
Cadre de ce cours
Rsolution dun systme dEDO non linaires (problme valeurs initiales)
t) , (
dt
d
y f
y
=
0
y y = )
0
(t
A partir de
maintenant,
La variable
indpendante est t
14
+ =
t
0
t
,y)d f
0
y y(t) (
Notations :
y(t) ou y(t
j
) : solution exacte
y
j
: solution numrique
e
j
= y
j
- y(t
j
) : erreur
indpendante est t
PLAN
I. INTRODUCTION - RAPPELS
I.1 Ordre et non linarit
I.2 Problmes valeur initiale et aux limites
I.3 Forme Canonique
II. METHODES A UN PAS (CONSTANT)
15
II.1 Mthode dEuler explicite
II.2 Mthode dHeun
II.3 Mthodes de Runge-Kutta
III. METHODE A UN PAS (VARIABLE)
III.1 Principe
III.2 ode23 et ode45
METHODE A UN PAS (CONSTANT)
METHODES dEULER (ou mthode de la tangente)
f(y,t)
dt
dy
=
0
y )
0
y(t =
Le problme une quation est :
(t) R
)
0
(t
(n)
y
n
0
t t
...
)
0
(t y 2
t t ) (t y t t ) y(t y(t) +
+ +
+
+ =
|
|
|
|
| | | |
Dveloppement de Taylor :
16
(t)
n
R
n!
)
0
(t y
0
t t
...
2!
)
0
(t y 2
0
t t )
0
(t y
0
t t )
0
y(t y(t) +
+ +
+
+ =
|
|
\
|
|
\
|
|
|
\
|
)
0
,y
0
)f(t
0
t (t )
0
y(t y(t) +
Soit en sarrtant lordre 1:
On peut crire :
avec h = t
n+1
- t
n
)
n
,y
n
hf(t
n
y
1 n
y + =
+
)
n
,y
n
hf(t
n
y
1 n
y + =
+
METHODES dEULER EXPLICITE
17
2y t
dt
dy
=
|
|
\
|
+ =
2t
5e 1 2t
4
1
y
Exemple :
Intgration avec Euler de avec y(0)=1
Solution exacte est :
j t
j
Euler Solution Erreur Euler Erreur
h=0.2 Exacte h=0.2 h=0.1 h=0.1
18
h=0.2 Exacte h=0.2 h=0.1 h=0.1
0 0.0 1.0 1.0 0 1.0 0.0
1 0.2 0.6 0.6879 -0.0879 0.6500 -0.0379
2 0.4 0.4 0.5117 -0.1117 0.4620 -0.0497
3 0.6 0.32 0.4265 -0.1065 0.3777 -0.0488
Plus h plus erreur
METHODE dHEUN: principe
1
hk
j
y
j
y*
)
j
,y
j
f(t
1
k
+
=
=
1
1 1
Calcul du point y*
j
par Euler explicite
Calcul de la pente en (t , y* )
) ,y* f(t k =
19
Calcul final de y
j
: moyenne entre k1
et k2
2
2
k
1
k
h
j
y
j
y
+
+
=
1
Calcul de la pente en (t
j
, y*
j
)
)
j
,y*
j
f(t
2
k =
m
k
m
w ...
3
k
3
w
2
k
2
w
1
k
1
w
j
y
j
y
avec
+ + + + +
=
1
Formule gnrique
METHODES de RUNGE-KUTTA: principe
Mthode de Heun fait la moyenne entre 2 pentes ; les mthodes de
Runge-Kutta font la moyenne de m pentes
20
)
1 m
k
1) m(m
a ...
2
k
m2
a
1
k
m1
a
j
h,y
m
c
j
f(t
m
k
...
)
2
k
32
a
1
k
31
a
j
h,y
3
c
j
f(t
3
k
)
1
k
21
a
j
h,y
2
c
j
f(t
2
k
)
j
,y
j
f(t
1
k
+ + + +
=
+ +
=
+
=
=
1 1
1 1
1 1
1 1
Lordre de la mthode (m) dpend de lordre du dveloppement de
La srie de Taylor correspondante .
Exemple : Runge-Kutta ordre 2
)
1
k
21
a
j
h,y
2
c
j
f(t
2
k
)
j
,y
j
f(t
1
k
2
k
2
w
1
k
1
w
j
y
j
y
avec
+
=
=
+ +
=
1 1
1 1
1
21
Les termes w
1
, w
2
, c
2
et a
21
sont choisis par identification avec
les termes du dveloppement de Taylor a lordre 2. On trouve:
w
1
+ w
2
= 1
w
2
c
2
=
w
2
a
21
=
Soient 4 inconnues pour 3 quations , on doit en fixer une !
Ce choix est fait pour minimiser lerreur , ici c
2
= 1
)
1
hk
1 j
h,y
1 j
f(t
2
k
)
1 j
,y
1 j
f(t
1
k
2
k
1
k
2
h
1 j
y
j
y
avec
+
=
=
+ +
=
|
|
\
|
On obtient :
22
Cest la mthode dHeun !
Runge-Kutta dordre 4
)
1 j
,y
1 j
f(t
1
k
4
k
6
1
3
k
3
1
2
k
3
1
1
k
6
1
h
1 j
y
j
y
avec
=
+ + + +
=
|
|
|
\
|
23
)
3
hk
1 j
h,y
1 j
f(t
4
k
)
2
k
2
h
1 j
,y
2
h
1 j
f(t
3
k
)
1
k
2
h
1 j
,y
2
h
1 j
f(t
2
k
)
1 j
,y
1 j
f(t
1
k
+
=
+
=
+
=
=
Comparaison des mthodes dEuler, Heun et RK4
y
dt
dy
=
t
e y
=
Exemple :
Intgration de avec y(0)=1
Solution exacte est :
h EulerErreur HeunErreur RK4Erreur
0.2 4.02e-2 (31) 2.86e-3 (57) 5.80e-6 (129)
24
0.2 4.02e-2 (31) 2.86e-3 (57) 5.80e-6 (129)
0.1 1.92e-2 (61) 6.62e-4 (112) 3.33e-7 (254)
0.05 9.39e-3 (121) 1.59e-4 (222) 2.00e-8 (504)
0.025 4.65e-3 (481) 3.90e-5 (442) 1.22e-9 (1004)
0.0125 2.31e-3 (961) 9.67e-6 (882) 7.56e-11 (2004)
CONCLUSION : METHODE A UN PAS (CONSTANT)
3 mthodes : Euler, Heun, Runge-Kutta 4
prcision dpend de lordre
Euler : ordre 1
Heun : ordre 2
Runge-Kutta : ordre 4
25
Runge-Kutta : ordre 4
Cependant utilisation dordre suprieur nest
pas trs intressant
pour amliorer la prcision : rduire le pas h
comment fait un gophisicien pour intgrer
sur une priode d1 milliard dannes avec un
pas dune micro seconde ..
PLAN
I. INTRODUCTION - RAPPELS
I.1 Ordre et non linarit
I.2 Problmes valeur initiale et aux limites
I.2 Forme Canonique
II. METHODES A UN PAS (CONSTANT)
26
II.1 Mthode dEuler explicite
II.2 Mthode dHeun
II.3 Mthodes de Runge-Kutta
III. METHODE A UN PAS (VARIABLE)
III.1 Principe
III.2 ode23 et ode45
METHODE A UN PAS (VARIABLE)
PRINCIPE
Ide : trouver une mthode numrique qui va ajuster le pas
dintgration h au cours de la rsolution comment ?
Moyen : pour cela il faut estimer lerreur commise chaque
pas dintgration
27
Moyen : pour cela il faut estimer lerreur commise chaque
pas dintgration
Si lerreur est trop grande (par rapport un critre fix)
alors h est rduit
Si lerreur est petite (par rapport au critre fix) alors on
peut permettre daugmenter h pour aller plus vite
METHODE A UN PAS (VARIABLE)
PRINCIPE
Solution 1 :
calculer une solution un point donn avec 2 valeurs de h
diffrentes
si le rsultat est le mme alors on conserve la valeur
grande de h pour le pas suivant
si le rsultat est diffrent, on suppose que le meilleur
28
si le rsultat est diffrent, on suppose que le meilleur
rsultat est obtenu avec la petite valeur de h quon
conserve pour le pas suivant
Solution 2 :
Utiliser deux mthodes en parallle avec le mme pas h
mais avec des ordres diffrents!
Exemple : Mthode de Runge-Kutta-Fehlberg 45
METHODE A UN PAS (VARIABLE)
PRINCIPE
Calcul y
j
avec Runge-Kutta ordre 4 (avec h)
29
Calcul y
j
avec Runge-Kutta ordre 4 (avec h)
Calcul y
j
* avec Runge-Kutta ordre 5 (avec h)
Calcul
j
= y
j
- y
j
*
Si
j
< tolrance fixe alors on accepte y
j
Si
j
<< tolrance fixe alors on accepte y
j
et on augmente h
Si
j
> tolrance fixe alors on recommence avec h plus petit
Problme :
comme cest la mthode numrique qui choisit le pas dintgration, on
na pas la solution aux temps dsirs !
Il est alors ncessaire dinterpoler les rsultats
30
ode23 et ode45 sont des solveurs implants dans matlab
ode23 : Mthode de Runge-Kutta-Fehlberg 23
utilisation des mthodes de Runge-Kutta dordres 2 et 3
ode45 : Mthode de Runge-Kutta-Fehlberg 45
ODE23 et ODE45
31
utilisation des mthodes de Runge-Kutta dordres 4 et 5
[t,Y]=ode45 (modele,tfin,y0)
modele est le nom du fichier *.m (funtion matlab) o est dfini le
systme dEDO rsoudre
tfin est la valeur finale de la variable indpendante (temps final si
cest le temps) ; par dfaut, la valeur initiale est prise gale 0, si ce
nest pas le cas alors :
Utilisation dODE45
32
[t,Y]=ode45 (modele, [t0 tfin],y0)
y0 est un vecteur des conditions initiales
Y est une matrice qui contient le rsultat de lintgration; chaque
colonne correspond une variable et chaque ligne correspond une
valeur de la variable indpendante (vecteur t)
Le pas dintgration na pas besoin dtre fourni !!!
Le pas dintgration est ajust pour que :
< max (RelTol * |y
j
| , AbsTol)
Utilisation dODE45
est une estimation de lerreur locale produite par la mthode numrique
RelTol et AbsTol sont respectivement des tolrances relatives et absolues
fournies par lutilisateur (par dfaut 1e
-3
et 1e
-6
)
33
y
j
est la valeur calcule de la variable au j
me
pas de temps
Exemple : si y
j
= 100 alors max(1e
-3
* 100 , 1e
-6
) = 1e
-1
si y
j
= 1e
-5
alors max(1e
-3
* 1e
-5
, 1e
-6
) = 1e
-6
Utilisation dODE45
y
dt
dy
=
Exemple :
Intgration de entre 0 et 1 avec y(0)=1
tfin=1;
y0=1;
[t,y]=ode45(exemple,tfin,y0);
plot(t,y)
34
plot(t,y)
Dans exemple.m :
function dydt=exemple(t,y)
dydt=-y;
Options=odeset(paramtre1,valeur1, paramtre2,valeur2,)
[t,Y]=ode45 (modele,tfin,y0, options)
Les paramtres sont nombreux , par exemple:
RelTol : tolrance relative
AbsTol : tolrance absolue
Utilisation dODE45
Modification des paramtres de la mthode
35
AbsTol : tolrance absolue
MaxStep : pas maximal autoris
InitialStep : pas initial
Etc .
Travaux Dirigs (1)
Soit l'quation diffrentielle
y'(t)=y(t)+t , y(0)=1
36
1. Approcher la solution de cette quation en t=1
l'aide de la mthode d'Euler en subdivisant
l'intervalle de travail en 10 parties gales.
2. Trouver la solution exacte de cette quation
diffrentielle.
3. Comparer.
Travaux Dirigs (2)
Soit l'quation diffrentielle y(t)=y(t)-2(t/y),
y(0)=1
1. Approcher la solution de cette quation en t=0.2
l'aide de la mthode de Runge Kutta d'ordre 2,
37
l'aide de la mthode de Runge Kutta d'ordre 2,
avec un pas h=0.22.
Trouver la solution exacte de cette quation
diffrentielle.
3. Comparer.
Travaux Dirigs(3)
Soit l'quation diffrentielle du second ordre
{y(t)+2y(t)=2y(t) , t[a, b] y(a)=1 et y(a)=2
38
= =
41
3. Donner la solution exacte de (1), ainsi que y(0.2).
4. Appliquer la mthode d'Euler ce problme, crire l'algorithme
correspondant et donner l'approximation y de y(0.2) obtenue l'aide
d'un pas de discrtisation numrique h=0.1.
5. Rappeler l'erreur de la mthode d'Euler et la comparer l'erreur
commise sur le calcul de y(0.2); commentaires?.
METHODE A PAS LIES
PRINCIPE
Les mthodes un pas (fixe ou variable) consistaient calculer y
j
partir de la valeur value prcdemment en y
j-1
Le principe des mthodes pas lis consiste valuer y
j
partir de
plusieurs valeurs y
j-1
, y
j-2
, y
j-3
y
j-k
42
Mthode un pas :
Mthode pas lis :
=
j
t
k j
t
t)dt y f
k j
y
j
y , (
Avec les mthodes pas lis, f(y,t) va tre valu avec un
polynme dinterpolation
( ,
1
1
t
j
y y f y t ) d t
j j
t
j
= +
\
|
+ =
+
)
1
(
2
1
) (
2
3
1 n
y f
n
y f h
n
y
n
y
Mthodes dAdams Bashforth ( pas fixe):
k=1
k=2
45
|
\
+ 1
2 2
1 n
n n
n
|
|
\
|
+ =
+
)
2
(
12
5
)
1
(
12
16
) (
12
23
1 n
y f
n
y f
n
y f h
n
y
n
y
|
|
\
|
+ =
+
)
3
(
24
9
)
2
(
24
37
)
1
(
24
59
) (
24
55
1 n
y f
n
y f
n
y f
n
y f h
n
y
n
y
k=2
k=3
k=4
METHODE A PAS LIES
METHODE FERMEE
Principe :
on utilise cette fois-ci le point quon cherche (t
n+1
, f
n+1
) dans la
dtermination du polynme dinterpolation de degr k+1 (f
n+1
, f
n
, f
n-1
,
f
n-2
, , f
n-k+1
)
46
Problme : mthode implicite donc rsolution lourde
chaque itration .
)
1
(
1 +
+ =
+ n
y hf
n
y
n
y
|
|
\
|
+
+
+ =
+
) (
2
1
)
1
(
2
1
1
n
y f
n
y f h
n
y
n
y
|
|
+
+
+ =
+
) (
1
) (
8
) (
5
n
y f
n
y f
n
y f h
n
y
n
y
Mthodes dAdams Moulton ( pas fixe):
k=0
k=1
k=2
47
|
|
\
+
+
+ =
+
)
1
(
12
1
) (
12
8
)
1
(
12
5
1 n
y f
n
y f
n
y f h
n
y
n
y
|
|
\
|
+
+
+ =
+
)
2
(
24
1
)
1
(
24
5
) (
24
19
)
1
(
24
9
1 n
y f
n
y f
n
y f
n
y f h
n
y
n
y
k=2
k=3
METHODE A PAS LIES
METHODE PREDICTEUR-CORRECTEUR
Principe :
Utiliser les avantages des mthodes ouverte et ferme
tape 1: phase de prdiction
on prdit une valeur de par une mthode ouverte
tape 2: phase dvaluation
1
+ n
y
= Y t f f
48
tape 2: phase dvaluation
tape 3: phase de correction
on corrige la valeur de par une mthode ferme pour
trouver en utilisant
1
+ n
y
)
1
,
1
(
1
+ +
=
+ n
Y
n
t f
n
f
1 + n
y
1
+ n
f
METHODE A PAS LIES
METHODE PREDICTEUR-CORRECTEUR
Amliorations:
1. Phase de correction peut tre rpte plusieurs fois
2. Approximation de lerreur commise
49
2. Approximation de lerreur commise
mthode pas variable .
mthode ordre du polynme dinterpolation variable
METHODE A PAS LIES
METHODE PREDICTEUR-CORRECTEUR
Inconvnient Majeur:
Mthode non auto dmarrante !
Par exemple:
50
Par exemple:
Comment calcule-t-on y
1
, y
2
et y
3
?
on doit utiliser une mthode un pas !
|
|
\
|
+ =
+
)
3
(
24
9
)
2
(
24
37
)
1
(
24
59
) (
24
55
1 n
y f
n
y f
n
y f
n
y f h
n
y
n
y
METHODE PREDICTEUR-CORRECTEUR
EXEMPLE DE PRINCIPE
juste pour voir
cas o les polynmes dinterpolation sont dordre 1
Mthode ouverte dordre 1 : )
n
,y
n
hf(t
n
y
1 n
y + =
+
51
Mthode ferme dordre 1 : )
1 n
,y
1 n
hf(t
n
y
1 n
y
+ +
+ =
+
Cest Euler !!!
Cest
Euler implicite
on progresse du point n au point n+1 en utilisant la valeur
de la drive en n+1 (pas encore connue ! )
La mthode est implicite en ce sens quon doit rsoudre un
systme dquations algbriques
Mthode prdicteur-correcteur dordre 1 (appele Euler modifi):
)
prdit 1 n
,y
1 n
hf(t
n
y
corrig 1 n
y
)
n
,y
n
hf(t
n
y
prdit 1 n
y
, ,
,
+ +
+ =
+
+ =
+
52
Une valeur de y
n+1
est prdite par un Euler explicite
Cette valeur prdite est ensuite corrige par un Euler implicite.
La rsolution est alors explicite.
Lquation de correction peut tre envisage plusieurs fois .
ode113 solveur de type prdicteur-correcteur implant
dans matlab
ode113 : Mthode de Adams Bashforth Moulton
pas h variable
ordre de polynme variable (entre 1 et 13)
ODE113
[t,Y]=ode45 (modele,tfin,y0)
53
[t,Y]=ode45 (modele,tfin,y0)
modele est le nom du fichier *.m (funtion matlab) o est dfini le
systme dEDO rsoudre
tfin est la valeur finale de la variable indpendante (temps final si
cest le temps)
y0 est un vecteur des conditions initiales
Y est une matrice qui contient le rsultat de lintgration; chaque
colonne correspond une variable et chaque ligne correspond un
valeur de la variable indpendante (vecteur t)