Maxima

Grundlagen - Speichern

Dateiformate

Inhalt

*.wxm - Speichern unter wxMaxima

wxMaxima speichert Daten (Menüpunkte: <Datei - speichern> bzw. <sichern als>) im ASCII-Format, die Dateien können daher in jedem Editor und Textverarbeitungsprogramm bearbeitet werden (auch wenn im Format wxm ausdrücklich davor gewarnt wird :-)).

Beispiel:

Die Maxima-Eingabe

Speicherung wxm

wird abgespeichert in der Form von

/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/
/* [ Created by wxMaxima version 0.7.3a ] */

/* [wxMaxima: input   start ] */
f(x):=x^2-3*x+5;
/* [wxMaxima: input   end   ] */

/* [wxMaxima: input   start ] */
makelist(f(a),a,-4,5);
/* [wxMaxima: input   end   ] */

/* Maxima can't load/batch files which end with a comment! */
"Created with wxMaxima"$

wenn man die Kommentare weglässt, bleiben nur mehr die Eingabezeilen über:

f(x):=x^2-3*x+5;
makelist(f(a),a,-4,5);

*.wxm-Files (wxMaxima-Sitzungen) können über den Menüpunkt <Öffnen> geöffnet werden. Eine weitere Möglichkeit wäre die Verwendung der Maxima-Befehle mit:

save(<Dateiname>,all) ... Speichern der Datei
values - nur Werte, functions - nur Funktionen, all - alles
load(<Dateiname>) ... Laden der Datei ohne Anzeige!
Es stehen (je nach Speicherung) die Funktionen und belegten Werte wieder zur Verfügung.

Beispiel:
Save Load

Tip: values, functions - mit Hilfe dieser Befehle können die vorhandenen Funktions- und Variablenbelegungen abgerufen werden.


 
zurueck

*.mac - Utility Files

Maxima bietet eine Unzahl von mitgelieferten Utility-Files an. Zu verschiedensten Bereichen gibt es fertige Pakete, die einfach geladen werden können. Es besteht aber natürlich auch die Möglichkeit, derartige Pakete selbst zu erstellen. Maxima kennt den Pfad, unter dem mac-Dateien gespeichert sind und sucht beim Aufruf von load(<Paket>) selbst danach. Bei der hier verwendeten Windows-Installation wären das die Verzeichnisse:

