Sie gehören zu den interessantesten und anspruchsvollsten Programmen, und das nicht nur für Mathematiker: Computeralgebra-Systeme (CAS) unterscheiden sich grundlegend von numerischen Programmiersprachen wie Fortran, C/C++ oder Pascal/Delphi. Letztere sind darauf ausgelegt, Zahlen als Lösungen für Gleichungen oder Relationen zu erhalten, sie nutzen dazu exakte Verfahren oder Näherungen.
Ob die Ergebnisse exakt sind, hängt neben dem Verfahren auch vom Typ der gewählten Zahl ab (etwa Integer oder Floating-Point). So lassen sich die Ergebnisse exakter Verfahren mit Floating- Point-Zahlen oft nur als Näherung darstellen. Der Vorteil dieser Art zu Rechnen ist die hohe Geschwindigkeit.
CA-Systeme rechnen mit Symbolen und Zahlen. Sie stellen Zahlen beliebig genau dar: 1/3 ist in einem CAS eben nicht 0,333333333..., sondern der Bruch 1/3. Das hat weitreichende Konsequenzen für die Lösung algebraischer Aufgaben, hat aber auch entscheidende Nachteile für die Rechenzeit. Längere Algorithmen müssen diese Brüche mitschleppen, wobei Zähler und Nenner ansehnliche Größenordnungen erreichen können. Dafür ist das Resultat aber exakt.
Beliebig genau rechnen
Numerische Sprachen kürzen nach jedem Rechenschritt radikal entweder auf die eingestellte oder auf die maximal erreichbare Genauigkeit. Rundungs- oder Abschneidefehler können sich dabei zu völlig falschen Ergebnissen summieren. Allerdings kommt das in durchschnittlich komplexen Problemlösungen kaum vor. Das Maple-Worksheet in Abbildung 1 zeigt an einem Beispiel, in welchen Rechenschritten Gleitkommazahlen zum Problem werden.
Eine weitere Besonderheit ist das Rechnen mit Symbolen: Die Ergebnisse von Rechnungen können auch Symbole (etwa frei wählbare Parameter) enthalten und nicht nur aus einer Zahl bestehen. Diese Symbole sind für das Interpretieren der Ergebnisse oft von entscheidender Bedeutung. Sie liefern dem Anwender tiefere Einsichten in die zugrunde liegende Theorie, als dies rein numerische Programme könnten.
Im Laufe der Zeit ist eine Reihe von CA-Systemen entstanden, die sich in zwei Gruppen einteilen lassen.
Abbildung 1: Dieses Maple-Worksheet demonstriert den Unterschied zwischen genauer und näherungsweiser Darstellung von Zahlen: Das Runden von Zwischenergebnissen verfälscht das Endergebnis.
Groß und klein
Kleinere CAS sind auf bestimmte Gebiete spezialisiert und erheben den Anspruch, dort auch schnell und gut zu arbeiten. Zudem sind sie - als Entwicklungsprodukte universitärer Forschung - meist Freeware oder Shareware, in jedem Fall aber preiswert. Zu dieser Gruppe zählen MuPAD[1], Fermat, Cocoa, Singular, Form und Reduce. Dabei ist MuPAD in Funktionalität und Vermarktung eher ein Grenzgänger.
Große universelle CAS umfassen neben der symbolischen (algebraischen) Rechenweise einen guten numerischen Part und eine ausgereifte Grafik. Diese Produkte erstellen auch qualitativ hochwertige Dokumente und nutzen Web-Technologien. Ihre Entwickler sprechen oft schon nicht mehr von CAS, sie wollen Systeme für das Technical Computing schaffen.
Solche Produkte sprengen den Rahmen universitärer Gruppen. Früher oder später entstehen Unternehmen, die die Entwicklung, Koordination und Vermarktung kommerziell organisieren. Bekannte Beispiele für große CAS sind Maple, Mathematica, Macsyma oder Axiom. Insbesondere Maple (Waterloo Maple) und Mathematica (Wolfram Research) haben durch ihr Marketing und den durchorganisierten Vertrieb einen großen Marktanteil erzielt.
Die Zielgruppe dieser Softwaresysteme sind Universitäten, Hochschulen und technische Unternehmen mit einem recht breiten Spektrum von Anwendungsmöglichkeiten. Die Preise sind entsprechend und eine Hemmschwelle für den Einsatz etwa in Schulen. Dabei könnten gerade Schulen solche Systeme mit großem Gewinn einsetzen. Die Nutzeranteile von Maple in Deutschland und Österreich zeigen dies deutlich, siehe Tabelle 1.