**Maxima** is a symbolic computation platform that is free, open source, runs on Windows, Linux, and Mac, and covers a wide range of mathematical functions, including 2-D/3-D plotting and animation. Capabilities include algebraic simplification, polynomials, methods from calculus, matrix equations, differential equations, number theory, combinatorics, hypergeometric functions, tensors, gravitational physics, PDEs, nonlinear systems. With an active developer base and responsive community, a user gets a secure future lifecycle of the product and plenty of help when dealing with problems. The result: an essential mathematical computing package for students, programmers, engineers, scientists, and mathematicians. This article will help you get started with Maxima.

#### Obtaining Maxima, and Alternatives

You can download Maxima from here (Windows, Linux).

Alternative choices of Computer Algebra System (CAS) are Mathematica, Maple, Macsyma, MuPAD, Sage, etc. The first 4 are commercial packages, the last is an ambitious comprehensive mathematical platform that includes much more than a CAS, but (as of Feb 2010) requires running on Windows within a virtual machine. Maxima combines low cost (free), with ready availability for all three major operating systems, and basic coverage of a large part of mathematics and analytical engineering.

#### Installing Maxima

Installation on Windows is straight-forward:

- download the latest executable (as of Oct 2017, this is maxima-clisp-sbcl-5.41.0-win64.exe), which includes both Maxima (the computational engine) and wxMaxima (the graphical user interface).
- run installer, accepting defaults (but feel free to install to any preferred directory).

#### Notes

- when you first run wxMaxima, if your firewall software complains that a socket is being opened, allow always. This is a local socket that wxMaxima (the user-friendly graphical front end) uses to communicate with Maxima (the computation engine). Ref: detailed installation walkthrough
- run a 2D plot to test your installation:

f(x): 3*x+3$

plot2d(f(x), [x,-50,50])$

If you get an error such as ‘temp directory not found’, a workaround is to create a usable one using the command:

maxima_tempdir : "C:/totalprogs/Maxima/temp"$

More information here. - to see details of your current Maxima/wxMaxima installation, run:

wxbuild_info()$;

**Quick Start**

- Start with a succinct Maxima command reference table by Ruben Puentedura
- If you are familiar with Mathematica, this Mathematica / Maxima Syntax Conversion Chart will get you going quickly.
- Antonio Cangiano’s 10-minute Tutorial for Solving Math Problems with Maxima is a good next step.
- Follow this with Richard Rand’s more advanced whirlwind tour: Introduction to Maxima (PDF), including a discussion of writing
**subroutines/scripts/programs**. - Finally, Robert Dodier’s Minimal Maxima (PDF) breaks down the syntactical, evaluation, and data structures underlying Maxima. A good understanding of this is essential when you are trying to go beyond using Maxima as a powerful calculator, or when writing your own functions/subroutines in Maxima.

More comprehensive / advanced references are here, with “book-style” tutorials that develop familiarity with Maxima thoroughly.

**Learning through Applications**

Maxima makes it easy to work through hairy symbolic computations accurately leaving more time for applications and research. Below are examples.

- Discrete Mathematics: verification & validation of recurrence relation using binomial coefficients: Finite Summation by Recurrence Relations, Part 1 and Part 2.
- Linear Algebra/Matrix Manipulation: Finite Summation by Recurrence Relations, Part 3.
- Example Maxima script: iterative solution to finite sums recurrence relation sumkp_recurrence.mac
- Calculus 1 & 2: Zak Hannan’s wxMaxima for Calculus. Two open-texts for wxMaxima that can be used as lab manuals for first-year calculus or “by-example” references for students learning wxMaxima independently.
- Engineering problems: Javed Alam’s 22 sessions of Maxima
- Differential Equations & Fourier Analysis: Paul Lutus’s differential equations and circuit theory and Fourier (Spectral) Analysis.

**Getting Help**

The Maxima mailing list is a responsive, expert community that can not only help you out of a jam, but also raise the level of your proficiency and your familiarity with “natural” Maxima programming style.

### Links and References

#### Obtaining and Installing

- Download Maxima from here (Windows, Linux)
- The Maxima Page for Windows, Linux
- Installation Walk-Through — take note about allowing the firewall exception for wxMaxima!. Also, how to get Greek fonts to display properly in your Maxima session.
- Installation Prerequisites for Maxima for Mac, Windows, Linux

#### Cheat Sheets / Ready Reference Sheets

- A Maxima CheatSheet / Ready Reference Sheet
- Mathematica / Maxima Syntax Conversion Chart, and Maxima Cheat Sheet: Harvard University, Department of Mathematics

#### Basic Guides

- Antonio Cangiano’s 10-minute Tutorial for Solving Math Problems with Maxima: Math~Blog
- Richard Rand’s Introduction to Maxima, a more advanced whirlwind tour of maxima, including a discussion of writing subroutines/scripts/programs for Maxima — You’ll like it much better as a formatted PDF.
- Paul Lutus’ Symbolic Mathematics Using MaximaA Leisurely Tutorial in 9 parts.

#### Topics by Example

- Javed Alam’s22 sessions of Maxima for solving real-world Engineering problems
- Paul Lutus’s differential equations and circuit theory and Fourier (Spectral) Analysis.
- Tensor Algebra in Maxima
- Leon Brin’s Maxima and the Calculus
- Gregory Astley’s Using Maxima for Plotting Direction Fields of First Order ODEs

#### Advanced Guides

- Robert Dodier’s Minimal Maxima (PDF) breaks down the syntactical, evaluation, and data structures underlying Maxima. A good understanding of this is essential when you are trying to go beyond using Maxima as a powerful calculator, or when writing your own functions/subroutines in Maxima.
- Maxima mailing list is a responsive, expert community that can not only help you in a jam, but also raise the level of your proficiency and your familiarity with idiomatic Maxima (that intangible called Maxima style).

#### “Book-Style” Tutorials (PDF or HTML)

- Gilberto Urroz’s Maxima Book (Science & Engineering Applications): Comprehensive, each chapter organized by mathematical area.
- The Maxima Book (2003), P. de Souza, R. Fateman, J. Moses, C. Yapp: Comprehensive, well-written, well-organized. Not the most up-to-date, but the organization, comprehensiveness, and quality of the material makes this a valuable reference.
- Edwin Woollet’s 11 chapterMaxima By Example: a leisurely description of Maxima’s capabilities.

#### System Documentation

- Maxima Manual: 1000+ page (5MB) comprehensive manual and listing of all mathematical functions and capabilities built into Maxima.
- Maxima Homepage: 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.
- wxMaxima Homepage: A Windows GUI for Maxima

thanks for this great resource!

Lovely just what I was searching for. Thanks to the author for taking his time on this one.

Took me time to read all the comments, however I really loved the article. It proved to be very useful to me and I’m positive to all of the commenters here! It’s good when you can not only learn, but are also engaged! In my language, there aren’t many good sources like this.

Appreciate this post. Let me try it out.

@Assad: my pleasure! I am looking forward to being an active member of the Maxima community now that it has become part of my daily life.

– Zak

@Zak — your lab manuals for a two-year calculus sequence are an excellent resource for learning Maxima at the same time as Calculus. Thanks for announcing them here.

I ran into this post what seems like ages ago in the early stages of research for my sabbatical project Spring 2015! Thank you, by the way, for consolidating such a helpful bunch of links — it saved me a lot of work. After four months of writing, I released two CC-BY-NC-SA open-texts for wxMaxima that can be used as lab manuals for first-year calculus or “by-example” references for students learning wxMaxima independently. The e-book is free, and the LaTeX source is available for those who wish to create derivative works. http://wxmaximafor.wordpress.com/

Thanks!

Zak Hannan

Instructor of Math and Physics

Solano Community College, Fairfield, CA

Many thanks for sharing this fine write-up. Very inspiring! (as always, btw)

@gerd, Thanks for sharing your blog article. I should say that I have encountered no issues in Maxima’s ability to perform elementary or advanced symbolical calculations – see for example Finite Summations of Integer Powers. Your idea of “elementary” is (in my view) a bit of a stretch when your simplest example of a defect is the “branch cut behavior of an elementary function in the complex plane”. It is possible that Maxima has implementation issues around certain advanced calculations compared to the commercial (and quite expensive) Mathematica. However, apart from these advanced areas, Maxima in my view is a useful choice for those wanting an open source CAS platform that is essentially zero cost.

Came across your blog when writing up this one from a somewhat different perspective http://thingwy.blogspot.de/

You write “…Maxima is a mathematical computing package that ought to be in the toolbelt of every programmer, engineering, scientist, and mathematician…” For a different point of see the above link.

A very helpful and suggestive article. Thank you.

Wonderful article, thanks a lot !!