Maxima¶
Maxima is an open source computer algebra system, similar to Mathematica. It is available for GNU/Linux, MacOS X and Windows.
installation on a GNU/Linux system¶
There should be pre-compiled packages available for most distributions. For example in Debian-based distributions such as Ubuntu install the maxima and maxima-share packages by typing
sudo apt-get install maxima maxima-share
sample usage¶
expand((x+y+z)^4); integrate(1/(1+x^3),x);
tensor manipulation¶
The ctensor module is useful for tensor manipulation (in Ubuntu GNU/Linux this is included in the maxima-share package).
Sample usage:
load(ctensor); dim: 5; ct_coords: [t,rho,chi1,chi2,chi3]; lg: matrix([-(R^2)*(cosh(rho)^2),0,0,0,0],[0,R^2,0,0,0],[0,0,(R^2)*(sinh(rho)^2),0,0],[0,0,0,(R^2)*(sinh(rho)^2)*sin(chi1)^2,0],[0,0,0,0,(R^2)*(sinh(rho)^2)*(sin(chi1)^2)*(sin(chi2)^2)]); cmetric(); ug; christof(mcs); ricci(true); scurvature(); trigsimp(%);
This finds the Christoffel symbols, the Ricci tensor and the Ricci curvature scalar of the 5-dimensional Anti de Sitter spacetime metric.
plotting with Maxima¶
Maxima integrates well with gnuplot to provide graph plotting. (Note that in Ubuntu GNU/Linux you need the addition package gnuplot-x11 or the GUI wxMaxima to use gnuplot's full graphical output)
A selection of examples:
plot2d(sin(x),[x,0,10]); plot2d([parametric, (1+cos(t))*cos(t), (1+cos(t))*sin(t), [t,-%pi,%pi], [nticks,80]],[x, -1,2]); plot3d (atan (-x^2 + y^3/4), [x, -4, 4], [y, -4, 4], [grid, 50, 50]);
For more examples see Maxima manual: plotting.
integration with GNU Emacs¶
There is a Maxima-mode for GNU Emacs. For Ubuntu GNU/Linux simply install the maxima-emacs package. So that GNU Emacs knows to use this mode when you edit files with the .max extension, add the following lines to your .emacs file in your home directory:
(setq auto-mode-alist (cons '("\\.max" . maxima-mode) auto-mode-alist))
(setq load-path (cons "/usr/share/maxima/5.9.2/emacs" load-path ))
(autoload 'maxima "maxima" "Running Maxima interactively" t)
(autoload 'maxima-mode "maxima" "Maxima editing mode" t)