…By virtue of its unbeatable low cost (free), ready availability for all three major operating systems, and its raw power in all areas of mathematics and analytic engineering, Maxima is a mathematical computing package that ought to be in the toolbelt of every programmer, engineering, scientist, and mathematician.
From garden-variety algebraic simplification, polynomials, calculus, matrix equations, differential equations; to exotic areas of number theory, combinatorics, hypergeometric functions; to state-of-the-art areas in tensor and gravitational physics, PDEs, and nonlinear systems, Maxima is a firehose of mathematical capability, able to blow through hairy computations with symbolic accuracy, leaving more time for the advancement of application development or research.
Maxima for Symbolic Computation
What is Maxima?
Maxima is an impressive symbolical computation package that is free, open source, and has an active, responsive developer base and community that ensures both the future lifecycle of this software package and plenty of help when dealing with problems. It falls in the category of Computer Algebra Systems (CAS).
Now, there are certainly a number of well-known and less known computer algebra systems available to choose from: Mathematica, Maple, Macsyma, MuPAD, Sage, etc. Many are commercial packages. But by virtue of its unbeatable low cost (free), ready availability for all three major operating systems, and its raw power in all areas of mathematics and analytic engineering, Maxima is a computing package that ought to be in the toolbelt of every programmer, engineering, scientist, and mathematician.
From garden variety algebra, polynomials, calculus, matrix equations, and differential equations, to exotic areas of number theory, combinatorics, hypergeometric functions, to state of the art areas in tensor and gravitational physics, PDEs, nonlinear systems, Maxima is a mathematician’s garden.
This page should get you started with downloading and installing, and then provide a few examples and resources to help you on your way.
Obtaining Maxima
You can download Maxima from here (Windows, Linux). (If you’re confused, there are instructions here.)
Installing Maxima
Paul Lutus has written a step-by-step installation walkthrough here. Specifically, take note about the Windows firewall when first running wxMaxima:
“When you first run wxMaxima (an icon is placed on your desktop by default), your firewall software may complain that a socket is being opened. This is a local socket that wxMaxima (the user-friendly graphical front end) uses to communicate with Maxima (the computation engine), it is not an attempt to take over your computer or communicate your personal secrets to ruthless Russian mobsters. Suspend your paranoia and allow the socket to be created.” (from Arachnoid’s Installation Guide)
Getting Started
Depending on your level of experience with computers, you may find the following starting points useful:
For a Quick Start
- Here’s a succinct Maxima command reference sheet (cheat sheet).
- If you are familiar with Mathematica, this Mathematica / Maxima Syntax Conversion Chart will get you going quickly.
Then all you need are some good examples, which you can find here:
- Antonio Cangiano’s 10-minute Tutorial for Solving Math Problems with Maxima is a good start.
- Follow this with Richard Rand’s more advanced whirlwind tour: Introduction to Maxima, including a discussion of writing subroutines/scripts/programs for Maxima. You’ll like it better as a well formatted PDF instead of ill-formatted HTML.
- To see how Maxima can be used in verification and validation of a result in discrete mathematics, see Finite Summation by Recurrence Relations, Part 1 (Motivation and Low Order Examples) and Part 2 (General Recurrence Solution).
- To see how Maxima can be used to solve linear systems (matrix equations), see Finite Summation by Recurrence Relations, Part 3 (Closed Form Direct Matrix Solution).
- For an example Maxima script (iteratively solving the finite sums p-th order recurrence relation), see sumkp_recurrence.mac
- If you’re looking for using Maxima for solving real Engineering problems, consider Javed Alam’s 22 sessions of Maxima, Paul Lutus’s differential equations and circuit theory and Fourier (Spectral) Analysis.
More advanced references are here.
A full list of the mathematical packages and capabilities built into Maxima can be found in the 900+ page (5MB) Maxima Manual. (You’ll probably want to download the PDF version for offline reading.
For Basic Users
Paul Lutus has leisurely hands-on tutorial style introduction to Maxima. In addition, there are a number of good “book-style” tutorials that develop familiarity with Maxima thoroughly.
For Advanced Users
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.
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
- 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 MaximaA 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: Comprehensive, each chapter organized by mathematical area.
- The Maxima Book, 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 Online: 900+ 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
- Maxima Manual Online
