Inscription / Connexion Nouveau Sujet
Niveau école ingénieur
Partager :

Euler explicite : je ne comprends pas

Posté par
TheDoci
20-06-09 à 12:24

Bonjour,

J'essaie de comprendre la méthode d'Euler explicite mais je n'arrive à rien, et je trouve qu'il y a très peu d'exemples sur le net.

Voici un exemple que j'ai trouvé sur cette page : http://sonia_madani.club.fr/Cloaque/Arithmurgistan/Temporel/ordre.html   (point 2. Exemple illustratif).

L'équation différentielle est :
\frac{dy}{dt} + y^2 = 0
 \\ y(t=0) = 1

La solution est donnée, c'est y(t) = \frac{1}{(1 + t)}

Seulement je ne comprends pas comment arriver à la solution.
J'ai bien compris que la formule est y_{i+1} = y_i + (x_{i+1} - x_i) f(x_{i+1}, y_{i+1})
mais je ne vois pas en quoi elle m'aide pour trouver y(t)

Merci d'avance pour votre aide, je cherche des exemples sur google depuis hier mais je trouve rien à ma portée

Posté par
jamo Moderateur
re : Euler explicite : je ne comprends pas 20-06-09 à 12:31

Bonjour,

la méthode d'Euler est une méthode d'approximation numérique de la solution.

En aucun cas elle ne sert à trouver la solution exacte de l'équation différentielle.

D'ailleurs, quand on connait la solution exacte, on n'utilise pas la méthode d'Euler !

Ici, le principe est d'étudier la méthode d'Euler sur une équation dont on connait la solution.
Ainsi, on peut comparer la solution issue de la méthode numérique avec la vraie solution, afin de voir si c'est précis ou non.

Posté par
TheDoci
re : Euler explicite : je ne comprends pas 20-06-09 à 13:13

ah ok merci. Donc je cherchais quelque chose que je risquais pas de trouver^^

Suite à ton explication j'ai tenté de voir ce que donne l'approximation par euler explicite sur l'exemple que j'ai donné dans mon premier post.


\frac{dy}{dt} + y^2 = 0
 \\ y(t=0) = 1

Je mets sous la bonne forme :
y' = -y^2
 \\ y(t=0) = 1

J'identifie x0 = 0 et y0 = 1
Avec la formule j'ai donc :
y1 = y0 + (x1 - x0) f(x1, y1)

donc y1 = 1 + (1-0)\times((-1)^2)
donc y1 = 2

Ca ne me semble pas du tout correct, surtout qu'en faisant de la même façon pour y2 j'obtiens 6...
Vous pouvez m'expliquer comment m'en servir svp ?

Posté par
jamo Moderateur
re : Euler explicite : je ne comprends pas 20-06-09 à 13:17

J'ai l'impression que tu as pris x1=1, en partant de x0=0.

Cela fait un pas de calcul égal à 1, ça me semble beaucoup, il faut prendre un pas de calcul plus petit pour avoir une précision acceptable.

Posté par
TheDoci
re : Euler explicite : je ne comprends pas 20-06-09 à 13:27

d'accord

Cette fois j'ai pris un pas de 0.1

Voici ce que ça me donne :
y1=1+0.1\times(-0.1^2) = 0.999
y2=0.999+0.1\times(-0.2^2) = 0.995
y3=0.995+0.1\times(-0.3^2) = 0.986

Est-ce que c'est juste ? Et après ça, est-ce qu'il faut faire quelque chose d'autre ? (enfin je veux dire si on me donne un exercice où il faut calculer euler explicite, généralement il est demandé quoi ?)

Posté par
jamo Moderateur
re : Euler explicite : je ne comprends pas 20-06-09 à 13:41

Tu peux vérifier avec la solution exacte donnée par : F(t)=1/(1+t)

F(0,1) = 0,909
F(0,2) = 0,833
F(0,3) = 0,769

Bon, visiblement, y a un problème quelque part ...

Posté par
TheDoci
re : Euler explicite : je ne comprends pas 20-06-09 à 13:45

ail

pourtant j'ai appliqué la formule il me semble.
A début je prends x1 = 0.1 pour avoir un pas de 0.1-0 = 0.1, puis je prends x2 = 0.2  (0.2-0.1 = 0.1)
Et pour f(xi, yi) je prends -(xi)²

