Simulez des systèmes physiques avec la méthode d'Euler

a marqué ce sujet comme résolu.

Bonjour à tous,

J’ai commencé (il y a 2 heures) la rédaction d’un tutoriel dont l’intitulé est Initiation à la simulation numérique avec la méthode d’Euler.

J’aimerais obtenir un maximum de retour sur celui-ci, sur le fond ainsi que sur la forme, afin de proposer en validation un texte de qualité.

Si vous êtes intéressé, cliquez ci-dessous

Merci d’avance pour votre aide


J’ai eu une envie soudaine d’écrire une initiation à la simulation numérique pour les débutants (lycéen typiquement, c’est là que j’ai appris les rudiments), du coup j’ai commencé à écrire un petit quelque chose. Si vous avez des commentaires sur le fond, n’hésitez pas. Les deux premiers extraits sont plutôt bien avancés ; le dernier est en gestation.

+1 -0

Salut,

J'ai moi aussi entrepris la rédaction d'un tutoriel sur le sujet. Je vais voir si j'ai le temps de le mettre sur ZdS. Si tu veux, je pourrais te rajouter en auteur. Peut-être que tu trouveras des choses utiles dedans.

Je n'ai pas encore lu le tien, alors je ne sais si le ton et l'approche sont les mêmes que dans le mien, et je ne peux pas encore te faire de retour. Mais je le fais bientôt. :)

+0 -0

J'ai eu une envie soudaine d'écrire une initiation à la simulation numérique pour les débutants (lycéen typiquement, c'est là que j'ai appris les rudiments), du coup j'ai commencé à écrire un petit quelque chose.

Les équations différentielles ne sont plus vues au lycée. ;)

+0 -0

J'ai eu une envie soudaine d'écrire une initiation à la simulation numérique pour les débutants (lycéen typiquement, c'est là que j'ai appris les rudiments), du coup j'ai commencé à écrire un petit quelque chose.

Les équations différentielles ne sont plus vues au lycée. ;)

Vayel

Même pas un p'tit tout petit peu ? Même pas en option math ou que sais-je ? Je me fais vieux…

