Anwendungen

Aus LinuxUser 05/2003

Anwendungen

100% Pure Ahorngrips

Kaum ein halbes Jahr auf dem Markt, bietet die Mathematik-Software Maple in Version 8 nicht nur die neue “Maplet”-Technologie als Standardpaket, sondern zeigt auch, dass sie sich nicht nur an Mathematiker wendet. Während Fachzeitschriften reihenweise die neuen mathematischen Funktionen auflisten, wollen wir hier aufzeigen, was sich hinter Maplets verbirgt und was alles im Internet auf die verschiedenen Anwender wartet.

Neben den von Herstellern als “evolutionär” bezeichneten Neuerungen in Maple-Version 8, die sich tatsächlich eher an den (mehr oder weniger fortgeschrittenen) Studenten einer naturwissenschaftlichen/mathematischen Disziplin wendet, versucht Maple besonders mit den “revolutionären” Neuerungen, anwenderfreundlich zu werden. Das merkt man schon bei der Handhabung der vielen neuen Möglichkeiten, die man nun auch schon mit wenigen Mausklicks erreicht – insbesondere der Bereich der 2D- und 3D-Grafiken läuft mit dem so genannten Plot-Builder sehr einfach ab, da sich dort viele Parameter vor der Grafikerstellung bequem einstellen lassen (siehe Abbildung 1). Auch der neue Java-basierte Weg, die Software mit dem Produkt Install Anywhere der Firma “Zero G” zu installieren, funktioniert problemlos und ist noch bequemer als der sonst oft übliche Linux-Dreisatz configure/make/make install, ja: sogar bequemer als das bei Windows übliche Setup. Was aber für den Anwender über alle Maße positiv ist, ist die Erfindung der Maplets.

Abbildung 1: Plot-Builder

Abbildung 1: Plot-Builder

Eine gute Idee

Mit der neuen Maplet-Technologie kann der Anwender ganze grafische Oberflächen und (geschachtelte) Dialoge für seine Anwendungen selbst gestalten und entwickeln. Dem Ganzen liegt eine geniale Geschäftsidee zu Grunde: Der Benutzer braucht zwar Maple, um seine Oberfläche nutzen zu können, er wird aber nicht in die Pflicht genommen, in der Maple-eigenen Sprache oder Java, auf denen die Oberflächen basieren, irgend welche Kenntnisse besitzen oder gar zu programmieren. Damit richten sich die Maplet-Erfinder gerade an Nichtprogrammierer, die sich einfache Anwendungen aus dem Internet herunterladen oder sofort loslegen wollen.

Darüber hinaus wurden die Maplets in sauberen Schichten erschaffen (siehe Abbildung 2) – das bedeutet, dass ein Designer von Maplets zwar in Berührung mit der Maple-Sprache kommt, hier aber die funktionsgewaltigen Bibliotheken nutzen kann und dabei von Java nichts wissen muss.

Abbildung 2: Schichten der Maplet-Programmierung

Abbildung 2: Schichten der Maplet-Programmierung

Dass die Maplet-Erstellung trotzdem auch dem ungeübten Programmierer zugänglich ist, soll ein kleines “Hallo-Welt”-Beispiel zeigen, welches eine einfache Box öffnet, in die ein Text eingegeben werden kann und die durch Drücken eines Knopfes wieder verlassen wird (siehe Kasten 1 und Abbildung 3).

Abbildung 3: Schichten der Maplet-Programmierung

Abbildung 3: Schichten der Maplet-Programmierung

Kasten 1: “Hallo Welt!”-Maplet

