· 5 min read

Comment un pendule te donne des équations différentielles

Vous n'avez pas besoin d'un diplôme en mathématiques pour comprendre les résolveurs d'ODE. Il vous faut un pendule, un écran et 20 minutes. Voici comment Euler, RK4 et les méthodes d'adaptation fonctionnent réellement — avec le code réel.

Commencez par ce que vous pouvez voir

Accrochez-vous à une corde. Tirez-le d'un côté. Lâchez. Ça oscille.

Vous venez de créer un système régi par une équation différentielle :

d'après les résultats de l'enquête (g/L)

c'est l'angle. C'est la vitesse angulaire. g est la gravité (9,81 m/s2). L est la longueur de la corde. Ces deux lignes disent : l'angle change à une vitesse égale à la vitesse, et la vitesse change à une vitesse qui dépend de la gravité, de la longueur et de l'angle courant.

Le problème : nous ne pouvons pas résoudre cette équation exactement. Le sin(θ) le rend non linéaire. Il n'y a pas de formule qui te donne de t. Donc nous approximons — nous progressons en petits incréments, calculant le prochain état à partir du courant.

C'est ce qu'un solveur d'ODE fait. Et il y a de meilleures et pires façons de le faire.

La méthode d'Euler: évidente mais aplatie

L'idée la plus simple: si je connais l'état maintenant, et je connais le taux de changement, je peux estimer l'état un petit pas de temps plus tard.

next_angle = current_angle + velocity × dt
next_velocity = current_velocity + acceleration × dt

C'est la méthode d'Euler. C'est comme marcher dans le brouillard: on peut voir un pas en avant, donc on fait ce pas, puis on regarde à nouveau. En code:

function euler(f, t, y, dt) {
  const dy = f(t, y);
  return [
    y[0] + dt * dy[0],
    y[1] + dt * dy[1]
  ];
}

Le problème : la méthode d'Euler est précise en premier ordre. Cela signifie que si vous réduisez de moitié la taille de l'étape, vous réduisez de moitié l'erreur. Pour un pendule, cette erreur s'accumule — le pendule simulé gagne lentement en énergie et oscille de plus en plus. Après quelques minutes, il tourne en rond. Un vrai pendule ne fait jamais ça.

RK4: Le cheval de travail

En 1901, Carl Runge et Martin Kutta publièrent une meilleure méthode. Au lieu de regarder le taux de changement une fois par étape, regardez-le quatre fois :

  1. Mesurer la pente au début de l'étape → k1
  2. Étape à mi-chemin en utilisant k1, mesurer la pente là → k2
  3. Étape à mi-chemin en utilisant k2, mesurer à nouveau → k3
  4. Étape à la fin en utilisant k3, mesurer une fois de plus → k4
  5. Combiner: moyenne pondérée (k1 + 2k2 + 2k3 + k4) / 6

C'est le quatrième ordre. Couper la taille de l'étape et l'erreur tombe par un facteur de 16. Le pendule conserve l'énergie correctement pour des milliers de balançoires.

function rk4(f, t, y, dt) {
  const k1 = f(t, y);
  const k2 = f(t + dt/2, [y[0] + dt/2 * k1[0], y[1] + dt/2 * k1[1]]);
  const k3 = f(t + dt/2, [y[0] + dt/2 * k2[0], y[1] + dt/2 * k2[1]]);
  const k4 = f(t + dt,   [y[0] + dt   * k3[0], y[1] + dt   * k3[1]]);
  return [
    y[0] + (dt/6) * (k1[0] + 2*k2[0] + 2*k3[0] + k4[0]),
    y[1] + (dt/6) * (k1[1] + 2*k2[1] + 2*k3[1] + k4[1])
  ];
}

C'est la méthode que PinePaper utilise pour les simulations de pendule, de masse de ressort et de Van der Pol. C'est la même méthode utilisée dans les calculs de trajectoire aérospatiale. 22 lignes de code.

Pourquoi cela compte hors de la physique

Le pendule est un exemple d'enseignement. Mais la même technique — pas en avant, mesure, correcte — s'applique partout où vous avez un taux de changement:

  • ** Croissance de la population**: dx/dt = r·x·(1 - x/K). Croissance logistique avec capacité de charge. Même solveur.
  • Réactions chimiques: variation des concentrations aux taux proportionnels aux concentrations actuelles. Même solveur.
  • Réseaux neuraux: descente en gradient est une EMO discrétée. Chaque étape d'entraînement est une étape Euler le long de la surface de perte.
  • Économie: composés d'intérêt en continu par dy/dt = r.y. La croissance exponentielle est la plus simple ODE.
  • Calendrier d'animation: les courbes d'assouplissement sont des solutions pour les ODE à coup de ressort. Les assouplissements « élastiques » et « rebonds » dans CSS sont des simulations physiques.

Les maths ne changent pas. Le domaine l'est. C'est ce qui en fait une langue — la même grammaire décrit le comptage des moutons, les balançoires du pendule et la formation en réseau neuronal.

Essaie toi-même

Ouvrez PinePaper et sélectionnez le générateur Dynamic System. Choisissez le pendule. Les balançoires. Maintenant modifiez les paramètres :

  • Augmenter la gravité → oscillation plus rapide (période plus courte)
  • Augmenter la longueur de la tige → oscillation plus lente (période plus longue)
  • Commencez par un angle plus grand → regardez comment la période augmente (effet non linéaire que l'approximation du petit angle du manuel manque)

Chaque changement que vous faites est une mesure. Vous avez modifié un paramètre et observé le résultat. Le résolveur RK4 a recalculé 30 images par seconde, et le pendule vous a montré ce que l'équation prédit.

C'est tout. Les mathématiques, c'est la mesure. PinePaper le rend visible.

Interactive demo — open in editor pp:PinePaper

Références

  • Butcher, J.C. (2016). * Méthodes numériques pour les équations différentielles ordinaires* (3e éd.). C'est Wiley.
  • Dormand, J.R. et Prince, P.J. (1980). Une famille de formules Runge-Kutta intégrées. * Journal of Computational and Applied Mathematics*, 6(1), 19-26.
  • Euler, L. (1768). Institutionum calculi integratis, vol. 1. Impensis Academiae Imperialis Scientiarum.
  • Coiffeur, E., Nørsett, S.P., et Wanner, G. (1993). Equations différentielles ordinaires de résolution I : Problèmes non-stifs (2e éd.). Springer.
  • Kutta, W. (1901). Beitrag zur näherungsweisen Intégration totaler Differentialgleichungen. * Zeitschrift für Mathematik und Physik*, 46, 435-453.
  • Newton, I. (1687). Philosophiæ Naturalis Principia Mathematica. Londres : Joseph Streater.
  • Runge, C. (1895). Über die numérische Auflösung von Differalgleichungen. * Mathematische Annalen*, 46(2), 167-178.
  • Strogatz, S.H. (2015). * Dynamique non linéaire et Chaos* (2e éd.). Westview Press.

  • Le résolveur ODE de PinePaper couvre Euler, RK4, et Dormand-Prince RK45 adaptatif dans environ 200 lignes. Essayez la simulation du pendule gratuitement à pinepaper.studio/editor.*

Ready to create?

Start making animated GIFs, videos, and graphics — free, no signup.

Open PinePaper Editor