Gute Mathematikprogramme sind gewöhnlich teuer und benötigen viel Rechenkapazität. Riemann II ist in dieser Hinsicht ein Lichtblick: Es kostet einen Bruchteil der Preise vergleichbarer Systeme und verspricht enorme Leistungsfähigkeit.
Wer den Vorgänger »Riemann« kennt, wird bereits nach dem Starten positiv überrascht sein: »Riemann II« ist nun voll in GEM eingebunden und arbeitet mit Menüs und Fenstern. Der Text- und Formeleditor befindet sich in einem GEM-Fenster. Der Editor kennt zwei Modi: Im »Editier«-Modus benimmt er sich wie ein gewöhnlicher Texteditor, im (voreingestellten) interaktiven Modus kommunizieren Sie mit Riemann (siehe Bild 1). Geben Sie eine Anweisung ein, so wertet er sie unverzüglich aus und zeigt das Ergebnis in der folgenden Zeile an.
Bei der Formelauswertung rechnet Riemann normalerweise symbolisch. Das bedeutet, daß er die Formel lediglich nach den Rechengesetzen so weit wie möglich vereinfacht. Die meisten anderen Mathematikprogramme auf dem ST werten numerisch aus, d.h. das Ergebnis ist immer eine Zahl. Das numerische Ergebnis von »1/3« ist 0.333333333333333... Die symbolische Auswertung von Riemann gibt als Ergebnis von 1 /3 wieder 1 / 3 zurück. Sollten Sie dennoch die numerische Auswertung bevorzugen, so schalten Sie Riemann durch einen Befehl in den numerischen Modus. Dabei läßt sich zudem bestimmen, welche der eingebauten Funktionen (Sinus, Logarithmus etc.) Riemann symbolisch und welche numerisch bearbeiten soll. In Riemann besitzt eine Zahl maximal 315000 Stellen; dies reicht selbst für außergewöhnliche Berechnungen - zum Beispiel 1000 Fakultät (»1000!«).
Die symbolische Auswertungsmethode hat viele Vorteile gegenüber der numerischen: Erstens bleibt stets die exakte Rechengenauigkeit gewährleistet und zweitens sind symbolische Ergebnisse oft aussagekräftiger. Außerdem erlaubt sie die Verwendung von Undefinierten Variablen - eben den Symbolen. Damit steht Ihnen ein ungemein mächtiges Werkzeug zur Verfügung. Die einfachste Anwendung ist die Formelvereinfachung: Zum Beispiel löst Riemann die Formel »(x+y)2« problemlos nach »x2 + y2 + 2 x y« auf. Sehr positiv fällt dabei auf, daß der Anwender der aktuellen Aufgabe entsprechend die Formelauswertung nach eigenen Vorstellung kontrollieren kann. Mit der Kontrollvariablen »NUM-NUM« bestimmen Sie etwa, ob Riemann einen Term der Form »A x (B + C)« so lassen oder nach »A B + A C« umformen soll.
Die Ergebnisse stellt Riemann auf Wunsch jetzt auch im sogenannten Pretty-Print-Format dar (siehe Bild 1). Dabei nutzt es die Grafikzeichen, um etwa eine Wurzel, eine Potenz oder einen Bruchstrich optisch ansprechender zu gestalten. Diese voreingestellte Darstellung hilft, die Struktur der Formeln besser zu erfassen. Das aktuelle Ergebnis zeigt Riemann nicht nur an, sondern weist es auch der Variablen »@« zu. Variablen sind wie auch bei anderen Programmiersprachen Platzhalter für Ausdrücke; sie nehmen beliebige Zahlen, Zeichen ketten oder sogar Formeln an. Mit der Anweisung »x:SIN(1/y);« weisen Sie der Variablen »x« den Term »SIN(1/y)« zu. Dabei ist »y« ebenfalls eine Variable - die wegen der symbolischen Auswertung jedoch nicht definiert sein muß.
Das Texteditor-Fenster entspricht einem (fast) endlosen Rechenblatt; durch die Scrollbalken blättern Sie jederzeit zu früheren Anweisungen und Ergebnissen zurück. Riemann besitzt ebenfalls viele Tastenfunktionen, um das Editieren komfortabler zu machen. So können Sie unter anderem seitenweise blättern, Zeilen einfügen und löschen, an den Bildschirm- bzw. Textanfang und dessen Ende springen. Wem die voreingestellte Tastaturbelegung mißfällt, der kann sie problemlos ändern. Über die Menüzeile protokollieren Sie die Sitzung auf Wunsch in einer Datei beziehungsweise auf dem Drucker mit. Außerdem läßt sich der Inhalt des Rechenblattes speichern oder ein altes Rechenblatt wieder laden.
Riemann beherrscht die Rechenregeln der reellen und komplexen Zahlen, der trigonometrischen Funktionen, des Differen-zierens und der Integration, der Matrizenrechnung, der Booleschen Logik und vieler anderer Bereiche der Mathematik.
Nahezu die gesamte Logik und Lösungsalgorithmen sind in der LISP-ähnlichen Programmiersprache von Riemann geschrieben und liegen als Quelltexte dem Paket bei. Somit ist es äußerst einfach, die bestehenden Regeln zu erweitern. Die eingebaute Programmiersprache macht es dem Benutzer leicht, eigene Funktionen zu definieren. Um etwa Riemann das Berechnen des Binominal-koeffizienten beizubringen, geben Sie die Funktion
FUNCTION BINOM(N,K),
N!/(K! (N-K)!), ENDFUN;
ein. Der Aufruf »Bl-NOM(49,6);« ergibt somit die Zahl 13983816. Rechenregeln bringen Sie Riemann ebenso leicht mit dem »GENRULE«-Befehl bei. Die Anweisungen
GENRULE(f(0),1 )$ GENRULE (f(n)l (INTEGER(n) AND n>0)), n f(n-1 ))$
definieren die rekursive Arbeitsweise der neuen Fakultätsfunktion »f«. Von nun an erzeugt »f(4)« das Ergebnis 24.
Eine Spezialität von Riemann ist das Lösen von Gleichungen. Eine typische Gleichung ist etwa »x2+5 == a« (siehe Bild 1). Diese löst Riemann automatisch durch den »SOLVE«-Befehl nach der angegebenen Variable auf. Da es etwa in diesem Fall mehrere Lösungen - eine positive und eine negative - gibt, listet Riemann alle hintereinander auf. Ist die Lösung von x eine beliebige Zahl, so gibt Riemann etwa »x == ARB(1)« aus. »ARB« steht dabei für einen beliebigen Wert.
Für lineare Gleichungssysteme und viele andere Zwecke der linearen Algebra benötigt man Vektoren und Matrizen. Riemann unterscheidet zwischen Zeilen- und Spaltenvektoren. Einen dreispaltigen Zeilenvektor weisen Sie etwa einer Variable durch »ZEILE : [x,y,x2];« zu, einen dreizeiligen Spaltenvektor durch »SPALTE : {x,y,x2};«. Eine Matrix ist eine Kombination aus Spalten- und Zeilenvektor: »MATRIX : {[1,2],[3,4]};«. Befinden Sie sich im Pret-ty-Print-Modus, so gibt Riemann die Matrix in der gewohnten Matrix-Schreibweise (siehe Bild 1) aus.
Riemann kennt viele Funktionen, um die Arbeit mit Vektoren und Matrizen zu erleichtern: Mit »+« addieren Sie Vektoren beziehungsweise Matrizen, mit ».« berechnen Sie das Matrizenprodukt, mit »DOT« das Skalarprodukt und mit »CROSS« das Vektorprodukt. Außerdem errechnet Riemann auf Wunsch die transponierte Matrix, eine Einheitsmatrix beliebiger Dimension oder die Determinante. Einige elementare Funktionen wie etwa die Berechnung der Eigenwerte und -vektoren fehlen leider, können jedoch zur Not nach programmiert werden. Lineare Gleichungssysteme errechnen Sie mit der »LINEQN«-Funktion. Sie erwartet zwei Argumente: einen Zeilenvektor mit den Gleichungen und einen Zeilenvektor mit den Variablennamen, nach denen es das System auflösen soll: »LINEQN( [x-y==0, x+y==2], [x,y]);« ergibt etwa »[x = 1, y == 1 ]«. Auch hier erkennt Riemann verschiedene Lösungen.
Eine weitere Spezialität von Riemann ist das Differenzieren und Integrieren. Zum Differenzieren dient der Befehl »DIF«. Über die Argumente bestimmen Sie den abzuleitenden Ausdruck und die Variable, nach der Riemann differenzieren soll. Dabei können Sie auch bestimmen, wie oft abzuleiten ist. Die Anweisung »DIF(xn,x,2)« leitet etwa »xn« zu »n x(rvl)« und dieses zu »n (n-1) x(n'2)« ab. Beim Integrieren einer Funktion unterscheidet Riemann zwischen den bestimmten und den unbestimmten Integralen. »DEFINT(x2,x,0,1);« liefert etwa das bestimmte Integral von »x2« zwischen 0 und 1: 1/3. Riemann kommt dabei auch mit komplexen Formeln gut zurecht. Falls ein Ausdruck dennoch Probleme bereitet, liefert die Taylorreihen-Entwicklung des Ausdrucks in den meisten Fällen ein integrierbares Polynom (siehe auch Bild 2).
Alle interessanten Funktionen zu beschreiben, würde den Rahmen dieses Tests sprengen. Viele Spezialgebiete der Mathematik und Physik liegen Riemann als externe Regelpakete bei, die Sie problemlos nachladen beziehungsweise auf Wunsch in die Grundregeln integrieren können. Die wichtigsten Pakete bieten Funktionen zur Vektoranalysis, zur Lösung von Differentialgleichungen (Bild 2) und zur Tensorrechnung in beliebigen Räumen.
Neben all diesen Funktionen und Rechenregeln kann Riemann auch rationale Terme beliebig umformen. Er kann sie zerlegen, ausmultiplizieren oder zusammensetzen. Mit der »EXPAND«-Anweisung multipliziert Riemann Zähler und Nenner vollständig aus, »FCTR« faktorisiert den Zähler und Nenner, »DIVOUT« entfernt Faktoren, die einen bestimmten Teilterm enthalten und im Nenner und Zähler Vorkommen. »PARFRAC« dient zur Partialbruchzerlegung und »RATIONALIZE« erweitert den Zähler und Nenner mit dem komplex konjungierten des Nenners und macht somit den komplexen Nenner reell.
Eine einzigartige Eigenschaft von Riemann ist das sogenannte Formula Modelling. Diese Technik erlaubt es dem Anwender, die dargestellten Terme nach eigenen Vorstellungen umzuformen. So können Sie etwa von einem Term den Nenner herausnehmen und in einen anderen Term wieder einsetzen. Dazu verwendet Riemann den Term-Stack. Um einen Teilterm (etwa den Nenner) auf diesen Stack zu bringen, positionieren Sie den Textcursor beziehungsweise die Maus auf den Teilterm und drücken eine Funktionstaste. Der oberste Stackterm - auch über die Variable »#« - läßt sich nun an beliebigen Stellen in anderen Termen einfügen.
Ein Kritikpunkt von der alten Version von Riemann war, daß es keinen angemessenen Funktionsplotter besaß. Dies hat sich in Riemann II gründlich geändert. Über die zwei Befehle »GRAPH« (2D-Grafik) und »GRAPH3« (3D-Grafik) erzeugt das Programm ansprechende Funktionsgraphen (siehe Bild 3). Dabei verwendet Riemann vorbildlicherweise die Vektorgrafik des GEM-VDI. Somit sind die erzeugten Grafiken geräteunabhängig und lassen sich problemlos und in hervorragender Qualität auf einem Drucker oder in einem Metafile ausgeben. Über Dialogboxen oder Funktionen steuern Sie das Aussehen der Grafik: So wählen Sie die Bemaßung (linear oder logarithmisch), die Achsenbeschriftung und die Skalierung. Bei den 3D-Grafiken schalten Sie auf Wunsch noch eine Beleuchtung der Graphen hinzu und bestimmen die gewünschte Schattierung der Flächen.
Die leistungsfähige Programmiersprache erlaubt es, Riemann in Sachen Funktionen und Rechenregeln beliebig zu erweitern. Zum schnellen Erlernen der Sprache liegt Riemann II ein Programmierkurs auf Diskette bei. Ein weiterer Pluspunkt geht an das ausführliche Handbuch, das in über 400 Seiten den Anwender mit vielen Beispielen in alle Bereich von Riemann II einführt. Wer ein leistungsfähiges Mathematikprogramm und -pro-gram miersystem sucht, ist mit Riemann II bestens bedient. Und auch der Preis von 298 Mark beziehungsweise 218 Mark für Studenten ist dabei nicht zu hoch angesetzt. Riemann läuft auch in Farbe und auf dem Atari TT. (uh)
Bezugsquelle: Begemayer & Niemeyer, Göllitzer Str. 12, 7500 Karlsruhe 41
Name: Riemann II
Preis: 298 Mark, 218 Mark für Studenten
Hersteller: Begemayer & Niemeyer
Stärken: Mächtige Funktionen und Programmiersprache □ nutzt GEM voll aus □ beliebig konfigurier- und erweiterbar □ ausführliches Handbuch □ komfortabler Funktionsplotter □ viele Beispiele und Zusatzpakete
Schwächen: -
Fazit: Ein mächtiges und komfortables Mathematikprogramm und -programmiersystem mit einem ausgezeichneten Preis-/Leistungsverhältms.