1: Présentation de la méthode d'Euler
L
a 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 fx1 ).

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 fx1+h) .
Si on veut une valeur approchée de fx1+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 fx1) par son approximation y1 .
On peut alors dire qu'une approximation de fx1+h)  est :    fx1+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 fx1+h)  est donc : fx1+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:

  1. Input X , Y  (on donne les valeurs de départs)
  2. 0,05 -> h (on fixe de pas h)
  3. Label 0
  4. X+h => X
  5. Y^2*h + Y => Y
  6. Affichage X et Y
  7. 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).
Votre navigateur ne supporte pas les appliquettes (applets) dommage ! C'est peut-être un problème de configuration.  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:

  1. 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 gg 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"