Je l'ai lu, et je n'ai malheureusement rien à dire. Ça m'a l'air clair, simple, et ce qui doit y être y est (jusqu'à la partie non finie, bien sûr). Je suis en plus très content de voir ce genre de tutoriel sur ZdS. ^^

+0 -0

Bonjour à tous !

La beta du tutoriel a été mise à jour.

Merci pour vos relectures


J'en suis à un stade plutôt bêta que alpha désormais. J'ai quasiment tout le contenu, mais ne vous fatiguez pas pour l'orthographe, je m'en occuperais au départ. J'aimerais des retours sur le fond.

En fait, j'aimerais surtout m'assurer que le message principal passe : la simulation numérique consiste essentiellement à discrétiser, la précision augmente en général avec la diminution du pas de temps, un pas trop grand conduit à des aberrations, il faut donc se méfier. Est-ce que la conclusion est une ouverture raisonnable pour les curieux ?

+0 -0

Ah mince, je n'ai pas vu le edit. Tant pis.

Introduction

science

s ?

C'est que qu'on appelle la résolution numérique d'équation différentielles

Tu peux mettre en gras "résolution numérique d'équation différentielles".

méthode d'Euler

Gras ?

aux gens ayant déjà été introduit

s

autrement en mathématique

s

Présentation de la méthode d'Euler

Sur quel ensemble prends-tu $t$ ?

Quel est celui de définition de $y$ ?

Tu devrais donner des exemples d'équations différentielles : là, la définition est un peu abstraite pour ceux n'ayant pas l'habitude.

Faisons nous discrets

Faisons-nous

c'est de discrétiser le temps, au lieu

temps : au

Ces instants sont choisissable

s

∀tk

Je mettrais bien : $\forall k \in \mathbb N$

Nous nous sommes ainsi débarrassés de la continuité de nos variables !

Tu devrais donner des exemples concrets. Idéalement, en reprenant ceux que tu prendras (potentiellement) pour illustrer l'équation différentielle-type.

Si la direction générale est la même, l'approximation ne colle pas à la réalité.

Je ne comprends pas la légende.

Les pointillés ne sont pas assez visibles.


Les explications sont claires, mais le contexte l'est moins. Tu pars directement avec une équation différentielle abstraite : le lecteur inexpérimenté ne comprendra pas ce qu'il souhaite faire avant de lire le deuxième extrait. Je te propose de remédier à cela en procédant ainsi :

  • On a un problème physique
  • On le modélise
  • On obtient une équation différentielle
  • On en veut une solution
  • On va faire Euler

Exemple travaillé: chute avec frottements fluides

travaillé :

Cela se traduit par une équation différentielle pour la vitesse

Le "pour" me semble inadapté.

On peut discrétiser notre équation différentielle.

Concrètement, on fait quoi ? Tous les combien faut-il prendre ?

Equation de récurrence

É

Il est courant d'utiliser des pas de temps constants, cela

constants. Cela

les résultats que m'a donné

s

0 0,5 s 5 m/s 7,5 m/s

Tu as dit que la vitesse initiale était nulle.

Comme on peut s'y attendre, on voit que la vitesse atteint une valeur maximale après avoir augmenté progressivement…

J'expliciterais cela.

est proche de la réalité

est-elle

plus en avant dans la section suivante.

Broutille : c'est un extrait. :P


Tu devrais détailler l'obtention de l'équation différentielle. Ne serait-ce que dire qu'on applique le principe fondamental de la dynamique.

Ton exemple n'en pas assez développé : tu ne fais qu'appliquer les formules de l'extrait précédent. Mais derrière la méthode d'Euler, il y a une démarche de modélisation physique : il serait bon de la détailler. Bon, ici ça se résume au choix du pas de temps. Mais tu pourrais t'étendre sur :

  • le fait de négliger la poussée d'Archimède
  • l'obtention de l'équation différentielle
  • l'analyse intuitive du problème

Précision, convergence, et stabilité

convergence et

il n'y a pas beaucoup de possibilité, il

possibilités : il

convergence, je fournis

convergence : je

elle introduit des erreurs de calcul

La formulation pourrait faire penser qu'on s'est planté dans notre formule. Je formulerais ainsi :

elle introduit des approximations de calcul : on parle d'erreurs.

se soit introduite dans nos calculs à l'étape suivante, et qu'elle se répercute à l'étape suivante

Hein ?

Cette équation est obtenue en remplaçant vk par vk+δk et vk+1 par vk+1+δk+1 dans l'équation initiale

$v_k$ c'est la vitesse exacte ou celle calculée ? Je ne comprends pas trop ton équation là. L'erreur se calcule par rapport à la valeur exacte, non ? Or tu pars de l'approximation de la dérivée par le taux d'accroissement.

quelle sont les conditions

Quelles

Il faut que la raison de la suite géométrique soit convergente

C'est la suite qui est convergente, pas sa raison.

le terme ne peut pas devenir supérieur à 1, on

1 et on

Conclusion

Vous avez découvert dans ce chapitre

tutoriel :P

Il existe des variantes de la méthode d'Euler

Répétition :

Il existe des variantes de cette méthode

je me dois de préciser que j'ai parlé ici de la méthode d'Euler explicite

Pourquoi ne l'indiques-tu pas avant ?

On peu ainsi obtenir

peut

intuitions que nous eues

avons

Ensuite, rien de tel que d'enchaîner sur la méthode d'Euler implicite (aussi simple, mais plus stable que Euler explicite), ainsi que les méthodes de Runge-Kutta (moins simple, mais plus précises à pas de temps égal), ou encore les méthodes à pas variable (on avance vite quand le signal varie peu et lentement quand il varie rapidement).

Si jamais tu as des liens de qualité pour ces méthodes, n'hésite pas. :)


En fait, j'aimerais surtout m'assurer que le message principal passe : la simulation numérique consiste essentiellement à discrétiser, la précision augmente en général avec la diminution du pas de temps, un pas trop grand conduit à des aberrations, il faut donc se méfier.

C'est clair, mais tu n'en donnes pas assez l'intuition. Tu expliques comment on fait, mais pas pourquoi on le fait. Ca peut paraître évident, mais pourquoi discrétiser ?

Est-ce que la conclusion est une ouverture raisonnable pour les curieux ?

La conclusion est très bien.

Merci pour ce tutoriel. :)

