Computeralgebrasysteme/ Einführung

Aus Wikibooks
Wikipedia hat einen Artikel zum Thema:


Unter Computeralgebrasystemen (abgekürzt CAS) wird eine ganze Bandbreite an Programmen verstanden: Kleine Tools, die eine Programmiersprache um wissenschaftliche Werkzeuge, etwa das Plotten von Funktionen, ergänzen, gelten zuweilen bereits als CAS, wohingegen auf der anderen Seite Schwergewichte stehen, die als Softwaresuite den gesamten Bedarf an analytischen oder numerischen Rechnungen bis hin zur wissenschaftlichen Publikation inklusive typografischer Zeichensetzung abdecken. Da die Entwicklung von Computern aus dem wissenschaftlichen Umfeld stammt, war der Einsatz von Computern in der Wissenschaft einer der ersten Einsatzzwecke für Computer, die man erdachte. Kein Wunder, dass Computeralgebrasysteme im Allgemeinen als kompliziert denken, wurden sie doch, salopp gesagt, von Computerexperten der ersten Stunde entworfen!

In kaum einem anderen Gebiet der elektronischen Datenverarbeitung stehen sich so krasse Gegensätze zwischen Entwicklern und Anwendern gegenüber: Anwender von Computeralgebrasystemen sind oft Schüler und Studenten, die im Rahmen ihrer Ausbildung mit solchen Systemen Aufgaben lösen sollen. Das Ziel beim Starten eines CAS ist also fast immer das schnelle Lösen einer Rechnung -- manchmal ein aussichtsloses Unterfangen in Anbetracht der Komplexität solcher Programme.

Natürlich hat sich über dreißig Jahre nach Erscheinen der ersten Softwaresuiten, die man Computeralgebrasystem nennen könnte, im Bildungssektor einiges getan. Es gibt mittlerweile haufenweise gute Literatur über Computeralgebrasysteme, im Internet gepaart mit Tutorials und offline als Kursen für Benutzer. In der Regel fokussieren diese Kurse genau das, was gebraucht wird: Der schnelle Einstieg in das System, welches der Lösung des mathematischen Problems regelrecht im Weg steht. Auf der Strecke bleibt oft das wirkliche Verständnis, was ein Computeralgebrasystem "unter der Haube" macht, um zur Lösung des Problems zu gelangen. Gerade im Studium stoßen aber Rechnungen oft bereits an die Grenzen der algebraischen Berechenbarkeit durch Computeralgebrasysteme, sodass es unumgänglich wird, zu verstehen, warum eine Rechnung auf diese Weise nicht berechenbar ist.

Die Tiefe des Verständnis eines CAS kann sehr unterschiedlich sein: Ausgehend von der Benutzermaske aus reicht ein rudimentäres Verständnis dahin, dass man eine Handvoll Befehle kennt, die man wiederholt anwenden kann, aber nicht wesentlich verändern kann -- etwa weil man in einem Kurs gelernt hat, mit welchem Befehl ein Computeralgebrasystem die erste Ableitung einer mathematischen Funktion bildet. Hat man hingegen den Syntax der Programmiersprache gelernt, mit welcher man das CAS bedient, kann man das System bedienen. Wenn man versteht, auf welche Weise Ausdrücke ausgwertet werden, versteht man die Laufzeiten und Komplexitäten von Programmen, die man tippt -- Zweige der Informatik beschäftigen sich mit solchen Themen. Aus Sicht der Softwaretechnik kann man dann ergründen, wie das CAS aufgebaut ist. Oft gibt es ein  Client-Server-Modell mit einem Rechenkern, der von der Anzeige der Ausgabe in einem Terminal oder einem grafischen Notebook separiert ist. So kann man leicht die Rechenkapazität steigern, in dem man den Rechenkern auf vielen Computern im Netzwerk verteilt. In letzter Instanz kann man den Rechenkern verstehen, der bei der Auswertung algebraischer Systeme eine Menge Wissen verbaut hat. So werden Polynome mithilfe von  Gröbnerbasen gelöst. Mit diesen Mitteln kann man algebraische Rechnungen auf für Computer durchführbare numerische Rechnungen zurückführen. Es gibt auch deshalb so viele verschiedene CAS, weil sie im Kern neue Ansätze verbauen oder für bestimmte mathematische Disziplinen optimiert sind. So wurde etwa das im letzten Kapitel besprochene SAGE von einem Zahlentheoretiker entwickelt, während Mathematica von einem Physiker entwickelt wurde. So erklären sich auch die Stärken und Schächen der Systeme für unterschiedliche Disziplinen.

Dieses Buch versucht, ein Verständnis für verschiedene CAS auf Syntaxebene zu erlangen. Der Leser soll in der Lage sein, sich in ein CAS mit einer deutlich flacheren Lernkurve einzuarbeiten, als es in konventionellen Einführungen der Fall ist. Dafür wird ein bisschen Geduld verlangt: In diesem Buch soll ausführlich auf die zugrundeliegende Philosophie erläutert werden, also welche Grundprinzipien in einem System besonders gewahrt wurden. Sobald man anfängt, nicht mehr gegen ein System zu arbeiten, sondern seine Eigenschaften für sich zu nutzen zu machen, kann man damit auch Hochgefühle erleben.