> # Für Maplets muss zuvor ein Basispaket geladen werden.
> # Beim Laden des entsprechenden Unterpakets werden
> # die vielen verfügbaren Funktionen sichtbar.
> with(Maplets[Elements]);
  [Action, AlertDialog, Argument, BoxCell, BoxColumn, BoxLayout,
        BoxRow, Button, ButtonGroup, CheckBox, CheckBoxMenuItem,
        CloseWindow, ColorDialog, ComboBox, ConfirmDialog,
        DropDownBox, Evaluate, FileDialog, Font, GridCell, GridLayout,
        GridRow, Image, InputDialog, Item, Label, ListBox, Maplet,
        MathMLEditor, MathMLViewer, Menu, MenuBar, MenuItem,
        MenuSeparator, MessageDialog, Plotter, PopupMenu,
        QuestionDialog, RadioButton, RadioButtonMenuItem, Return,
        ReturnItem, RunDialog, RunWindow, SetOption, Shutdown, Slider,
        Table, TableHeader, TableItem, TableRow, TextBox, TextField,
        ToggleButton, ToolBar, ToolBarButton, ToolBarSeparator,
        Window]
> # Das "Hallo Welt"-Maplet definieren
> HalloWeltMaplet:=Maplet([
    # Das Maplet definiert zuerst eine Zeichenkette und darauf
    # eine Eingabebox, in der ein Text editiert werden kann.
    ["Textfeld: ",TextField['TF']()],
    # Schließlich noch ein Knopf, der das Shutdown-Kommando aufruft,
    # mit dem das Maplet wieder verlassen und geschlossen wird.
    [Button("Fertig",Shutdown(['TF']))]
    ]):
> # Der Aufruf des Maplet mit Ausgabe
> Maplets[Display](HalloWeltMaplet);
                    ["Eine Texteingabe im Maplet"]

Dieses Beispiel verdeutlicht, wie schon ein einfacher Einzeiler grafische Anwenderdialoge entstehen lässt. Ein zweites Beispiel zeigt, dass man auch mit vertretbarem Aufwand das aus der Schulzeit bekannte (lästige?) Thema Kurvendiskussion auf wenige Mausklicks reduzieren kann (siehe Kasten 2 und Abbildung 4).

Abbildung 4: Kurvendiskussion-Maplet

Abbildung 4: Kurvendiskussion-Maplet

Kasten 2: Kurvendiskussion-Maplet

> KurvendiskMaplet:=Maplet(
     # Zuerst das Maplet in ein Fenster einbetten; so lassen sich weitere
     # Funktionen wie z. B. eigene Titelleisten definieren.
     Window('title'="Kurvendiskussion",[
     ["Eine Funktion in x: ",TextField['FKT']()],
     # Beim Drücken des ersten Knopfs wird die erste Ableitung berechnet.
     # Dazu wird die Maple-eigene Funktion diff verwendet.
     # Die Ableitung wird über die Funktion TextBox als gewöhnlicher
     # Text ausgegeben.
     [Button("1. Ableitung: ",Evaluate('FFKT' ='eval(diff( FKT,x))')),
              TextBox['FFKT']('editable'='false')],
     # Beim Drücken des zeiten Knopfs wird die Ableitung der Ableitung berechnet
     # (Referenz auf die Variable FFKT). Über die Funktion MathMLViewer
     # wird das Ergebnis schön aufbereitet.
     [Button("2. Ableitung: ",Evaluate('FFFKT'='eval(diff(FFKT,x))')),
              MathMLViewer['FFFKT']()],
     # Zur Kurvendiskussion gehören noch die Nullstellen. Mit der
     # Maple-Funktion solve ist dies kein Problem.
     # Diese wandern wieder in eine Textbox.
     [Button("Nullstellen der Funktion: ",Evaluate('R0'='solve({'FKT'})')),
              TextBox['R0']('editable'='false')],
     # Die Nullstellen der Ableitung werden wieder mit MathMLViewer dargestellt.
     [Button("Nullstellen der Ableitung: ",Evaluate('R1'='solve({'FFKT'})')),
              MathMLViewer['R1']()],
     [Button("Fertig",Shutdown())]
    ])):

