Maxima ist ein freies Computeralgebrasystem (CAS) für symbolische Mathematik: Es rechnet nicht nur mit Zahlen, sondern stellt Ausdrücke wie Ableitungen, Integrale oder Gleichungsumformungen exakt und in Formelschreibweise dar. Maxima ist der einzige noch gepflegte Open-Source-Zweig des MIT-Systems MACSYMA, das ab 1968 am Massachusetts Institute of Technology entstand. William Schelter pflegte die Macsyma-Codebasis ab 1982 und veröffentlichte sie 1998 unter der GNU General Public License; nach seinem Tod 2001 führt die Community die Entwicklung fort. Implementiert ist Maxima in Common Lisp — eine Anschlussmöglichkeit an Common-Lisp-Befehle.
Erste Schritte
Maxima läuft als Kommandozeilenprogramm, eingebettet in wxMaxima (grafische Oberfläche) oder als Server im Webbrowser:
maxima # interaktive REPL starten
batchload("datei.mac")$ # Skript laden
kill(all)$ # Sitzung zurücksetzen
Befehle enden in der Regel mit ; (Ausgabe) oder $ (stille Ausgabe). Ein vorangestellter Doppelpunkt weist einer Variablen einen Wert zu: f(x) := x^2$.
Kernbefehle
- Symbolik:
diff(expr, x)ableiten,integrate(expr, x)integrieren,limit(expr, x, 0),taylor(f, x, 0, 5) - Algebra:
solve(Gleichung, x),factor(expr),expand(expr),ratsimp(expr)vereinfachen,subst(x, 2, expr)ersetzen - Lineare Algebra:
matrix([1,2],[3,4]),determinant(M),invert(M),eigenvalues(M) - Numerik:
float(expr),numer-Flag,find_root(f, a, b),romberg(f, a, b) - Listen:
makelist(expr, i, 1, 10),map(f, [1,2,3]),length(list) - Grafik:
plot2d(sin(x), [x, 0, 2*%pi]),plot3d(f(x,y), [x,-2,2], [y,-2,2])(Gnuplot-basiert, Anschluss an gnuplot-befehle)
Praxis-Tipps
- Hilfe:
describe(Befehl)oder? Befehl - Konstanten:
%pi,%e,%i(imaginäre Einheit) - Ergebnisse aus vorherigen Zellen:
%(letztes),%o1(nummeriert) - Als LaTeX ausgeben:
tex(expr)
Maxima eignet sich für Schule, Studium und Forschung gleichermaßen. Mit SageMath-Befehle teilt es die CAS-Engine — SageMath bindet Maxima als symbolisches Rückgrat ein. Wer eher bei proprietären Werkzeugen bleibt, findet in Maple-Befehle eine kommerzielle Alternative.