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 .
WHY THIS INSTRUCTABLE
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 , 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.
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' . 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.