+0 -0

Mais tu pourrais t'étendre sur le fait de négliger la poussée d'Archimède

Pas sûr que ce soit utile. Ça risque d’alourdir pour pas grand chose.

Sinon, il y a un truc qui me gène dans la fin de ta présentation : on a l'impression que plus le pas de temps sera petit, meilleur sera la précision. Ce qui est faux ; si le pas de temps devient trop petit, les erreurs numériques deviennent supérieurs aux erreurs dues à la méthode d'Euler, et augmenter le nombre de pas diminue la précision. Il faut pour ça un très grand nombre de pas, mais je ne pense pas que ce soit une bonne idée de laisser penser que la précision s'améliore forcement avec la diminution du pas.

La conclusion me semble bonne.

+0 -0

$v_k$ c'est la vitesse exacte ou celle calculée ? Je ne comprends pas trop ton équation là. L'erreur se calcule par rapport à la valeur exacte, non ? Or tu pars de l'approximation de la dérivée par le taux d'accroissement.

Vayel

Ce passage est à retravailler. J'ai trouvé une solution pour le réécrire sans trop complexifier, ça arrive très bientôt.

Bonjour à tous !

La beta du tutoriel a été mise à jour.

Merci pour vos relectures


J'ai fait des correction de Vayel, changé les explications pour la stabilité, et amélioré (j'espère) d'autres passages. J'ai changé aussi le lien dans la conclusion, j'ai mieux lu le premier que j'avais trouvé, et il ne me plaisait plus assez.

+0 -0

Bonjour à tous !

La beta du tutoriel a été mise à jour.

Merci pour vos relectures


  • Mises à jour de notation. Au début, je n fais pas de distinction claire entre les valeurs exactes et celles approchées. Ça m'embête, mais j'ai peur de complexifier inutilement, ou que ça nuise à la clarté de laisser en l'état…
  • Mise à jour d'une figure (commentaire de Vayel).
  • Mise à jour des explications et quelques notes de bas de page pour le paragraphe sur la stabilité.
+0 -0

Je mets tout ce qui me gêne. Peut-être y aura-t-il répétition avec mon message précédent.

Introduction

En sciences, de nombreux phénomènes sont décrits par des systèmes d'équations différentielles. Dans certains cas, il est impossible ou peu intéressant de les résoudre de manière exacte.

Le rythme est cassé par le point. Je dirais plutôt :

En sciences, de nombreux phénomènes sont décrits par des systèmes d'équations différentielles, qu'il est, dans certains cas, impossible ou peu intéressant de résoudre de manière exacte.

Il s'agit alors de laisser de côté les méthodes formelles pour travailler directement avec des nombres. C'est

Là aussi, le point fait brutal. Plutôt :

Il s'agit alors de laisser de côté les méthodes formelles pour travailler directement avec des nombres : c'est

C'est que qu'on appelle

Il s'agit ici d'une pure question de goût personnel, mais je préfère :

On appelle cela

Présentation de la méthode d'Euler

Avant de rentrer dans le vif du sujet

Je pense justement que tu rentres trop rapidement dans le vif du sujet. Tu donnes l'équation différentielle sur laquelle nous allons travailler, mais tu n'expliques pas comment tu l'obtiens. Afin d'accrocher le lecteur, tu devrais prendre un exemple physique rigolo, obtenir une équation différentielle puis dire un truc du genre : "plus généralement, on travaille sur des équations du type". En fait, il faudrait que tu reprennes la section "Position du problème" de l'exemple travaillé. Mais autant dénicher un autre phénomène physique. ^^

L'avantage de commencer par un exemple est que tu pourras l'utiliser tout du long de l'extrait pour illustrer tes propos (au niveau de la discrétisation par exemple).

Voilà un exemple d'équation

J'en fournirais également un avec du $t$. Le mieux serait de faire un tableau à deux colonnes : une pour l'équation et une pour $f$.

En pratique, ce seront des valeurs approchées.

Ce n'est, je pense, pas assez explicite. Je dirais plutôt :

En pratique, nous n'obtiendrons qu'une valeur approchée de la solution de l'équation différentielle.

Mais cela me fait penser que tu devrais préciser, en début d'extrait, qu'on sait qu'il existe une unique solution à l'équation différentielle considérée (problème de Cauchy). Juste le rappeler.

entre l'instant actuel, et l'instant suivant

La virgule me semble de trop.

On peut déjà avoir l'intuition que l'écart entre deux instants ne doit pas être trop important

Le "doit" n'est pas assez clair. Au début, je l'ai pris au sens "forte probabilité". Plutôt :

On peut déjà avoir l'intuition qu'il ne faut pas que l'écart entre deux instants soit trop important

on obtient, à l'instant tk :

on obtient le schéma numérique d'Euler.

Peut-être mettre un signe "à peu près égal" ?


Il manque encore deux choses sur le fond, selon moi :

  • Une mise en contexte (l'équation différentielle-type arrive trop tôt) ;
  • Un exemple de la vie courante de discrétisation (je vais réfléchir à ce point).

Exemple travaillé : chute avec frottements fluides

Il sera d'autant plus freiné que sa vitesse est grande

"sera grande", non ?

puis atteindre une vitesse limite

une valeur limite

on modélise notre problème

"modélisons notre" me semble plus dynamique.

L'objet à une masse m

a

et opposée au mouvement

Il y a déjà un "et" juste avant donc j'enlèverais celui-ci.

on obtient une équation différentielle régissant la vitesse v de l'objet.

Je définierais $g$, au moment où tu dis "Il est soumis à la gravitation terrestre".

On utilise des instants successifs pour l'approximation de la dérivée

"pour l'approximation de la fonction", non ?

Cette valeur est trop grande, comme nous allons le voir plus loin.

Tu ne fais pas trop écho à cette phrase plus bas dans l'extrait. A moins que "plus loin" signifie "l'extrait suivant" ?

Comme on peut s'y attendre

(et le démontrer)

que notre équation

différentielle

On peut voir clairement les deux solutions sur le graphique suivant.

Je chipote, mais ça me semble bizarre de considérer notre approximation comme une solution de l'équation différentielle.

Précision, convergence et stabilité

définition formelle de la dérivée, qui est la limite quand

limite, lorsqu'elle existe, quand

La figure suivante illustre cela sur l'exemple de la section précédente

extrait précédent

à cette fin dans la conclusion

La formulation est un peu bizarre, bien que correcte. Je dirais plutôt :

à ce propos

La précision diminue avec l'augmentation du pas de temps.

Je dirais plutôt :

La précision augmente avec la diminution du pas de temps.

On ne distingue pas très bien la couleur de la solution exacte de celle avec un pas de 0.5s. Mais bon, je suis daltonien.

les erreurs de calculs

calcul

n'est pas infiniment précise ; elle

Plutôt un double-point.

Elle peut être soit amplifiées

amplifiée

les valeurs prises par la solution exacte

exacte $v^{th}$

En effectuant un développement limité en tk, on obtient :

J'expliquerais comment tu fais le DL (Taylor-Young, $v$ de classe $\mathcal C^1$) : ça satisfait les matheux et n'handicape pas les autres.

développement limité; c'est

limité, c'est

c'est aussi ici l'erreur de consistance

C'est

c'est-à-dire l'erreur due à la méthode d'Euler en supposant le résultat juste à l'étape précédente

Ce n'est pas très clair. Je dirais plutôt :

c'est-à-dire l'erreur introduite par la méthode d'Euler en partant d'une valeur exacte

puisque déjà la valeur initiale v_0

Problème Markdown.

devant le pas quand le pas tend vers zéro

quand ce dernier

À une étape k du calcul, une erreur δk due à l'approximation d'Euler est présente.

Ce n'est pas très clair, parce que dans la note précédente, tu parles de l'erreur due à la méthode d'Euler. Du coup, on ne sait plus trop si cette erreur esy $e_k$ ou $\delta_k$.

Par simplification, on laisse tomber ek, tout en conservant l'égalité.

Ne peut-on pas justifier mathématiquement cette simplification ? Quantifier l'approximation ? Là, la note n'est pas très claire.

Dans ce cas là

cas-là

qui est facile à étudier

Je préfère :

qu'il est facile d'étudier

Conclusion

Sur un exemple, nous avons vu comment augmenter la précision de la méthode en réduisant le pas de temps

En le réduisant avec mesure. ^^

ainsi que les méthodes

que sur

Mais peut-être "puis sur" ?


Merci !

+0 -0

J'ai encore fait quelques modifications (encore des notations…), ma copie converge lentement vers un état RTV. Je laisse reposer un peu pour relire à tête reposée dans quelques jours, et mettre à jour là béta.

Merci beaucoup pour ta relecture Vayel. Je profite du message pour répondre à certaines de tes remarques.

En effectuant un développement limité en tk, on obtient :

J'expliquerais comment tu fais le DL (Taylor-Young, v de classe C1) : ça satisfait les matheux et n'handicape pas les autres.

Je suis pas sûr que ça apporte grand chose, c'est vraiment ras des pâquerettes comme DL, puis je ne suis pas si rigoureux que ça dans le reste, alors ça ferait contrasté.

À une étape k du calcul, une erreur δk due à l'approximation d'Euler est présente.

Ce n'est pas très clair, parce que dans la note précédente, tu parles de l'erreur due à la méthode d'Euler. Du coup, on ne sait plus trop si cette erreur esy ek ou δk.

Tu verras si c'est mieux dans la nouvelle version, qui arrive bientôt (teasing :D).

Par simplification, on laisse tomber ek, tout en conservant l'égalité.

Ne peut-on pas justifier mathématiquement cette simplification ? Quantifier l'approximation ? Là, la note n'est pas très claire.

Dans le cas général, si la fonction $f$ est lipschitzienne, alors la méthode est stable et consistante (i.e. convergente), ce qui se traduit par une majoration des écarts, majoration qui dépend de la somme absolue des $e_n$… mais ce n'est pas dit que la somme converge ! Donc dans le cas général, on ne peut pas simuler trop loin, au risque d'avoir une solution aberrante.

Dans mon cas, je pense que les $e_k$ tendent vers zéro car la solution devient constante (sa dérivée en particulier l'est, c'est ce qui compte en fait). Dans ce cas là, le comportement avec ou sans le terme en $e_k$ est le même ($\delta_k$ tend vers 0, diverge, ou oscille sans converger). Dans un cas plus général, où $(e_k)$ serait bornée, il y a divergence sous les même conditions. La différence c'est que l'on ne converge pas nécessairement vers zéro, on peut juste montrer que $(\delta_k)$ est aussi bornée. J'ai utilisé une suite pseudo-arithmético-géométrique pour essayer de vérifier tout ça, mais c'est pas très intéressant, et un peu fastidieux.

+0 -0

Bonjour à tous !

La beta du tutoriel a été mise à jour.

Merci pour vos relectures


  • Modification de la solution exacte de l'équation différentielle pour faire apparaître la vitesse initiale.
  • Ajout de notes de bas de page sur des détails mathématiques.
  • Correction de $\leq$ vers $<$ pour la stabilité
  • Nouvelle figure pour illustrer les erreurs dans le paragraphe sur la stabilité.
  • autres ajouts et corrections mineurs.

J'ai fait un petit fichier de démonstration avec un tableur, y a-t-il un moyen simple de l'héberger pour pouvoir le fournir au lecteur ?

+0 -0

Salut,

J'aime bien ce tuto, c'est présenté de manière informelle mais tu présentes quand même les points importants. Il y a un truc qui me chagrine par contre, c'est que l'équation $\dfrac{\mathrm dy}{\mathrm dt}+y=t$ n'est pas dimensionnellement viable. Aussi, je ne suis pas nécessairement d'accord quand tu dis que ton premier pas de temps est trop grand. La simulation trouve le bon régime permanent pour le système, et le transitoire ne présente ni oscillations, ni overshot et n'est donc pas physiquement incohérent.

+0 -0

Présentation de la méthode d'Euler

je vous présente l'équation différentielle-type qui va nous accompagner tout au long de ce tutoriel :

Cette équation n'est pas homogène : à gauche tu as une fonction, à droite un réel. C'est soit :

$$ \dfrac{dy}{dt}(t) = f(t, y(t)) $$

soit :

$$ \dfrac{dy}{dt} = f(t, y) $$

La deuxième forme est plus courante je crois.

et f est une fonction réelle de t et de y

Dans ce que tu as écrit, $f$ n'est pas une fonction de $y$. Si elle l'est, ce n'est pas une fonction réelle.

Sous des conditions généralement remplies en physique1, cette équation différentielle admet une unique solution y pour une condition initiale donnée.

Je mettrais la note en fin de phrase, après le point, car elle concerne toute la phrase.

Une équation différentielle suivant le modèle précédent, avec f(t,y)=−y+t, est, par exemple :

Le "par exemple" me semble mal placé. Je pense qu'il faudrait le mettre au niveau de la fonction, vu que c'est là où tu poses l'exemple. Ou plus simplement, en début de phrase.

Plus formellement, on forme une suite d'instants tk pris dans l'intervalle [0,T].

Tu indexes ta suite par $\mathbb N$, mais l'objectif est justement d'avoir un nombre fini d'instants à considérer. ^^

0, 1 s, 2 s, 3 s, etc.

On a du mal à lire cela. Tu pourrais essayer de coller le "s" au chiffre :

0, 1s, 2s, 3s, etc.

∀k∈N, yk≈y(tk)

Même remarque sur le $\mathbb N$.

y prend des valeurs à des instants bien définis.

Du coup, tes notations sur l'axe des ordonnées ne correspondent plus avec ce qui précède. En principe, ce serait $y(t_k)$, etc.

Avec quoi fais-tu tes schémas ? :)

Et puisque la dérivée

Le "Et" gagnerait à être remplacé par un "Sauf que", ou un truc du genre.

est définie sur la base d'une limite

L'expression me paraît un peu étrange. Je propose de dire plus simplement :

se définit par une limite

cela ne fonctionne plus

Le "cela" n'est pas très clair je trouve. Je reformulerais ainsi :

Mais la dérivée présente dans notre équation différentielle se définit par une limite, incompatible avec la discrétisation des variables. Il est ainsi…

On peut déjà avoir l'intuition que l'écart entre deux instants ne saurait être trop important, au risque d'avoir une dérivée trop éloignée de la réalité !

Pour illustrer cela, tu pourrais ajouter à côté du schéma un similaire, avec un pas de temps différent.


J'ai eu du mal avec les notations. En fait, on ne voit pas très bien ce que représente $y_k$ et pourquoi il est différent de $y(t_k)$. Je pense que c'est dû au fait que tu en parles avant l'approximation de la dérivée, qui en est à l'origine. Il me semble que le raisonnement gagnerait à être le suivant :

  • Discrétisation
  • Approximation de la dérivée en $t_k$
  • Obtention du terme suivant $y_{k+1}$
  • Du fait de l'approximation précédente, ce terme n'est pas $y(t_{k+1})$

Peut-être pourrais-tu, une fois la discrétisation effectuée, partir de $y_0$, faire l'approximation de la dérivée en $0$, en déduire $y_1$ (qui n'est pas $y(1)$), puis généraliser.

Merci !

+0 -0

$$ \dfrac{dy}{dt} = f(t, y) $$

$f$ n'est pas une fonction de la fonction $y$, mais bien une fonction de $y(t)$. L'erreur, plutôt l'abus, est au niveau de "$f$ est une fonction réelle de $t$ et de $y$". Après, en physique, on laisse souvent tomber les dépendances les unes avec les autres pour alléger les notations et on confond allègrement fonction et scalaire. Du coup, j'ai tendance à dire que la notation employée est acceptable.

f n'est pas une fonction de la fonction y, mais bien une fonction de y(t).

Pourquoi ? Le cas échéant, on a une fonction à gauche (la dérivée), et un réel à droite. Personnellement, je n'ai recontré que des équations différentielles où interviennent des fonctions (et des réels), comme ici (https://fr.wikipedia.org/wiki/%C3%89quation_diff%C3%A9rentielle#D.C3.A9finition_g.C3.A9n.C3.A9rale).

+0 -0
Ce sujet est verrouillé.