Maxima for Symbolic Computation

Maxima is a mathematical computing package that is free, open source, runs on Windows, Linux, and Mac, and has reasonable coverage of basic and advanced mathematical functions, from garden-variety algebraic simplification, to polynomials, calculus, matrix equations, differential equations; number theory, combinatorics, hypergeometric functions; tensors and gravitational physics, PDEs, and nonlinear systems.  This makes it an appealing tool for students, programmers, engineers, scientists, and mathematicians.  The advantage of computational algebraic systems (CAS) is the ease with which one can blow through hairy computations with symbolic accuracy, leaving more time for advancing the application or research work.


Maxima for Symbolic Computation

What is Maxima?

Maxima is a 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).

A number of computer algebra systems are available as alternatives to choose from: Mathematica, Maple, Macsyma, MuPAD, Sage, etc. Many are commercial packages and have greater accuracy.  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.  As such, Maxima is worth considering as a key tool in the toolbelt of programmers, engineers, scientists, and mathematicians.

Maxima is a mathematician’s garden, with basic algebraic manipulation, polynomials, calculus, matrix equations, differential equations, number theory, combinatorics, hypergeometric functions, to state of the art areas in tensor and gravitational physics, PDEs, nonlinear systems.

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

Then all you need are some good examples, which you can find here:

More advanced references are here.

A full list of the mathematical packages and capabilities built into Maxima can be found in the 1,000 page (5MB) Maxima Manual. (You’ll probably want to download a PDF version (5.24) 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

Cheat Sheets / Ready Reference Sheets

Basic Guides

Topics by Example

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 (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

10 comments to Maxima for Symbolic Computation

  • @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

  • Assad Ebrahim

    @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

  • Assad Ebrahim

    @gerd – your article points out some definite limitations with Maxima. See my response to your earlier post.

  • gerd low

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

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

  • Assad Ebrahim

    @gerd: Your blog article points out surprising limitations of Maxima in advanced calculations compared to Mathematica. For a scientist or engineer working in these areas, you’re right that the flaws in Maxima’s ability to calculate these may be a good reason to try another CAS. However, IMO Maxima remains a useful choice for those wanting an open source CAS platform, or for those whose calculational needs are more elementary than the examples you give. Appreciate your posting.

  • gerd low

    “…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 this http://thingwy.blogspot.de/

  • santosh

    A very helpful and suggestive article. Thank you.

  • Wonderful article, thanks a lot !!

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Note to Readers!

Our Google+ (Buzz) page is where we publish more regular, shorter content that isn't quite full article length. Feel free to check it out & join in! This is still the location for full length articles.