Maxima is a computer algebra system, distributed under the General Public License. It has, both, capability of symbolic , as well as numerical operations (Maxima homepage).

A graphical user interface for Maxima is cross-platform wxMaxima (at least it is one of the GUIs for Maxima).

The graphical output is presented using Gnuplot.

The system includes a complete programming language, with ALGOL-like syntax and Lisp-like semantics [2].

Everyone needs calculations of various sort. Human brain calculates all the time, luckily humans are not aware of the most of these computations.

There are scenarios in which the calculations must be performed consciously, with the results preserved for later on. Great many of these computations are complex and complicated, beyond pen-and-paper calculations. In such cases humans, for the time being, prefer to use some devices with suitable capabilities, such as hand calculators or computers. There is a variety of computer software assisting calculations of various kind, beginning with hand calculators equivalent on each operating system, through Excel/Calc/Gnumeric/Numbers spreadsheets, finishing on computer algebra systems, e.g. Matlab, Octave, Mathematica, Maxima.

But what makes Maxima worth interest? There are at least few answers.

I) Since Maxima is a general-purpose system [3], its capabilities cover a wide range of applications. It can be used as a simple calculator, and it can solve sophisticated and complex mathematical problems (where complex can be read both figuratively and literally). Titles of some chapters of Maxima help are:
12. Polynomials - Standard forms for polynomials, and functions operating on them.
13. Constants -  Numerical constants.
14. Logarithms -  Manipulation of expressions involving logarithms.
15. Trigonometric -  Manipulating expressions with trig and inverse trig functions.
16. Special Functions -  Special functions
17. Elliptic Functions -  Elliptic Functions and Integrals
18. Limits -  Limits of expressions.
19. Differentiation -  Differential calculus.
20. Integration -  Integral calculus.
21. Equations -  Defining and solving equations.
22. Differential Equations  -  Defining and solving differential equations.
23. Numerical -  Numerical integration, Fourier transforms, etc.
24. Arrays -  Creating and working with arrays.
25. Matrices and Linear Algebra -  Matrix operations.
30. Series - Taylor and power series.
31. Number Theory -  Number theory.
32. Symmetries
33. Groups -  Abstract algebra.
Chapter 8 title is Plotting. Maxima is capable, through Gnuplot, of presenting 2D and 3D plots.

II) Maxima is distributed under General Public License, which makes it very interesting alternative to proprietary software.

III) It seems to be somewhat lightweight and moderatly fast piece of software (from my personal experiences).

IV) wxMaxima is a cross-platform software, which is important for people using different operating systems.

V) Wikipedia also states, that 'Maxima offers the possibility of generating code in other programming languages (notably Fortran) which may execute more efficiently' [3]. This possibility along with writing the code in Lisp are beyond the scope of this text, as well as beyond the author's comprehension, though it is worth noting, Maxima is capable of such things.

The reasons listed above made the author write this instructable. It is shameful to admit, that I have never been good at mathematics. Nevertheless I find the understanding of mathematics desirable and useful. This summarises the reasons for this instructable.

Step 1: Calculator and notebook

First of all wxMaxima can be used as a calculator and a notebook. Not only can simple algebraic operations be performed, but variables of any names can be assigned values and can be further processed as well, e.g. (fig. 1: Calculations with variables)

Comment on the basics:
- A single piece of work for Maxima is called a cell. A cell is designated with a bracket on the left side of the screen.
- User input is designated by '(%in)', where n stands for consecutive number. A single cell can have multiple input rows.
- Each row must end either with semicolon ';', or dollar sign '$'. '$' makes the input invisible/silent - without input value printed in the output - helps preserve clarity.
- If decimal format of the calculation is preferred, the input must be followed by comma and 'numer' keyword: ' , numer;'
- Blue cells in the picture are text cells (inserted from the 'Cell' menu). Putting a comment inside the input is possible through '/* ... */' - before the ending colon.
- After opening a Maxima file, there is possibility of executing all cells by hitting 'Ctrl+r'.

The second picture shows somewhat real life task calculations (ch01Garden.wxm; the idea came up while setting the lawn in the garden).
The first cell contains basic dimensions and calculations. The second cell contains seed and safety coefficients ('seedCoef' and 'JICCoef'). The first one stands for the area of the land per one kg of the grass seed (1kg per 30m^2 - I think Maxima has got units built in - there should be an update to this instructable). The second one represents uncertainty in the operation - in case places in the garden would need to be resown (that was the case with the real garden, though surplus grass seed was bought by mistake...). The third cell contains desired result: the amount of the grass seed needed for planting the lawn.

Both examples illustrate the possibility of performing basic calculations with the results that can be saved or/and printed.

There's an awful lot of &quot;Maxima is capable of...&quot;, and not a lot of instruction here. <br> <br>I suggest you unpublish this project, and, instead, create a series of instructables on performing tasks with the software. <br> <br>For example <em>&quot;How to differentiate equations with free Maxima software&quot;</em>. <br> <br>

About This Instructable


2 favorites


Bio: Outsider. Z wyboru. Nie chcę 'w milczeniu białych, haniebnych flag, zejść z barykady'. Wolę 'podobnym być do skały, posypując solą ból, jak posąg pychy samotnie ... More »
More by khaz: Maxima (wxMaxima) -  free computer algebra system (CAS).
Add instructable to: