Maxima is a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, and sets, lists, vectors, matrices, and tensors. Maxima yields high precision numeric results by using exact fractions, arbitrary precision integers, and variable precision floating point numbers. Maxima can plot functions and data in two and three dimensions.

## Setup

First install Maxima: http://maxima.sourceforge.net/

Maxima is bundled with three modes for emacs: maxima, imaxima and emaxima. Imaxima is like plain maxima but outputs pretty answers to buffer with LaTeX support. For imaxima check https://sites.google.com/site/imaximaimath/

Imaxima uses breqn.sty. Get http://members3.jcom.home.ne.jp/imaxima/breqn097a.zip and unzip it to your ~/texmf/tex/latex and run texhash.

Add this to your .emacs:

(add-to-list 'load-path "/usr/share/emacs/site-lisp/maxima/")
(autoload 'maxima-mode "maxima" "Maxima mode" t)
(autoload 'imaxima "imaxima" "Frontend for maxima with Image support" t)
(autoload 'maxima "maxima" "Maxima interaction" t)
(autoload 'imath-mode "imath" "Imath mode for math formula input" t)
(setq imaxima-use-maxima-mode-flag t)
(add-to-list 'auto-mode-alist '("\\.ma[cx]\\'" . maxima-mode))

Then M-x imaxima.

## Screenshot

## Maxima on OS/X

One easy way is to use homebrew (in addition to the Maxima and WxMaxima Applications which are working very well):

brew update
brew install homebrew/science/maxima

Gnuplot will be installed too with other packages.

Then add those lines to your ~/.emacs init file:

(add-to-list 'load-path "/usr/local/Cellar/maxima/5.37.2/share/maxima/5.37.2/emacs")
(autoload 'maxima-mode "maxima" "Maxima mode" t)
(autoload 'imaxima "imaxima" "Frontend for maxima with Image support" t)
(autoload 'maxima "maxima" "Maxima interaction" t)
(autoload 'imath-mode "imath" "Imath mode for math formula input" t)
(setq imaxima-use-maxima-mode-flag t)
(add-to-list 'auto-mode-alist '("\\.ma[cx]" . maxima-mode))

and M-x imaxima (and not maxima) in order to get the beautiful LaTeXed maths.