Wie ein Pendel Ihnen Differentialgleichungen lehrt
Sie brauchen keinen Mathe-Abschluss, um ODE-Solver zu verstehen. Sie brauchen ein Pendel, einen Bildschirm und 20 Minuten. So funktionieren Euler, RK4 und adaptive Methoden tatsächlich - mit dem echten Code.
Beginnen Sie mit dem, was Sie sehen können
Hängen Sie ein Gewicht von einer Schnur. Ziehen Sie es zur Seite. Loslassen. Es schwingt.
Sie haben gerade ein System erstellt, das von einer Differentialgleichung gesteuert wird:
dθ/dt = ω dω/dt = -(g/L) · sin(θ)
θ ist der Winkel. ω ist die Winkelgeschwindigkeit. g die Schwerkraft (9,81 m/s2). L ist die Saitenlänge. Diese beiden Linien sagen: Der Winkel ändert sich mit einer Geschwindigkeit, die der Geschwindigkeit entspricht, und die Geschwindigkeit ändert sich mit einer Geschwindigkeit, die von der Schwerkraft, der Länge und dem aktuellen Winkel abhängt.
Das Problem: Wir können diese Gleichung nicht genau lösen. Das sin(θ) macht es nichtlinear. Es gibt keine Formel, die dir θ zu irgendeinem Zeitpunkt t gibt. Also nähern wir uns — wir treten in kleinen Schritten vorwärts und berechnen den nächsten Zustand aus dem aktuellen.
Das ist es, was ein ODE-Solver tut. Und es gibt bessere und schlechtere Wege, es zu tun.
Die Euler-Methode: Offensichtlich, aber fehlerhaft
Die einfachste Idee: Wenn ich den Zustand jetzt kenne und die Änderungsrate kenne, kann ich den Zustand einen kleinen Zeitschritt später schätzen.
next_angle = current_angle + velocity × dt
next_velocity = current_velocity + acceleration × dt
Das ist Eulers Methode. Es ist wie durch Nebel zu gehen: Sie können einen Schritt voraus sehen, also machen Sie diesen Schritt und schauen Sie noch einmal. In Code:
function euler(f, t, y, dt) {
const dy = f(t, y);
return [
y[0] + dt * dy[0],
y[1] + dt * dy[1]
];
}
Das Problem: Eulers Methode ist erstklassig genau. Das heißt, wenn Sie die Schrittgröße halbieren, halbieren Sie den Fehler. Für ein Pendel akkumuliert sich dieser Fehler - das simulierte Pendel gewinnt langsam an Energie und schwingt breiter und breiter. Nach ein paar Minuten dreht es sich im vollen Kreis. Ein echtes Pendel tut das nie.
RK4: Das Arbeitspferd
1901 veröffentlichten Carl Runge und Martin Kutta eine bessere Methode. Anstatt die Änderungsrate einmal pro Schritt zu betrachten, betrachten Sie sie viermal:
- Messen Sie die Steigung zu Beginn des Schrittes → k1
- Schritt zur Hälfte mit k1, messen Sie dort die Steigung → k2
- Schritt zur Hälfte mit k2, wieder messen → k3
- Schritt zum Ende mit k3, noch einmal messen → k4
- Kombinieren: gewichteter Durchschnitt (k1 + 2k2 + 2k3 + k4) / 6
Das ist viertklassig. Halbieren Sie die Schrittweite und der Fehler sinkt um den Faktor 16. Das Pendel spart Energie richtig für Tausende von Schaukeln.
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])
];
}
Dies ist die Methode, die PinePaper für Pendel-, Feder-Masse- und Van-der-Pol-Simulationen verwendet. Es ist die gleiche Methode, die bei Flugbahnberechnungen in der Luft- und Raumfahrt verwendet wird. 22 Zeilen Code.
Warum das außerhalb der Physik wichtig ist
Das Pendel ist ein Lehrbeispiel. Aber die gleiche Technik - Schritt vorwärts, messen, richtig - gilt überall dort, wo Sie eine Änderungsrate haben:
- Bevölkerungswachstum: dx/dt = r·x·(1 - x/K). Logistisches Wachstum mit Tragfähigkeit. Der gleiche Solver.
- Chemische Reaktionen: Konzentrationen ändern sich mit Raten proportional zu aktuellen Konzentrationen. Der gleiche Solver.
- Neurale Netze: Gradientenabstieg ist eine diskretisierte ODE. Jeder Trainingsschritt ist ein Euler-Schritt entlang der Verlustfläche.
- Wirtschaft: Zinsverbindungen kontinuierlich über dy/dt = r·y. Exponentielles Wachstum ist die einfachste ODE.
- Animation Timing: Lockerungskurven sind Lösungen für Feder-Dämpfer-ODEs. Die "elastischen" und "Bounce" Lockerungen in CSS sind physikalische Simulationen.
Die Mathematik ändert sich nicht. Die Domain tut es. Das ist es, was es zu einer Sprache macht - die gleiche Grammatik beschreibt Schafe zählen, Pendelschaukeln und neuronales Netzwerktraining.
Versuchen Sie es selbst
Öffnen Sie PinePaper und wählen Sie den Dynamic System Generator. Wählen Sie "Pendel". Der Bob schwingt. Ändern Sie nun die Parameter:
- Erhöhen Sie die Schwerkraft → schnelleres Schwingen (kürzere Periode)
- Länge der Stange erhöhen → langsameres Schwingen (längere Periode)
- Beginnen Sie mit einem größeren Winkel → Beobachten Sie, wie die Periode zunimmt (nichtlinearer Effekt, den die kleinwinkelige Näherung des Lehrbuchs verfehlt)
Jede Änderung, die Sie vornehmen, ist eine Messung. Sie haben einen Parameter geändert und das Ergebnis beobachtet. Der RK4-Solver berechnete 30 Bilder pro Sekunde, und das Pendel zeigte Ihnen, was die Gleichung vorhersagt.
Das ist der springende Punkt. Mathematik ist Messung. PinePaper macht es sichtbar.
Referenzen
- Butcher, J.C. (2016). Numerische Methoden für gewöhnliche Differentialgleichungen (3. Aufl.). Wiley.
- Dormand, J.R. & Prince, P.J. (1980). Eine Familie von eingebetteten Runge-Kutta Formeln. Journal of Computational and Applied Mathematics, 6(1), 19-26.
- Euler, L. (1768). Institutionum calculi integralis, Band 1. Impensis Academiae Imperialis Scientiarum.
- Hairer, E., Nørsett, S.P., & Wanner, G. (1993). *Lösen gewöhnlicher Differentialgleichungen I: Nichtsteife Probleme * (2. Aufl.). Springer.
- Kutta, W. (1901). Beitrag zur näherungsweisen Integration totaler Differentialgleichungen. Zeitschrift für Mathematik und Physik, 46, 435-453.
- Newton, I. (1687). Philosophia Naturalis Principia Mathematica. London: Joseph Streater.
- Runge, C. (1895). Über die numerische Auflösung von Differentialgleichungen. Mathematische Annalen, 46(2), 167-178.
- Strogatz, S.H. (2015). * Nichtlineare Dynamik und Chaos * (2. Aufl.). Westview Press.
Der ODE-Solver von PinePaper deckt Euler, RK4 und den adaptiven Dormand-Prince RK45 in etwa 200 Zeilen ab. Probieren Sie die Pendelsimulation kostenlos unter pinepaper.studio/editor.*
Ready to create?
Start making animated GIFs, videos, and graphics — free, no signup.
Open PinePaper Editor