Je pense qu'il y a une erreur dans ce que je prends pour f(xi, yi) parce que je ne comprends pas pourquoi y'a 2 variables. Mais je suis incapable de trouver l'erreur

Posté par
J-P Posteur d'énigmes
re : Euler explicite : je ne comprends pas 20-06-09 à 13:46

dy = -y² . dt

y(t1 + dt) = y(t1) - y(t1)².dt

Si dt est choisi = 0,1 :

y(0) = 1
y(0,1) = y(0) - (y(0))².dt = 1 - 1²*0,1 = 0,9
y(0,2) = y(0,1) - (y(0,1))².dt = 0,9 - 0,9²*0,1 = 0,819
y(0,3) = 0,819 - 0,819²*0,1 = 0,752
...
-----
A comparer avec les valeurs exactes calculées par 1/(1+t)

y(0,1) = 1/1,1 = 0,909...
y(0,2) = 1/1,2 = 0,833...
y(0,3) = 1/1,3 = 0,769...
-----
Si on veut que la méthode d'Euler donne des résulats moins éloignés des valeurs exactes, il faut choisir un pas plus petit.

Sauf distraction.  

Posté par
jamo Moderateur
re : Euler explicite : je ne comprends pas 20-06-09 à 13:49

En fait, tu te trompes dans l'utilisation de : y_{i+1} = y_i + (x_{i+1} - x_i) f(x_{i+1}, y_{i+1})

D'ailleurs, cette formule est fausse, ce serait plutôt :

y_{i+1} = y_i + (x_{i+1} - x_i) f(x_i, y(x_i))

avec : f(x_i, y(x_i)) = -y_i^2

Ce qui donne : y_{i+1} = y_i - (x_{i+1} - x_i) y_i^2

Donc :

y_1 = y_0 - 0,1 \times y_0^2 \approx 0,9
y_2 = y_1 - 0,1 \times y_1^2 \approx 0,819
y_3 = y_2 - 0,1 \times y_2^2 \approx 0,752

Ce qui est déjà plus cohérent avec les valeurs exactes :

Citation :
F(0,1) = 0,909
F(0,2) = 0,833
F(0,3) = 0,769

Posté par
jamo Moderateur
re : Euler explicite : je ne comprends pas 20-06-09 à 13:50

Voilà, nous sommes d'accord avec J-P.

Posté par
jamo Moderateur
re : Euler explicite : je ne comprends pas 20-06-09 à 13:52

Citation :
Je pense qu'il y a une erreur dans ce que je prends pour f(xi, yi) parce que je ne comprends pas pourquoi y'a 2 variables. Mais je suis incapable de trouver l'erreur


Il y a 2 variables, car on pourrait avoir une équation du genre :

\frac{dy}{dt} + y^2 = 5 x + 2

Donc, la fonction f dépendrait de la variable x mais aussi de y.

Posté par
TheDoci
re : Euler explicite : je ne comprends pas 20-06-09 à 13:57

d'accord merci bien

En fait je crois que j'ai pris la formule de euler implicite lors de mes calculs. Or il me semblait avoir lu qu'elle était pourtant plus précise. Je me trompe ?

Posté par
jamo Moderateur
re : Euler explicite : je ne comprends pas 20-06-09 à 14:41

Oui, la méthode implicite est meilleure.

Posté par
TheDoci
re : Euler explicite : je ne comprends pas 20-06-09 à 16:11

je vous embête encore un peu. J'essaie cette fois avec Euler implicite, dont la formule est :
y_{i+1}=y_i+(x_{i+1}-x_i)f(x_{i+1},y(x_{i+1}))

J'ai trouvé ça, avec un pas de 0.1 :
y_{1}=y_0+(x_{1}-x_0)f(x_{1},y(x_{1}))
y_{1}=y_0+(0.1)y_1
-y_{0}=y_1(0.1-1)
y_{1}=\frac{y_0}{0.9}
y_{1}=1.11111

Je me doute que je me suis encore lamentablement planté. Pouvez-vous me dire où svp ?

Posté par
TheDoci
re : Euler explicite : je ne comprends pas 20-06-09 à 16:14

Non c'est bon merci, je pense avoir résolu mon truc en faisant :
y_{1}=y_0+(0.1)(-y_1^2)



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1732 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !