Champ de pentes et solveur d'EDO

Lisez une équation différentielle du premier ordre comme un champ de petites lignes tangentes. Cliquez sur le graphique pour ajouter des conditions initiales et tracer les courbes solutions correspondantes.

Chargement de la simulation interactive...

Leçon

La théorie — Champ de pentes et solveur d'EDO

Une équation différentielle du premier ordre dy/dx = f(x,y) ne dit jamais ce qu’est y. Elle indique à quelle vitesse y varie en chaque point. Une solution est toute courbe dont la pente en chaque point est égale à f en ce point — et il en existe toute une famille, une pour chaque point de départ.

Ce que signifie chaque symbole

dy/dx
la pente d’une courbe solution — la quantité que l’équation prescrit, plutôt que celle qu’elle cherche à déterminer.
f(x,y)
le membre de droite : une règle qui associe une pente à n’importe quel point. Les cinq préréglages proposés ici sont y, x*y, -y/x, y*(1-y) et x^2-y.
(x₀,y₀)
une condition initiale — un point par lequel la solution doit impérativement passer. C’est elle qui sélectionne une unique courbe au sein de la famille, et c’est ce qu’un clic sur le graphique fournit.

Comment lire ce que vous voyez

Le panneau compte ce qui a été tracé plutôt que de le décrire : 21 x 21 = 441 marques de pente sur la grille par défaut, la plus grande pente finie actuellement visible, la fenêtre du graphique et le nombre de courbes solutions que vous avez lancées. Chaque clic ajoute une condition initiale, puis le solveur RK4 trace la courbe correspondante à la fois vers l’avant et vers l’arrière en x.

Suppose
Que l’équation est du premier ordre et déjà isolée en dy/dx, et que f renvoie exactement une seule pente par point. La grille est un échantillon du champ, pas le champ lui-même — augmenter la densité trace davantage de marques sans modifier la moindre solution.
Ne tient plus quand
Choisissez -y/x et le compteur passe à 421 finite, 20 vertical/singular. Ce sont les points de la grille situés sur l’axe des y, où x = 0 laisse la pente non définie : le champ n’a réellement aucune direction à cet endroit, et aucune courbe solution ne le traverse. Un champ de directions ne peut pas non plus vous montrer où une solution s’échappe vers l’infini pour une valeur finie de x — l’image reste parfaitement calme alors que la solution s’emballe.

L’image répond à l’équation sans jamais la résoudre 🖖

Un champ de tangentes représente une équation différentielle ordinaire du premier ordre dy/dx = f(x,y) en traçant de courts segments de pente f(x,y) sur une grille. Cela donne une visualisation géométrique de l'écoulement des courbes de solutions sans les résoudre analytiquement, montrant les équilibres et inflexions.

Suivre les flèches sans rien résoudre 🖖

Imaginez le champ de pentes comme une multitude de petits panneaux : en chaque point, l'un indique où une solution doit se diriger ensuite. Une courbe solution suit simplement ces directions, comme une feuille portée par un courant. Comme chaque point possède une seule direction, choisir un point de départ (une condition initiale) fixe une unique courbe : cliquez n'importe où et l'outil trace ce chemin unique.

RK4 devient secrètement la règle de Simpson 🖖

La méthode RK4 utilisée par l'outil évalue la pente quatre fois par pas et les combine avec les poids 1:2:2:1. Lorsque votre équation est simplement dy/dx = f(x), sans y à droite, cette combinaison coïncide exactement avec la règle de Simpson pour l'intégration : h/6·(f₀ + 4f_m + f₁). Résoudre numériquement une EDO et calculer une intégrale définie ne sont alors qu'un seul et même calcul.

Exercice

Vérifiez-vous

Prédisez d’abord la réponse, puis utilisez les commandes ci-dessus pour vérifier. N’affichez la solution qu’après vous être engagé sur une hypothèse : c’est ce qui en fait un exercice.

  1. Le préréglage hyperboles résout y′ = −y/x et annonce une « plus grande |pente| finie » de 10. Montez la densité de grille à 30 et relisez cette ligne — puis faites de même sur les préréglages exponentiel et paraboles.

    Afficher la réponse
    Sur les hyperboles la ligne passe par 5 → 10 → 15 pour les densités 10, 20 et 30. Sur l’exponentiel elle reste à 3 et sur les paraboles à 11, quoi que vous fassiez. Pour un champ singulier, cette ligne décrit votre grille, pas l’équation : −y/x n’a aucune pente maximale, puisqu’elle file vers l’infini quand x → 0, si bien que l’outil ne peut annoncer que la marque la plus raide sur laquelle il est tombé. La colonne la plus proche de l’axe se trouve à 8/densité, donc à densité 20 c’est x = 0.4, et 4/0.4 = 10 — le nombre affiché. Les 20 marques signalées verticales sont toute la colonne x = 0, où la pente n’est pas un nombre. Les deux autres champs sont réellement bornés sur leurs fenêtres, donc la grille retrouve le même maximum à chaque fois.
  2. Le préréglage logistique résout y′ = y(1−y), dont la croissance est fameusement la plus rapide en y = 1/2, où le taux vaut 0.25. Le panneau annonce une plus grande |pente| de 0.75. Où trouve-t-il une pente trois fois trop raide ?

    Afficher la réponse
    En dehors de la population. La fenêtre du préréglage va de y = −0.5 à 1.5, et en y = −0.5 le taux vaut (−0.5)(1.5) = −0.75 — plus raide que tout ce qui se trouve entre les droites d’équilibre, et décroissant, puisque la ligne annonce une valeur absolue. Mettez y min à 0 et y max à 1 et la ligne tombe à 0.25, atteint en y = 0.5, là où la biologie la place. Vous n’avez même pas à être aussi strict : −0.2 à 1.2 donne aussi 0.25, car (−0.2)(1.2) ne fait que 0.24. Le nombre célèbre décrit une population logistique ; le panneau décrit le rectangle que vous lui avez demandé de tracer.

Problèmes entièrement résolus

  1. La famille de courbes pour y′ = −y/x 6 étapes

    y′ = −y/x, sur −4 ≤ x ≤ 4 et −4 ≤ y ≤ 4, pour une densité de grille de 20. Avant même de tracer la moindre courbe intégrale, comptez combien de tirets possèdent une pente définie, trouvez le plus raide, puis déterminez de quelle famille de courbes le champ est constitué.

    1. La grille compte 20 intervalles de large, soit 21 lignes d'échantillonnage et non 20 — les extrémités comptent. Une fenêtre de 8 unités de large échantillonne donc tous les 0,4, et le même espacement s'applique verticalement.

    2. 21 est impair, donc une ligne d'échantillonnage tombe exactement au milieu de la fenêtre, et le milieu de cette fenêtre est x = 0. C'est sur cette colonne que le membre de droite présente un zéro au dénominateur.

    3. Sur cette colonne, chaque point ayant y ≠ 0 donne un quotient sans valeur : une direction, tracée à la verticale, mais aucun nombre à indiquer. Cela concerne 20 des 21 points. Le dernier est l'origine, où le rapport vaut 0/0 et où l'outil tranche en traçant le tiret à l'horizontale — un choix, non une conséquence, et c'est pourquoi le décompte fini s'élève à 421 plutôt qu'à 420.

    4. La raideur est |y|/|x|, de sorte que le tiret le plus raide correspond au point le plus haut sur la colonne non nulle la plus étroite : 4 divisé par 0,4. Les gagnants se situent immédiatement à côté de la ligne singulière, ce qui constitue leur seul intérêt.

    5. Passons aux courbes elles-mêmes. L'équation est à variables séparables, et l'intégration des deux membres transforme une somme de logarithmes en un produit : xy est constant le long de chaque solution, la famille est donc celle des hyperboles équilatères.

    6. Testons au point (1, 2), où le tiret a une pente de −2. L'hyperbole xy = 2 passant par ce point y a une pente de −2, elle convient donc. Le cercle x² + y² = 5 passant par ce même point a pour pente −x/y = −0,5, il ne convient donc pas — la perpendiculaire au rayon correspond à l'équation y′ = −x/y, avec x et y inversés.

    Réponse

    421 tirets finis, 20 verticaux et une pente la plus raide de 10. Seuls deux de ces trois éléments apportent une information sur l'équation différentielle. Refaites le dernier calcul en gardant la grille sous forme symbolique : la pente la plus raide que la grille puisse observer est 4 divisé par 8/d, soit d/2 — ce nombre correspond à la moitié du réglage de densité, et rien d'autre. L'équation n'a aucune pente maximale ; |y′| croît sans limite lorsque x → 0, et le panneau indique la finesse de l'observation, non la raideur maximale du champ. À une densité de 21, l'effet est encore plus net : 22 lignes d'échantillonnage par côté encadrent x = 0 au lieu de tomber dessus, si bien que les 484 tirets ressortent finis et que la colonne singulière disparaît du décompte tout en restant tout aussi singulière qu'auparavant.

  2. Une solution passant par y = 0,1 pour y′ = y(1 − y) 6 étapes

    y′ = y(1 − y), tracé sur −2 ≤ x ≤ 6 et −0,5 ≤ y ≤ 1,5, pour une densité de grille de 20. Sans rien résoudre, indiquez où le champ est plat, dans quelle direction doit aller une solution passant par y = 0,1, et où se trouvent les tirets les plus raides dans cette fenêtre. Chiffrez ensuite la durée de la montée.

    1. Un tiret est horizontal exactement là où le membre de droite s'annule, et un produit ne s'annule que si l'un de ses facteurs s'annule. Cela donne deux valeurs, dont chacune constitue une solution à part entière : les fonctions constantes y ≡ 0 et y ≡ 1 satisfont l'équation pour tout x.

    2. Toutes deux tombent sur des lignes d'échantillonnage. Les 21 valeurs de y commencent à −0,5 avec un pas de 0,1, de sorte que 0 et 1 en font partie et que les deux lignes horizontales sont réellement tracées, plutôt que simplement suggérées par les inclinaisons de part et d'autre.

    3. Entre les lignes horizontales, les deux facteurs sont positifs, donc chaque tiret penche vers le haut ; à l'extérieur, l'un des facteurs a changé de signe et les tirets penchent vers le bas. Une solution partant de 0,1 monte, et elle ne peut jamais atteindre 1 — pour franchir cette ligne, elle devrait croiser la solution constante qui s'y trouve, or deux solutions de cette équation ne peuvent se croiser.

    4. Croissante et bornée ne signifie pas stable, perturbons donc légèrement chaque équilibre et observons le signe. Juste au-dessus de 0, la pente vaut environ +ε et éloigne la solution ; juste au-dessus de 1, elle vaut environ −ε et la ramène. Une équation, deux lignes horizontales, des conclusions opposées.

    5. Les tirets les plus raides ne se trouvent pas là où a lieu la croissance. Dans l'intervalle 0 ≤ y ≤ 1, la variation la plus rapide a lieu en y = 0,5 et vaut 0,25, mais la fenêtre s'étend jusqu'à −0,5 et 1,5, où le produit vaut −0,75 — soit une pente trois fois plus raide, pour des valeurs de population qui ne concernent pas le modèle.

    6. Une quantité rend la courbe droite. Dérivons le logarithme du rapport des chances y/(1 − y) : la règle de dérivation des fonctions composées produit exactement le facteur y(1 − y) fourni par l'équation, les deux s'annulent, et ce qui reste croît à un taux constant de 1.

    Réponse

    Deux équilibres, 0 répulsif et 1 attractif, et une |pente| maximale de 0,75 située entièrement en dehors de 0 ≤ y ≤ 1. La dernière étape est celle à retenir. Le logarithme du rapport des chances progresse d'exactement 1 par unité de x, de sorte que le passage de 10 % à 90 % prend ln(9 ÷ 1/9) = ln 81 = 4,394 en x, quelle que soit la valeur initiale. Rien sur le panneau n'affiche cela, or c'est le nombre dont un modélisateur a réellement besoin : non pas la hauteur de la courbe, mais la longueur de sa transition, fixée par le seul taux de croissance. Cette fenêtre ayant une largeur de 8, une solution qui entre près de zéro sur la gauche passe un peu plus de la moitié de celle-ci à effectuer la montée complète, et le reste plaquée contre y = 1.

Références (1)
  • Direction fields, initial-value problems and when a solution is guaranteed to exist: W. E. Boyce & R. C. DiPrima, Elementary Differential Equations and Boundary Value Problems, 10th ed. John Wiley & Sons, 2012. ISBN 978-0-470-45831-0.

Exemples de problèmes

  • y' = y - Vous observez 441 marques. Elles sont horizontales le long de y = 0 et atteignent leur inclinaison maximale aux coins, où la pente vaut 3. Cette rangée horizontale est elle-même une solution qu'aucune courbe ne traverse. Le signe de votre premier clic décide donc si la courbe monte ou descend. Rien ne pourra plus modifier cette trajectoire.
  • Logistique - Des marques horizontales s'alignent sur deux droites, y = 0 et y = 1, qui sont toutes deux des solutions. Toute courbe que vous démarrez entre elles se retrouve piégée et doit tendre vers 1. La pente maximale de la grille, 0,75, n'appartient pas du tout à cette courbe en S. Elle se situe en y = −0,5, sous la solution inférieure.
  • Hyperboles - Le compteur se divise en 421 marques finies et 20 verticales. Celles-ci forment la colonne en x = 0, où −y/x n'est pas définie. Passez maintenant la densité de 20 à 21 : vous obtenez 484 marques finies, aucune singulière. La grille ne tombe plus sur l'axe. La singularité n'a pas bougé. Votre échantillonnage l'a simplement manquée.
  • Paraboles - Des marques horizontales dessinent la parabole y = x², et chaque solution la traverse à l'horizontale. Cette parabole n'est pourtant pas une solution en soi. L'équation y impose une pente de 0, alors que la courbe présente une pente de 2x. La marque la plus abrupte, 11, occupe le coin inférieur gauche.