Unterstützen
Bitte unterstütze mich, wenn dir diese Seite gefällt.
Ergebnis
Wie der Integralrechner funktioniert
Für den technisch interessierten Benutzer folgt eine kurze Erklärung, wie der Integralrechner funktioniert.
Die eingegebene mathematische Funktion wird zunächst durch einen Parser analysiert. Der Parser verwandelt die mathematische Funktion in eine für den Computer besser verarbeitbare Struktur, nämlich einen Baum (siehe Bild unten). Der Integralrechner muss hierbei die Rangfolge verschiedener Operatoren berücksichtigen (z. B. "Punkt vor Strich"). Eine Besonderheit bei mathematischen Ausdrücken gilt es ebenfalls zu beachten: Das Multiplikationszeichen wird oft weggelassen, z. B. schreiben wir 5x
statt 5*x
. Der Integralrechner muss diese Fälle erkennen und das Multiplikationszeichen ergänzen.
Der Parser ist in JavaScript programmiert (basierend auf dem Shunting-yard-Algorithmus) und kann somit direkt im Browser des Benutzers ausgeführt werden. Das ermöglicht eine sofortige Rückmeldung noch während der Eingabe der mathematischen Funktion. Dazu wird aus dem vom Parser generierten Baum eine LaTeX-Darstellung der Funktion generiert. Für die Darstellung im Browser sorgt MathJax.
Wird der "Los!"-Knopf angeklickt, so sendet der Integralrechner die mathematische Funktion in Originalform mitsamt der Einstellungen (Integrationsvariable und Integrationsgrenzen) an den Server. Dort wird die Funktion erneut analysiert. Diesmal wird die Funktion jedoch in eine andere Form umgewandelt, so dass sie vom Computeralgebrasystem Maxima verstanden wird.
Maxima übernimmt die Berechnung der Integrale. Die Ausgabe von Maxima wird anschließend wieder in LaTeX-Form überführt und dem Benutzer präsentiert. Die Stammfunktion wird in vielen Fällen mit Hilfe des Risch-Algorithmus berechnet, dessen Schritte für Menschen kaum nachvollziehbar sind. Darum ist die Ausgabe eines verständlichen Rechenwegs bei Integralen eine große Herausforderung.
Für das Anzeigen des Rechenwegs werden dieselben Integrationstechniken angewendet, die auch ein Mensch anwenden würde. Das dazu notwendige Programm wurde über mehrere Jahre entwickelt und ist in Maximas eigener Programmiersprache geschrieben. Es besteht aus mehr als 17 000 Codezeilen. Wenn der Integrand einer bekannten Form entspricht, werden feste Regeln angewendet, um das Integral zu lösen (z. B. Partialbruchzerlegung bei rationalen Funktionen, trigonometrische Substitution bei Integranden, die eine Quadratwurzel eines quadratischen Polynoms enthalten, oder partielle Integration bei Produkten bestimmter Funktionen). Ansonsten werden verschiedene Substitutionen und Transformationen durchprobiert, bis entweder das Integral gelöst ist, das Zeitlimit erreicht ist oder alle Optionen erfolglos ausprobiert wurden. Dem Rechner fehlt zwar die mathematische Intuition, die zum Finden einer Stammfunktion von Vorteil ist, aber dafür kann er viele verschiedene Möglichkeiten innerhalb kürzester Zeit durchgehen. Die Schritt für Schritt berechneten Stammfunktionen sind oftmals wesentlich kürzer und eleganter als die von Maxima.
Die "Lösung überprüfen"-Funktion hat die schwierige Aufgabe, für zwei mathematische Ausdrücke zu bestimmen, ob diese äquivalent sind. Dazu wird ihre Differenz gebildet und mit Hilfe von Maxima möglichst stark vereinfacht. Hierbei werden z. B. trigonometrische/hyperbolische Funktionen in ihre Exponentialform überführt. Wenn so gezeigt werden kann, dass die Differenz Null ist, dann ist das Problem gelöst. Anderenfalls wird ein probabilistischer Algorithmus angewendet, der die Funktionen an zufällig ausgewählten Stellen auswertet und vergleicht. Im Fall von Stammfunktionen wird die gesamte Prozedur auch für ihre jeweiligen Ableitungen durchgeführt, da Stammfunktionen sich durch Konstanten unterscheiden dürfen.
Die interaktiven Funktionsgraphen werden im Browser berechnet und in einem Canvas-Element (HTML5) dargestellt. Der Rechner erzeugt hierzu aus der eingegebenen Funktion und der berechneten Stammfunktion jeweils eine JavaScript-Funktion, die schließlich in kleinen Schritten ausgewertet wird, um den Graph zu zeichnen. Beim Zeichnen des Funktionsgraphen werden auch Definitionslücken wie z. B. Polstellen aufgespürt und speziell behandelt. Die Gestensteuerung ist mit Hammer.js umgesetzt.
Hast du noch Fragen oder Verbesserungsvorschläge zum Integralrechner? Gerne kannst du mir eine E-Mail schreiben.