Maxima (Computeralgebrasystem)
# Maxima (Computeralgebrasystem)

Maxima ist ein Computeralgebrasystem, das als Open-Source-Projekt unter der GNU General Public License (GPL) entwickelt wird.

Implementiert ist Maxima in Common Lisp. Es existieren Versionen für Windows, macOS, Linux und Android.

## Geschichte

Maxima ist eine Version von Macsyma, einem der ersten Computeralgebrasysteme. Es wurde in den 1960er Jahren im Auftrag des US-Energieministeriums (DOE) am MIT entwickelt. Eine Macsyma-Version (DOE Macsyma) wurde von William Schelter von 1982 bis zu seinem Tod 2001 weiterentwickelt. 1998 erhielt Schelter vom Energieministerium die Genehmigung, seine Version unter der GPL zu veröffentlichen. Diese Version wird nun unter dem Namen Maxima von einer unabhängigen Gruppe von Anwendern und Entwicklern gepflegt.

## Maxima Frontends

### wxMaxima

Mit dem Programm wxMaxima ist eine auf wxWidgets basierende grafische Benutzeroberfläche für Maxima verfügbar, die durch Menüs und Dialoge die Nutzung des Programms vereinfacht und eine grafische Formelausgabe besitzt. Von Version 5.10.0b an ist die aktuelle Version von wxMaxima bereits im Installationspaket für Windows integriert.

### Emacs: maxima.el und imaxima

Der Emacs-Editor enthält mit maxima.el ebenfalls ein Frontend für Maxima. maxima.el leitet die Ausgabe von Maxima in einen Emacs-Buffer um. Mit imaxima gibt es eine Erweiterung, die die Ausgabe von maxima mittels LaTeX im Emacs-Buffer darstellt.

### Cantor

Für das Programm Cantor, eine auf Qt basierende grafische Benutzeroberfläche aus dem KDE Education Project, gibt es ebenfalls eine Schnittstelle für Maxima.

## Fähigkeiten

Maxima enthält eine ALGOL-ähnliche Programmiersprache mit Lisp-Semantik und kann unter anderem folgende Aufgabenklassen symbolisch und numerisch (mit frei wählbarer Stellengenauigkeit) lösen:

* Manipulation von algebraischen Ausdrücken mit reellen oder komplexen Konstanten, Variablen und Funktionen
* Grenzwerte ermitteln
* Gleichungen lösen
* Polynome faktorisieren und lösen
* Differenzieren mit wählbarem Grad
* Funktionen in Taylorreihen oder Potenzreihen entwickeln
* Laplace-Transformation
* Integrieren (unter Umständen müssen geeignete Substitutionen vorgenommen werden)
* Lösen von gewöhnlichen Differentialgleichungen 1. und 2. Ordnung
* Lösen von Anfangs- und Randwertaufgaben
* Padé-Approximation von Funktionen
* Lineare Algebra: Inverse Matrix, Eigenwerte, Eigenvektoren, charakteristisches Polynom berechnen
* Vereinfachung und Faktorisierung umfangreicher funktionaler Ausdrücke
* Lösen linearer Optimierungsprobleme

Weitere Fähigkeiten

* Funktionsplotter (auf Basis von gnuplot, OpenMath oder VTK)
* TeX-Ausgabe
* HTML-Ausgabe
* Compiler, um Maxima-Ausdrücke in Fortran-Code umzuwandeln
