Version 11 of Maxima

Updated 2004-07-09 10:25:57 by TV

Maxima [L1 ] is an open-source work-(much-)alike to Mathematica [L2 ]. It descends from Macsyma [L3 ]. Its default interface is constructed with Tk.

It's also: 1) a car, 2) a princess, 3) the plural of the Latin & Dutch "maximum"

and the name of an ancient place, e.g. Cloaca Maxima [L4 ]


TV I'm looking into maxima for reasons of lack of mathematica license, and because there are at leasthalf a dozen applications I find interesting for mathematical symbolic manipulation, including a tcl formula manipulator, physics problems, maybe my string simulator, (electronic) network analysis, maybe drawing certain graphs, etc, and a bit of mathematical recreation of course.

I've downloaded the windows version, (see above) june 2004, which works fine, and shows for isntance these pictures by just a few clicks:

http://82.168.209.239/wiki/maxima1.jpg

The welcome screen

http://82.168.209.239/wiki/maxima2.jpg A Riemann surface 3D plot from the examples

In the bottom window, double click on the blue links to make them work.

The 3D plot is not a perspective projection with fixed aspect ratio, it is not in that way correct, but it works interactive (clicking the mouse on it and translating makes it sort of rotate. Use a menu option to chose a seperate plot window.

There might be a version with a nicer special fonts prettyprinter, maybe on linux, I didn't try (yet).

A bit of a tutorial

Lets say as excercise we want to find the roots to the equation

 [expr {$x*$x-1}]

I typed the stuff after the CX cursor (where X is the number of the line in the history), and pressed return, to define the function f of x:

 (C5) f(x):=x^2-1;
                                   2
 (D5)                          f(x) := x  - 1

The := defines the function, and it is printed in more or less normal mathematical form as a return value.

The semicolumn ';' at the end is obligatory, otherwise the parser will not recognize 'end of input', so one can enter more than one line as one command, ended by a ; and <Return>.

Now lets check for zeros in our function, by using the 'solve()' function, equating our function to zero, and solving that equation ofr 'x', type the stuff after the (C^), and Maxima returns the answer:

 (C6) solve(f(x)=0,x);
 (D6)                         [x = - 1, x = 1]

Some special keys:

   ^G      break the maxima interpreter, resume with :q to get back the normal prompt
           that also holds for resuming after an error
   alt-p   scroll up to previous command.
   %pi     short for PI in computations.

Maybe more interesting, we can solve the equations inverse symbolically:

 (C8) solve(f(x)=y,x);
 (D8)               [x = - SQRT(y + 1), x = SQRT(y + 1)]

Symbolic integration of our function:

 (C13) integrate(f(x),x);
                                              3
                                             x
 (D13)                                              -- - x
                                             3

The second argument of the function is the integration variable. The same for differentiation:

 (C14) diff(f(x),x);
 (D14)                                                2 x

lets see how invertable this is:

 (C15) integrate(diff(f(x),x),x);
                                                 2
 (D15)                                                x
 (C16) diff(integrate(f(x),x),x);
                                               2
 (D16)                                              x  - 1

When differentiating first, we lose the constant!

Fractions are handy:

 (C10) 1/6+1/4;
                                                5
 (D10)                                                --
                                               12

as are 'infinite' or arbitrary precision numbers:

 (C19) block([FPPREC:30],bfloat(10/6));
 (D19)                                 1.66666666666666666666666666667B0

30 is the number of computation digits, 10/6 is what we are computing, and the B0 inthe result appears to be the exponent, so pow(10,0) in this case.


[ Category Mathematics | Category Application ]