- #1
graphic7
Gold Member
- 451
- 2
Lately, I've been looking around for a free CAS, possibly open source that has close to the capabilities of Mathematica, Maple, etc. A worthy replacement would include the ability to evaluate integrals symbolically (and do it well), differentiation, matrix operations on matrices that may contain variables, expansions using series (power, Taylor, etc.), symbolic and numerical ODE solver, 1 variable 2d plots, 2 variable 3d plots, parametric 2d plots, parametric 3d plots, etc., etc. Pretty much everything you'd expect from a commercial CAS like Mathematica.
If any of you have taken a look at the open source math software market, you've seen packages like Octave and Scilab, for instance, While these may be somewhat decent Matlab replacements, they are not a CAS. They can do all the numerical operations you throw at them, but look through the documentation and see if they can evaluate an integral symbolically - they can't.
So, for the last year I've been searching for an open source CAS, and putting up with Octave and Scilab, while using Mathematica only when I need to. Fortunately, I've been able to come across Maxima, which is based off MIT's Macsyma, a CAS that was (beginning to) be developed sometime in the 60s using LISP. From my understanding, Mathematica and Maple, were based on (not based on by using Macsyma code, but conceptually) from MIT's Macsyma. While Macsyma died in the 80s, some developer had kept the code and was quietly working on his version, which in the late 90s he was able to get it under a GPL license and distributed - thus Maxima was born.
Regardless, Maxima is an awesome CAS. You can tell the syntax is somewhat a mix between Maple and Mathematica. As for the installation procedure, pretty much just download it from http://maxima.sf.net . If you're running Linux or Windows, installation is fairly easy - they're supplying binary packages. You will also (possibly) need a LISP package. There's quite a few you can use; I've been using CLISP from http://clisp.cons.org (in fact, I'm hosting the Solaris binary packages as you can see on the home page). You might not, but if you build from source, you'll definitely need a LISP package. Normally (without modifications), Maxima will display it's symbolic output using ASCII, and it's quite hard to read. If you happen to have some sort of TeX distribution installed, you can read up, and either use Emacs/AucTeX or TeXmacs to have Maxima call LaTeX, render it, and have it displayed in your Emacs or TeXmacs window! Very awesome stuff.
I happen to have some screenshots for those that are interested (be sure to check out the screenshots on the Maxima website):
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima1.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima2.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima3.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima4.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima5.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima6.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima7.jpg
In the first few images I'm using the GUI that comes with Maxima called xmaxima. Like Mathematica and Maple, Maxima is really a CLI program with a GUI strapped on it. This is actually a rather good thing, because you can use Emacs and TeXmacs like I did in the later screenshots. Also note in the first screenshot that Maxima uses GNUplot to plot stuff.
I've been using Maxima for a week or so now and I'm very impressed. While there's a few features that are missing from Maxima that are present in Mathematica (haven't really found much that it's missing compared with Maple), it's still an all-around nice package. For most CAS tasks, Maxima should suffice.
If any of you have taken a look at the open source math software market, you've seen packages like Octave and Scilab, for instance, While these may be somewhat decent Matlab replacements, they are not a CAS. They can do all the numerical operations you throw at them, but look through the documentation and see if they can evaluate an integral symbolically - they can't.
So, for the last year I've been searching for an open source CAS, and putting up with Octave and Scilab, while using Mathematica only when I need to. Fortunately, I've been able to come across Maxima, which is based off MIT's Macsyma, a CAS that was (beginning to) be developed sometime in the 60s using LISP. From my understanding, Mathematica and Maple, were based on (not based on by using Macsyma code, but conceptually) from MIT's Macsyma. While Macsyma died in the 80s, some developer had kept the code and was quietly working on his version, which in the late 90s he was able to get it under a GPL license and distributed - thus Maxima was born.
Regardless, Maxima is an awesome CAS. You can tell the syntax is somewhat a mix between Maple and Mathematica. As for the installation procedure, pretty much just download it from http://maxima.sf.net . If you're running Linux or Windows, installation is fairly easy - they're supplying binary packages. You will also (possibly) need a LISP package. There's quite a few you can use; I've been using CLISP from http://clisp.cons.org (in fact, I'm hosting the Solaris binary packages as you can see on the home page). You might not, but if you build from source, you'll definitely need a LISP package. Normally (without modifications), Maxima will display it's symbolic output using ASCII, and it's quite hard to read. If you happen to have some sort of TeX distribution installed, you can read up, and either use Emacs/AucTeX or TeXmacs to have Maxima call LaTeX, render it, and have it displayed in your Emacs or TeXmacs window! Very awesome stuff.
I happen to have some screenshots for those that are interested (be sure to check out the screenshots on the Maxima website):
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima1.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima2.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima3.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima4.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima5.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima6.jpg
http://riemann.solnetworks.net/~dlewis/images/screenshots/solmaxima7.jpg
In the first few images I'm using the GUI that comes with Maxima called xmaxima. Like Mathematica and Maple, Maxima is really a CLI program with a GUI strapped on it. This is actually a rather good thing, because you can use Emacs and TeXmacs like I did in the later screenshots. Also note in the first screenshot that Maxima uses GNUplot to plot stuff.
I've been using Maxima for a week or so now and I'm very impressed. While there's a few features that are missing from Maxima that are present in Mathematica (haven't really found much that it's missing compared with Maple), it's still an all-around nice package. For most CAS tasks, Maxima should suffice.
Last edited by a moderator: