Die Formel //2158

Als ich vor etlichen Jahren gerade angefangen hatte, zu programmieren, probierte ich – just for fun – ein Programm zu schreiben, das ein bestimmtes physikalisches Phänomen simulieren sollte. Dafür brauchte ich eine ganz spezielle mathematische Funktion, die mein Compiler nicht kannte. Also blieb mir nichts anderes übrig, als selbst diese Funktion zu schreiben.
Damals war das Internet noch nicht so umfassend wie heute. Zumindest fand ich keinen passenden Algorithmus, den ich hätte benutzen können. Folglich musste ich selber ran.

Es handelte sich um die Umkehrfunktion einer Funktion, die als Stammfunktion einer bestimmten analytischen Funktion definiert war.
Ich mochte ja schon damals Potenzreihen, und so machte ich einen klassischen Ansatz mit einer Taylorentwicklung. Für eine Taylorreihe braucht man die Ableitungen der Funktion. Da die Funktion allerdings nur als Umkehrung einer Stammfunktion definiert war, ließ sie sich nicht direkt differenzieren.
Aber nun ja – wir kennen die Umkehrung der Funktion, wir kennen deren Ableitung – da lässt sich schon etwas machen. Stichwort: implizite Differentiation.
Für eine Taylorreihe braucht man aber nicht nur eine Ableitung, sondern alle. Nachdem ich die ersten zwei oder drei händisch abgelitten hatte, erkannte ich ein Muster. Das erlaubte mir, einen weitergehenden Ansatz zu machen, welche Form die n-te Ableitung haben würde. In diesen Ansatz ging die ursprüngliche Funktion ein (also die, die später integriert wird), sowie ein Polynom – dessen Koeffizienten ich natürlich erst einmal nicht kenne.

Der Beweis, dass man die n-te Ableitung so schreiben kann, lief über vollständige Induktion. Zu zeigen, dass die erste Ableitung passt, war trivial. Dann kam der Schluss von n auf n+1. Das war eine etwas langwierige Schreiberei, aber schließlich konnte ich mein q.e.d. dahintersetzen.
Für die Polynome hatte ich nun einen Zusammenhang gefunden, der über einen Koeffizientenvergleich zu einer Rekursionsformel für die Koeffizienten der Polynome führte.
Als nächsten Schritt setzte ich die Polynome in meinen Reihenentwicklungsansatz ein. Ich konnte die Formel ein wenig vereinfachen, und letztendlich hatte ich eine Möglichkeit gefunden, die gewünschte Funktion numerisch über eine Potenzreihe zu berechnen.

Ich war gründlich genug, den Konvergenzradius zu bestimmen. Leider deckte er nicht den gesamten gewünschten Definitionsbereich ab. Nun ja – man muss Abstriche machen. Außerhalb des Konvergenzradiuses dürfte allerdings kaum einmal ein realistischer Fall auftreten, den mein Programm behandeln sollte. Da die ganze Rechnerei eh nur ein Spaßprojekt war, beließ ich es pragmatisch dabei, ohne nach einer besseren Lösung zu suchen, oder sonstige Vorkehrungen zu treffen, um diesen Spezialfall abzufangen.

Vor einiger Zeit fand ich, als ich gerade nach etwas anderem suchte, meine Aufzeichnungen darüber und erinnerte mich dadurch wieder an diese Berechnung.
Ich war neugierig, zu erfahren, ob es zwischenzeitlich einen Algorithmus für diese Funktionsberechnung im Internet geben würde.
Tatsächlich wurde ich fündig. Das Vorgehen wurde etwas anders aufgezogen, so dass ich erst gewisse Substitutionen und Umskalierungen machen musste, um die Ergebnisse zu vergleichen. Und siehe da – zumindest die ersten Koeffizienten stimmen überein. Leider, leider habe ich keine Herleitung dafür gefunden, so dass ich mich frage, ob die Herleitung im wesentlichen der meinen entspricht, oder eine ganz andere, vielleicht einfachere und elegantere gefunden wurde (oder vielleicht aber auch noch umständlicher und komplizierter als meine).
Während ich mich damals auf eine Rekursionsformel für die Koeffizienten der Polynome beschränkt habe, ist dort eine geschlossene Form angegeben. Dafür aber kein Ton über den Konvergenzradius.

Jetzt werdet ihr euch vielleicht fragen, warum ich nicht verraten habe, um welche mathematische Funktion es dabei geht. Tja, damals habe ich (als Klara Nahme) in einem entsprechenden Forum etwas dazu geschrieben. Das war zwar nur kurz und vage, aber es ist mir dennoch zu riskant, darüber eine mögliche Verknüpfung zu meinem Blog zu erstellen.

Werbeanzeigen

Über Anne Nühm (breakpoint)

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

10 Antworten zu Die Formel //2158

  1. keloph schreibt:

    das war bestimmt ein toller moment. ich freu mich mal mit für dich.

    Gefällt 1 Person

  2. Plietsche Jung schreibt:

    Das ist mir zu hoch und zu weit weg von meinem Leben.
    Solange du weißt, was du tust und es passt, ist es gut.

    Liken

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.