🔄 Portrait de phase
Visualisez le plan de phase de systèmes dynamiques 2D. Choisissez parmi Lotka-Volterra, l'oscillateur de van der Pol, le pendule, la bifurcation de Hopf, et plus encore. Cliquez pour tracer des trajectoires, superposer les nullclines et repérer les points fixes.
À propos de cette simulation
Cette simulation rend le plan de phase d'un système dynamique 2D entièrement sur le GPU à l'aide d'un shader GLSL de type Line-Integral-Convolution (LIC) : un bruit déformé par le domaine est étalé le long de la direction locale du champ de vecteurs, produisant des lignes de courant fluides au lieu de flèches discrètes. La couleur code la vitesse locale |(f, g)|, et une lueur douce marque les points fixes où la vitesse s'annule. Cinq systèmes sont intégrés — une matrice linéaire 2×2 paramétrable, l'oscillateur de van der Pol, un pendule amorti, le modèle proie-prédateur de Lotka-Volterra, et l'oscillateur de Duffing à double puits — chacun révélant un type de comportement à long terme différent, des spirales et cols jusqu'à un véritable cycle limite non linéaire.
🔬 Ce que ça montre
Le champ de vitesse (dx/dt, dy/dt) = (f(x,y), g(x,y)) évalué en chaque pixel, visualisé sous forme de lignes de courant animées dont la couleur passe du bleu au cyan puis au jaune et au rouge avec la vitesse croissante. Les points fixes, où le champ est nul, luisent doucement. Pour le système linéaire, un affichage en direct classifie l'équilibre — col, nœud, spirale ou centre — directement à partir de la trace et du déterminant de la matrice.
🎮 Comment l'utiliser
Choisissez un système dans la liste, puis faites glisser Paramètre a et Paramètre b pour remodeler sa dynamique : pour le cas linéaire, ils déplacent l'équilibre entre spirales stables/instables, nœuds, un col et un centre ; pour van der Pol, le paramètre a est l'amortissement non linéaire μ ; pour le pendule, c'est l'amortissement et le couple d'entraînement ; pour Lotka-Volterra, ce sont les taux de croissance des proies et de mortalité des prédateurs ; pour Duffing, c'est l'amortissement. La vitesse d'écoulement contrôle la rapidité d'animation des lignes de courant, et Réinitialiser restaure les valeurs par défaut du système sélectionné.
💡 Le saviez-vous ?
L'oscillateur de van der Pol, inventé dans les années 1920 pour modéliser les circuits à tubes à vide, se stabilise sur un cycle limite — une unique boucle fermée vers laquelle convergent en spirale les trajectoires venant de l'intérieur comme de l'extérieur. Aucun système linéaire, quelle que soit la façon dont on règle sa matrice, ne peut produire ce comportement : les cycles limites sont un phénomène authentiquement non linéaire, et l'équation de van der Pol est devenue l'un des exemples fondateurs de l'étude des oscillations auto-entretenues.
Questions fréquentes
Qu'est-ce qu'un portrait de phase et que représentent les lignes de courant ?
Un portrait de phase est une image de l'espace des états d'un système dynamique, montrant comment chaque point de départ possible évolue dans le temps. Dans cette simulation, chaque point du plan possède un vecteur vitesse (dx/dt, dy/dt) déterminé par les équations du système choisi, et les lignes de courant sont un rendu de type Line-Integral-Convolution de ce champ de vecteurs — un bruit étalé le long de la direction locale du flux — permettant de saisir d'un coup d'œil le motif global du mouvement plutôt que de suivre une trajectoire à la fois.
Comment un point fixe est-il classé en col, nœud, spirale ou centre ?
Pour le système linéaire de matrice [[a, b], [-b, a]], la trace est T = 2a et le déterminant est D = a² + b². Si D < 0, l'origine est un col (instable dans une direction, stable dans une autre) ; si D > 0 et T² < 4D, c'est une spirale, stable si T < 0 et instable si T > 0 ; si D > 0 et T² > 4D, c'est un nœud ; et si T = 0 avec D > 0, c'est un centre, entouré d'orbites fermées. Le panneau d'affichage calcule cette classification en direct au fur et à mesure que vous déplacez les curseurs.
Qu'est-ce qui différencie l'oscillateur de van der Pol d'un simple oscillateur amorti ?
Un oscillateur linéaire amorti classique converge toujours en spirale vers un unique point d'équilibre et y reste. L'équation de van der Pol ẋ = y, ẏ = μ(1−x²)y − x possède un amortissement dont le signe s'inverse selon l'amplitude : elle dynamise les petites oscillations et amortit les grandes, si bien que les trajectoires venant de l'intérieur comme de l'extérieur convergent vers la même orbite fermée, appelée cycle limite. Cette amplitude d'oscillation auto-régulée explique pourquoi le modèle de van der Pol sert à décrire les battements cardiaques, les circuits à tubes à vide et d'autres oscillateurs auto-entretenus.
Que représentent les orbites fermées dans le système de Lotka-Volterra ?
Les équations de Lotka-Volterra ẋ = a·x − x·y, ẏ = x·y − b·y modélisent un couple proie-prédateur : les proies (x) croissent exponentiellement au taux a en l'absence de prédateurs, et les prédateurs (y) meurent au taux b faute de proies à manger. Les orbites fermées entourant le point de coexistence (b, a) signifient que les populations oscillent périodiquement au lieu de se stabiliser à une valeur fixe — une hausse des proies nourrit une hausse des prédateurs, qui épuise ensuite les proies, ce qui affame les prédateurs, et le cycle se répète, sans jamais converger vers l'équilibre.
Pourquoi l'oscillateur de Duffing possède-t-il deux spirales stables distinctes ?
Le système de Duffing ẋ = y, ẏ = −b·y + x − x³ décrit un mouvement dans un potentiel à double puits, physiquement comme une bille pouvant se stabiliser dans l'un ou l'autre de deux creux séparés par une bosse. Le terme cubique −x³ crée deux équilibres stables symétriques en x = ±1 (chacun une spirale lorsque l'amortissement b > 0) et un col instable à l'origine séparant leurs bassins d'attraction, si bien que la spirale sur laquelle finit une trajectoire dépend fortement de sa position de départ par rapport au col.
Ajustez les paramètres d'un système dynamique 2D et observez les trajectoires du champ de vecteurs tourner en spirale, orbiter ou s'échapper des points fixes.
3D · Moteur de rendu Three.js / WebGL · Cible 60 IPS · fonctionne entièrement côté client, sans installation