[C:/Dokumente und Einstellungen/User/maxima/###.{mac,mc},
 C:\Programme\Maxima-5.13.0/share/maxima/5.13.0/share/###.{mac,mc},
 C:\Programme\Maxima-5.13.0/share/maxima/5.13.0/share/
 {affine,algebra,algebra/charsets,algebra/solver,calculus,combinatorics,contrib,
 contrib/boolsimp,contrib/descriptive,contrib/diffequations,
 contrib/diffequations/tests,contrib/distrib,contrib/ezunits,contrib/format,
 contrib/fractals,contrib/gentran,contrib/gentran/test,contrib/Grobner,
 contrib/levin,contrib/lurkmathml,contrib/maximaMathML,contrib/mcclim,
 contrib/numericalio,contrib/pdiff,contrib/prim,contrib/rand,contrib/sarag,
 contrib/simplex,contrib/simplex/Tests,contrib/solve_rec,contrib/state,
 contrib/stats,contrib/stringproc,contrib/vector3d,contrib/unit,
 contrib/Zeilberger,diff_form,diffequations,dynamics,draw,lapack,lbfgs,
 linearalgebra,integequations,integration,macro,matrix,misc,numeric,orthopoly,
 physics,simplification,sym,tensor,tensor/tests,trigonometry,utils,vector}
 /###.{mac,mc}]

Um selbst nachzuschauen, wohin Maxima speichert, kann man den Befehl file_search_maxima verwenden.

mac-Dateien sind meist Sammlungen von neuen Funktionen (entweder über bestehende Pakete oder selbstdefiniert), um den Befehlsvorrat von Maxima zu ergänzen.

Im schulischen Umfeld interessante Pakete sind z.B.:

  • vect ... Paket für die Vektorrechnung
  • sqdnst ... Nested Roots, Vereinfachen von verschachtelten Wurzelausdrücken
  • implicit_plot ... 2D-Grafik, impliziter Plot wird ermöglicht / z.B. ein Kreis mit x^2+y^2=25 kann direkt gezeichnet werden!
  • distrib ... Funktionen zur Normalverteilung, Binomialverteilung, etc.
  • numericalio ... Einlesen von Daten / Textfiles in eine Variable
  • ...

Tip:
Es gibt auch eine Möglichkeit, oft benutzte Pakete automatisch zu laden - man kann im Suchpfad von Maxima (siehe oben) eine Datei mit dem Namen: maxima-init.mac erzeugen. In diese Datei kann jeder Befehl (Laden von Paketen, Variablenbelegung, Definition einer Funktion), der auch in Maxima geschrieben werden kann, eingegeben werden - z.B. load("vect")$ (damit würde das Vektor-Paket automatisch beim Start geladen).

Beispiel:

Wir basteln ein Paket für die Rentenrechnung - zuerst die Eingabe der Formeln über wxMaxima.

Rentenrechnung - Superformel1 Rentenrechnung - Superformel2

Wir überprüfen unsere Formeln an einem einfachen Beispiel.

Rentenrechnung - Beispiel

Wie sieht nun das Utility-File aus? Wir reduzieren die Datei auf ihre "Essenz" in einem ASCII-Editor.

/* Rentenrechnung - Walter Wegscheider, nach P. Lupus */
/* Variable: k0 (Barwert), kt (Endwert), t (Anzahl der Raten), r (Ratenhoehe), */
/* p (Zinsfuss), s (0 für nachschuessig, 1 für vorschuessig) */
/* Funktionen: */
/* tvm_k0(kt,t,r,p,s) ... berechnet den Barwert einer Rente */
/* tvm_kt(k0,t,r,p,s) ... berechnet den Endwert einer Rente */
/* tvm_t(k0,kt,r,p,s) ... berechnet die Anz. der notw. Einzahlungen einer Rente */
/* tvm_r(k0,kt,t,p,s) ... berechnet die notwendige Hoehe der Rate einer Rente */
eq:kt=((s*p+1)*r-(p+1)^t*((s*p*r)+r+p*k0))/p$
solve_variable(eq,vari):=ev(rhs(solve(eq,vari)[1]),fullratsimp)$
tvm_k0(kt,t,r,p,s):=solve_variable(eq,k0)$
tvm_kt(k0,t,r,p,s):=solve_variable(eq,kt)$
tvm_t(k0,kt,r,p,s):=solve_variable(eq,t)$
tvm_r(k0,kt,t,p,s):=solve_variable(eq,r)$

Nun können wir das vorher im richtigen Ordner abgespeicherte File verwenden.

Rentenrechnung - Verwendung

MAXIMA-Datei zum Rentenproblem (e_grund03a.wxm).
MAXIMA-Utility-File dazu (e_grund03b.mac).

zurueck

Einlesen von Textfiles

Textdateien können mit Hilfe des Pakets numericalio eingelesen werden. Das Paket / load("numericalio") / bietet dafür mehrere Funktionen an - read_list, read_data, read_matrix.

  • read_list(<filename>[,Trennzeichen]) ... liest die ASCII-Datei <filename> in eine Liste ein, wobei ein Trennzeichen definiert werden kann (Default ... Leerzeichen).
  • read_matrix(<filename>[,Trennzeichen]) ... liest die ASCII-Datei <filename> in eine Matrix ein (Trennzeichen kann definiert werden - Default ist das Leerzeichen). Jede neue Zeile ist eine Zeile der Matrix - Achtung: es kommt zu einem Fehler, wenn nicht alle Zeilen die gleiche Spaltenzahl aufweisen.

Als Trennzeichen können gewählt werden:

comma (,)
pipe (|)
semicolon (;)
space (für Leerzeichen oder Tabulator)

Beispiel:

Die Körpergrößen der Schüler einer Schulmannschaft werden in einer Textdatei durch Beistriche getrennt abgespeichert (bzw. als CSV-Datei aus einer Datenbank bzw. Tabellenkalkulation ausgelesen).

Liste speichern

Anschließend wird die Liste in Maxima eingelesen.

Liste lesen
 
zurueck

Makros, Ein- und Ausgabe

Mit Hilfe der Befehle read() und print() können einfache Makros realisiert werden.

Beispiel:
p:read("Geben Sie bitte p ein!");
q:read("Geben Sie bitte q ein!");
loes:solve(x^2+p*x+q=0,x);
print("Die Loesungen fuer x lauten:",loes);

Diese Zeilen werden in eine mac-Datei eingefügt.

Hinweis: - günstig ist es, wenn vor dem Aufruf eines Makros die Variablenbelegungen gelöscht werden. Dies geschieht über: kill(all)

MAXIMA-Utility/Makro-File dazu (e_grund03c.mac).


 
zurueck
Links:

© PH-NOe, letzte Änderung am 20. Dezember 2007, erstellt von Walter Wegscheider