Simulation von Differentialgleichungen mit Tabellenkalkulationen (1)

Differentialgleichungen bestimmen die Physik: Von den Newton’schen Bewegungsgleichungen bis hin zur Schrödingergleichung der Quantenmechanik. Leider ist die zur Lösung benötigte Mathematik nicht immer ganz einfach. Und schon gar nicht immer anschaulich. Vor allem in der Schule stellen DGL’s Schüler oft vor Verständnisschwierigkeiten.

Moderne Computer bieten hier viele Möglichkeiten, den Differentialgleichungen ihren Schrecken zu nehmen und Differentialgleichungen – gerade für Schüler – anschaulich zu machen. Nummerische (Näherungs-)lösungen sind ohne großen Aufwand mit Standardsoftware möglich, oftmals trägt das selbstständige „Programmieren“ sogar erheblich zum Verständnis der Physik hinter den DGL bei. Ich möchte hier nach und nach einige Aspekte etwas näher beleuchten und Zugänge  mit Excel OpenOfficeCalc, vorstellen. Heute geht es erstmal um ein wenig Theorie, die Entladung eines Kondensators und Reaktionen 1. Ordnung als Anwendung für die chemische Kinetik.

Näherungslösungen für Differentialgleichungen

Eine Differentialgleichung stellt eine Beziehung zwischen einer Funktion und ihren Ableitungen her (im einfachsten Fall: zwischen Funktion und ihrer ersten Ableitung). Die Lösungsmenge so einer Differentialgleichung sind dann all diejenigen Funktionen, die die in der DGL gestellten Bedingungen erfüllen. Ein einfaches Beispiel (das uns heute in abgewandelter Form beschäftigen wird) ist eine lineare, homogene DGL 1. Ordnung:

[latex size=“1″]frac{dx}{dt}=x leftrightarrow dot{x} = x[/latex]

Ich benutze hierbei die in der Physik übliche Schreibweise mit einem Punkt über der Variable, um eine Zeitableitung anzudeuten. Diese DGL ist analytisch einfach lösbar, auch viele Schüler können leicht nachvollziehen, dass gerade die e-Funktion ihre eigene Ableitung ist. Dennoch kann man hieran einige einfache Überlegungen anschließen. Zunächst noch einmal zu den Begrifflichkeiten: linear heißt eine DGL, wenn die Funktion und ihre Ableitungen nur mit dem Exponenten 1 in der Gleichung auftauchen. homogen, wenn es keinen Term gibt, in dem weder die Funktion noch eine ihrer Ableitungen auftauchen (entschuldigt, das ist mathematisch alles nur halbsauber, muss uns hier aber nicht näher interessieren).

Wie diskretisiert man nun diese DGL? Die Ableitung ist ja eigentlich nichts anderes als der folgende Grenzwert (der – so die Funktion differenzierbar ist – gegen einen bestimmten Wert konvergiert):

[latex size=“1″]limlimits_{Delta t rightarrow 0}{frac{Delta x}{Delta t}}[/latex]

Für kleine [latex]Delta t[/latex] ist aber bereits der Bruch eine sehr gute Näherung für die Ableitung – und genau das ist der Kerngedanke bei der numerischen Simulation. Kurz: Wähle [latex]Delta t[/latex] hinreichend klein, dann ist der Differenzenquotient

[latex size=“1″]frac{Delta x}{Delta t} = frac{dx}{dt}[/latex]

Das Gleichheitszeichen ist mathematisch natürlich nicht ganz sauber, der Differenzenquotient ist nur im Grenzwert gleich dem Differentialquotienten. Für unsere Zwecke ist es aber hilfreich, sich dieses Gleichheitszeichen zu denken.

DGL des Entladevorgangs eines Kondensators

Zur Herleitung der Differentialgleichung für den Entladevorgang eines Kondensators bietet die Wikipedia wesentlich mehr Informationen, als ich hier unterbringen kann und möchte. Entscheidend ist: Der Entladevorgang eines Kondensators wird durch folgende Differentialgleichung beschrieben:

[latex size=“1″]frac{dQ}{dt} =(-1) cdot frac{Q}{RC} cdot Q(t)[/latex]

C und R sind hierbei die bauartbedingte Kapazität und der ohm’sche Widerstand des Kondensators.

Simulation des Entladevorgangs mit OpenOfficeCalc

Eine von mir erstellte Beispieldatei gibt es hier. Auf diese wird im weiteren Text immer wieder Bezug genommen.

Notwendig zur Lösung der DGL ist zunächst die Diskretisierung: Der Differentialquotient [latex]frac{dQ}{dt}[/latex] wird durch den Differenzenquotienten [latex]frac{Delta Q}{Delta t}[/latex] angenähert (siehe oben). Weiterhin muss ein Startwert vorgegeben werden, der die Ladung zum Startzeitpunkt beschreibt. Zweckmäßiger Weise wird sowohl der Startwert als auch das Diskretisierungsintervall [latex]Delta t[/latex] über eine eigene Tabellenzeile definiert (in der Beispieldatei: Zellen B4 und B7).

Außerdem erscheint es mir zweckmäßig, den Widerstand und die Kapazität des Kondensators in einer eigenen Zelle zu definieren (B5 und B6). Damit ist auch schon fast alles getan und OpenOffice kann für uns rechnen.

Dazu wird zunächst eine Spalte mit fortlaufender Zeit definiert. Hierzu wird auf den Startwert „0“ in jeder Zeile das Diskretisierungsintervall [latex]Delta t[/latex] addiert (Spalte A ab A10). Das war noch einfach, oder?

Dann gilt es, die Ladungsänderung in dieser Zeit zu berechnen. Hierzu wird angenommen, dass die Ladungsmenge Q in der Zeit [latex]Delta t[/latex] als konstant angenommen werden kann. Dann gilt für [latex]Delta Q[/latex]:

[latex size=“1″]Delta Q =(-1) cdot frac{Q}{RC} cdot Delta t[/latex]

Dieser Wert wird das erste Mal zur Zeit [latex]Delta t[/latex] berechnet (B11) und gibt gerade die Änderung der Ladung an. Diese wird nun einfach zur vorher vorhandenen Ladung addiert (C11). Und das war es auch bereits: Die Zeile (A/B/C 11) kann einfach nach unten gezogen werden und das Ergebnis in ein Diagramm gezeichnet werden. Das sieht dann so aus:

Entladung eines Kondensators, simuliert mit OpenOffice
Entladung eines Kondensators, simuliert mit OpenOffice

Der Vorteil daran, die einzelnen Variablen als eigenes Feld in der Tabelle zu definieren: Es ist nun möglich, an den Werten herumzuspielen und zu schauen, welche Auswirkungen dies hat. Übrigens: Der Graph sieht doch verdächtig nach einer Exponentialfunktion aus, oder? Genau diese erhielte man auch durch die analytische Lösung der Differentialgleichung.

Simulation einer Reaktion 1. Ordnung

Nicht nur in der Physik tauchen solch einfache Differentialgleichungen 1. Ordnung auf, sondern z.B. auch in der chemischen Kinetik. Eine Reaktion 1. Ordnung gehorcht der folgenden DGL (c: Konzentration des Stoffes, k: Geschwindigkeitskonstante):

[latex size=“1″]frac{dc}{dt}=-k cdot c[/latex]

Sie sieht also auch ganz ähnlich aus wie oben. Die Lösung funktioniert daher ebenfalls analog und ich will sie gar nicht näher erläutern. Eine Beispieldatei befindet sich hier. Die Simulation gilt genauso übrigens auch für radioaktive Zerfälle, da diese im Grunde auch „nur“ Reaktionen 1. Ordnung darstellen…

Im nächsten Teil dieser kleinen Serie möchte ich versuchen, auch etwas kompliziertere Differentialgleichungen mit der hier vorgestellten Methode zu lösen. Zunächst werde ich mich an das mathematische Fadenpendel herantrauen, um dann auch noch den harmonischen Oszillator (mit Dämpfung!) zu besprechen. Kommentare und Ergänzungen sind natürlich immer willkommen!

Bisher in dieser Artikelserie:

2 Antworten auf „Simulation von Differentialgleichungen mit Tabellenkalkulationen (1)“

  1. Hi!
    Hab ich einen Rechenfehler bei mir? Müssten in der Gleichung für Delta Q nicht R und C im Nenner stehen?

    Eine sehr nette Idee, die sich auch zum Beispiel in Dorn Bader Physik (für NRW) – dort allerdings nicht so anschaulich erklärt – weiter so!

    Hatte sowas ähnliches schon mal für Luftdruck umgesetzt. Allerdings waren die Schüler mathematisch in der 10. Klasse noch nicht so weit – im 12er Grundkurs verstehen es hoffentlich ein paar mehr :)

    Viele Grüße,

    R. Czock

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.