Eine weiter führende Anleitung mit leichten Beispielen findet man unter [4]. Dort wird Schritt für Schritt in das Thema Maplets eubgeführt, so dass sich schon sehr schnell die ersten Erfolge zeigen.

Mathematik 5? Kein Problem!

Doch auch Nichtmathematiker kommen auf ihre Kosten, wobei sich das Internet als Quelle vieler Anwendungen präsentiert. So lassen sich z. B. unter [1] Anwendungen für Chemiker, Biologen, Wirtschaftswissenschaftler, Controller, Mechaniker, Ingenieure, Prozessdesigner, Statiker, Informatiker etc. herunterladen. Die Abbildungen 5 bis 8 zeigen einige Beispiele aus den Bereichen Neuronale Netze, Operation Research und Chemie.

Abbildung 5: Neuronales Netz Maplet

Abbildung 5: Neuronales Netz Maplet

Abbildung 6: Operation Research Maplet

Abbildung 6: Operation Research Maplet

Abbildung 7: Periodensystem-Maplet

Abbildung 7: Periodensystem-Maplet

Abbildung 8: Element Platin Maplet

Abbildung 8: Element Platin Maplet

Man lernt nie aus

Ebenfalls in der strategischen Ausrichtung von Maple liegt die immer größere Unterstützung des Lernenden mit Hilfe der Maplet-Technologie. Mit Studienhelfern präsentieren sich elektronische Tutoren. Abbildung 9 zeigt z. B., wie den Anwendern eine interaktive Unterrichtsstunde präsentiert wird, in der der Lernende Schritt für Schritt der Lösung nähergebracht wird. Diese Tutoren gibt es z. B. unter [2] und [3]. Hier wird besonders deutlich, dass Maple sich nicht nur an den abgehobenen Mathematiker richten will, sondern ein viel breiteres Publikum sucht und dank seiner mit der Maplets erreichten Flexibilität auch erreichen kann.

Abbildung 9: Calc I Maplet

Abbildung 9: Calc I Maplet

Woher nehmen?

Zwar gibt es unter [5] eine freie 30-Tage-Testversion von Maple, mit der sich unsere kleinen Beispiele bereits starten lassen. Dummerweise bekommt man diese – so die offizielle Homepage – nur für Windows, aber Schüler und Studenten in Deutschland erhalten für Linux über [6] besonders günstig eine Studentenversion.

…und natürlich die Goodies!

Vielleicht nicht ganz ernst gemeint, aber als letzter Beweis der Variabilität von Maple sei hier auch erwähnt, dass man mit Maplets sogar spielen kann. Unter [7] werden bekannte Spiele wie Schiffeversenken, MasterMind und sogar ein MinesSweeper (siehe Abbildungen 10 und 11) angeboten.

Abbildung 10: MineSweeper-Maplet

Abbildung 10: MineSweeper-Maplet

Abbildung 11: Schiffe-Versenken-Maplet

Abbildung 11: Schiffe-Versenken-Maplet

Wer hätte gedacht, dass ein ursprünglich für die Formelmanipulation entwickeltes mathematisches System sich einmal so facettenreich präsentieren würde?

Glossar

Maple

Die erste Maple-Version wurde 1980 an der Universität von Waterloo entwickelt, kommt also aus Kanada, Ontario. Ich habe diesen Ort einmal besucht, und wer die wunderschönen Ahornbäume dort gesehen hat, der weiß, warum “Maple” als Name für das Produkt herhält. Maple ist ein Computer Algebra System (CAS) für symbolisches Rechnen.

Maplets

Der Begriff “Maplet” ist eine Wortkreation aus den Worten Maple und (Java-) Applet, ähnlich wie das in X bekannte “widget” aus den Wörtern window und gadget zusammengebaut wurde.

Der Autor

Volker Schmitt ist Mathematiker und arbeitet bei einer großen Versicherung. Maple begegnete er zum ersten Mal im Studium und nutzt es noch privat zu Forschungszwecken.

LinuxUser 05/2003 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben