|
1: Présentation
de la méthode d'Euler La
méthode d'Euler repose sur le principe suivant: un fonction
f
étant connu et dérivable sur un intervalle I, si a
est dans I, alors la meilleure fonction affine d'approximation de
f
au voisinage de a
est donnée par la fonction affine tangente de f
en a
dont une équation est:
t(x)
= f '(a)(x-a)
+ f(a)
Ainsi, si
h
est "petit" (proche de 0), alors le réel "a+h"
est proche de a
et le calcul de f(a+h)
peut être effectué, avec une erreur minimale, en calculant
t(a+h). On
peut substituer t
à f
au voisinage de a.
Ceci donne alors:
t(a+h)
= f '(a)(h)
+ f(a)
Exemples : Prenons f(x)
= x². f est dérivable sur R et
f '(x) = 2x. Prenons a = 1. Dans
ce cas, la meilleure fonction affine d'approximation de f
au voisinage de a est : t(x) = 2x -
1. Si on veut calculer une valeur approchée de f(1,01),
on est alors dans le cas où h = 0,01. La meilleure
approximation affine de f(1,01) est alors t(1,01)
= 1,02.
Cette remarque ne présenterait
pas un grand intérêt si on limitait les calculs aux
cas où f est connue explicitement, c'est à
dire, si l'expression de f(x) en fonction de x
est connue parfaitement. En revanche, si f est connue
par sa dérivée ou par la donnée d'un équation
qui ne permet pas de déterminer l'expression de f(x),
alors la remarque inititale permet tout de même de se faire
une idée sur les valeurs que prend f.
Imaginons que l'on connaisse
la dérivée de f . Ceci est fréquent
dans un problème de physique. La fonction f ' est
donc connue et l'on connait en plus f(a) = yo. On
a donc le problème suivant:
- On connait f
'(x).
- On connait f(a)
= yo.
- Peut-on connaître
une valeur approchée de f(x) si x
est voisin de a ?
Pour h "petit",
le réel "a+h" est voisin de a
donc les réels: f(a+h)
et t(a+h)
= f '(a)(h) + f(a) sont "voisins". Si
on veut avoir une valeur approchée de f(a+h)
, on peut donc calculer directement yh
= f '(a)(h) + f(a). On a alors
f(a+h) ~ f '(a)(h) + f(a).
Exemples: Imaginons
que f '(x) = cos(x²) et que f(0)
= 0. En particulier, f '(0) = cos(0) = 1. Donc la meilleure
approximation affine de f au voisinage de 0 est: t(x)
= x Pour h voisin de 0, f(h)
~ t(h) ou encore f(h)
~ h . Si on choisit h = 0,1, on peut
alors dire qu'une approximation de f(0,1) est 0,1. Autre exemple: Si on
sait que f '(x) = 1/x et que f
(1) = 0. La meilleure approximation affine de f au voisinage
de 1 est: t(x)
= x - 1 Pour h voisin de 0, on a alors f(1+h)
~ t(1+h) ou encore f(1+h) ~
h. Si on choisit h = 0,05 , on peut alors dire
qu'une
approximation de f(1,05) est 0,05.
La méthode d'Euler
consiste simplement à réintérer ce principe.
2: Un exemple contrôlé
par une fonction connue. Vous connaissez f(x)
= x² + x et f '(x) = 2x
+1 mais faisons comme si on ne connaissait que f '(x)
et f(1) = 2. Choississons une valeur h assez petite
, par exemple : h = 0,1 (h est ce que l'on appelera
le "pas" de la méthode) Nous avons donc deux
valeurs de départs: x0
= 1 et y0 = 2 qui correspondent
aux premières données f (1) = 2. Nous pouvons
alors calculer une valeur approchée de f(h)
en utilisant le principe précédent: f(1+h)
= f(1,1) = f '(1)h + f(1) = 2,3 On
a alors deux nouvelles valeurs: x1
= 1,1 et y1 = 2,3 y1
est une approximation de f( x1 ).
Mais on peut alors recommencer
en partant maintenant des valeurs: x1
= 1,1 et y1 = 2,3 Le problème
est que y1 = n'est pas la valeur exacte de f( x1+h)
. Si on veut une valeur approchée de f( x1+h)
, on utilise alors une "approximation" de la fonction
affine tangente en x1 en prenant la fonction
suivante: t1(x1+h)
= f '(x1)(h) + y1
. En d'autres termes, on utilise la fonction affine tangente
en remplaçant f( x1) par
son approximation y1 . On peut alors dire
qu'une approximation de f( x1+h)
est :
f( x1+h) ~ t1(x1+h)
= f '(x1)(h) + y1
. On prend sa machine et on cacule alors: t1(x1+h)
= f '(x1)(h) + y1
= 2,62 Une valeur approchée de f( x1+h) est
donc : f( x1+h) ~
2,62.
On pose alors x2
= x1+h = 1,2 et y2 =
2,62. Et on recommence l'étape précedente mais
en partant maintenant de ces deux valeurs. On obtient alors une
valeur approchée de f(x2+h)
en calculant: t2(x2+h)
= f '(x2)(h) + y2
. On pose x3 = x2+h
et y3 = f '(x2)(h)
+ y2 . Le calcul machine donne :
x3 = x2+h = 1,3
et y3 = f '(x2)(h)
+ y2 = 2,96 Si on compare maintenant
avec les valeurs exactes, que l'on peut ici, car on connait la fonction
f, on a alors:
|
Valeur de xi
|
Valeur de f(xi)
|
Valeur approchée
|
|
x0 = 1
|
f(x0) = 2
|
y0 = 2
|
|
x1 = 1,1
|
f(x1) = 2,31
|
y1 = 2,3
|
|
x2 = 1,2
|
f(x2)= 2,64
|
y2 = 2,62
|
|
x3 = 1,3
|
f(x3)= 2,99
|
y3 = 2,96
|
On peut alors constater que les valeurs approchées "collent"
à peu près avec les valeurs exactes.
Prenons maintenant un exemple où on ne connait par la
fonction f.
3:
Un autre Exemple
Imaginons que la
fonction f soit dérivable sur R et vérifie
la relation suivante: "Pour
tout x réel, f '(x) = f ²(x)
et f (0) = 1"
Nous avons les deux valeurs de départs x0
= 0 et y0 = 1 qui correspondent
aux conditions initiales du problème f(x0)
= y0. On veut obtenir une tabulation de f
de "pas" h = 0,05. C'est à dire, on veut avoir des
valeur approchées de f(x0 + kh)
pour k = 1 , 2 , ....
On définit alors les deux suites suivantes :
- Pour tout k entier, xk+1
= xk + h.
- Pour tout k entier , yk+1
= f ' (xk)(h) + yk
- x0= 0 , y0
= 1 , h = 0,05
Comme "Pour
tout x réel, f '(x) = f ²(x)
" , on a alors : "
yk+1 = ( yk)²(h)
+ yk "
Il suffit alors de programmer le calcul de ces suites sur une
machine pour obtenir des valeurs approchées de f
(xk) . Ces valeurs approchées sont
données par (yk ).
|
|
Voilà les
résultats obtenus ici:
|
k
|
xk
|
yk
|
|
0
|
0 (Valeur de départ)
|
1 (Valeur de départ)
|
|
1
|
0,05
|
1,05
|
|
2
|
0,1
|
1,105125
|
|
3
|
0,15
|
1,166190063
|
|
4
|
0,2
|
1,234190026
|
|
5
|
0,25
|
1,310351277
|
|
6
|
0,3
|
1,396202300
|
|
7
|
0,35
|
1,493671343
|
On a alors une tabulation de f de pas h = 0,05 , alors
que la fonction f est encore inconnue.
On peut obtenir une meilleure précision de f en
utilisant un "pas" h plus petit.
|
Programme
Calcul:
- Input
X , Y (on donne les valeurs de départs)
- 0,05
-> h (on fixe de pas h)
- Label
0
- X+h
=> X
- Y^2*h
+ Y => Y
- Affichage
X et Y
- Goto
0
|
|
Dans le cadre d'une TS, il s'agir simplement de voir que la connaissance
de f ' (x) ou plus généralement, d'une
relation du type f
'(x) = F(x , f(x)) , F
est une fonction à deux variables (x , y) et d'une condition initiale permet d'obtenir
une tabulation de la fonction f en utilisant une machine
à calculer.
On présente alors la méthode d'Euler de la façon
suivante:
- On connait f '(x) et une condition initiale
portant sur f : f(x0) = y0.
- On fixe un pas h réel.
- On pose alors
xk+1
= xk + h yk+1
= F (xk , yk)(h) + yk .
- Alors yk+1 est une approximation
de f(xk+1).
|
|
y ' = F(x,y)
, c'est y ' est une fonction de (x,y)
x0 et y0 sont les valeurs initiales, elles sont telles que y (x0) = y0.
h est le pas
de la méthode. Dans l'exemple, h = 0,1
Dans l'exemple
fourni, vous avez y ' = x/2 + y/4x. C'est à
dire F(x,y) = y + x. Conditions Initiales : y(0)
= 1
Pour modifier l'origine
ou l'échelle
des repères, déplacer le point O ou le point I à l'aide
de la souris.
Fonctions
reconnues: sin , cos, ln , exp, asin, acos, atan,
abs, sqrt, int. sqrt =racine carrée : Tapez
par exemple sqrt(x+y) Fonction "exposant":
Tapez par exemple x^3 int = partie entière
: Tapez par exemple int(x-y) Constantes reconnues:
pi et e
|
Exemples de Problèmes:
- L'équation f '(x)f(x)
= 1 avec la condition initiale f(0) = 1, f étant
définie sur [0;+oo[.
A priori, rien ne dit
qu'il existe une telle fonction, ni qu'elle soit unique! mais
sous l'hypothèse de son existence et et son unicité,
on peut dire que f est solution de y ' = 1/y
, avec xo = 0 et yo = 1. Nous somme alors
dans le cas où F est définie par : F(x,
y ) = 1/y. La méthode d'Euler de pas
"pas" h , conduit alors au calcul des suites
suivantes: xo = 0 , yo = 1 (valeurs initiales
des suites) , fixer une valeur pour h
. Pour tout k entier, xk+1
= xk + h , yk+1
= h/yk + yk .
Le pendule: L'équation différentielle du
mouvement d'un pendule
simple en supposant qu'il n'y ait pas d'amortissement est obtenue en appliquant
le principe fondamental de la dynamique. m est la masse placée à
l'extrémité M du pendule. On repère la position de m à un instant
donné par la longueur s de l'arc de cercle OM. On note q l'angle que fait le fil du pendule avec la verticale.
L'équation différentielle
qui régit le mouvement est la suivante : De façon plus précise P = m g et F
= m g sin(q) = m g où g
est l'accélération tangentielle de la masse m. Comme l'accélération
angulaire q" vérifie g = - lqa" on obtient
: : q" = - (g / l) sin(q). On
a donc une équation différentielle du type y" = ksin(
y). où k est une constante réelle non nulle. A
priori, on ne sait résoudre une telle équation. Mais
il est classique d'étudier le cas où les oscillations
sont petites, c'est à dire, le cas où q est
voisin de 0. On consièdre alors que q ~
sin(q) et
on écrit que l'équation du pendule est : q" = - (g / l) q. C'est
alors une équation différentielle linéaire
du second ordre.
Sinon, on peut tout aussi bien utiliser la
méthode d'Euler pour avoir une solution "numérique"
|