A Mathematica/Maple/(Matlab?) replacement

  • MATLAB
  • Thread starter graphic7
  • Start date
In summary, Maxima is an awesome open source CAS that can do most of the tasks that a commercial CAS can do. It's based off of MIT's Macsyma, which was originally developed in the 60s using LISP.
  • #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.
 
Last edited by a moderator:
Physics news on Phys.org
  • #2
That looks like a great find; I'll definitely try it out when I have some time to spare. Thanks for posting it.

Incidentally, if you're using Clisp for anything other than Maxima, take a look at SLIME,
http://common-lisp.net/project/slime/
which let's you use emacs as an IDE for Clisp.
 
  • #3
gnome said:
That looks like a great find; I'll definitely try it out when I have some time to spare. Thanks for posting it.

Incidentally, if you're using Clisp for anything other than Maxima, take a look at SLIME,
http://common-lisp.net/project/slime/
which let's you use emacs as an IDE for Clisp.

I spent about a day or so getting Maxima working with Emacs/AucTeX for LaTeX output. It's not terribly bad, you just have to know your way around Emacs (sort of). You'll also need a 3rd party package called imaxima, that you load with Emacs. It's definitely worth the work, though. I haven't had a chance to play around with TeXmacs and Maxima, but I assume getting LaTeX output is easier.

I'm actually just getting into LISP programming and I've been looking around for a decent IDE. Thanks for the recommendation.
 
  • #4
Here's the link for the package (imaxima) for LaTeX output in Emacs/xemacs:

http://www.ifa.au.dk/~harder/imaxima.html
 
Last edited by a moderator:
  • #5
It looks like TeXmacs is indeed the simplest method in order to get LaTeX output from Maxima. Pretty much just install TeXmacs and start a Maxima session with it. No loading .el files or anything of the such.

Here's the (simple) procedure:

http://www.aims.ac.za/resources/tutorials/maxima/texmacs.php

Edit: There are binary packages of TeXmacs for Linux and Windows at http://www.texmacs.org .

Unfortunately for myself, I was unable to locate TeXmacs binary packages for Solaris or build it. So, I chose Emacs/AucTeX
 
Last edited by a moderator:
  • #6
It's ashamed not many people have taken a look at this thread. Let me spell it out:

Maxima is a free, open source, CAS that can act as a replacement for commerical CAS such as Mathematica and Maple
 
Last edited:
  • #7
graphic7
Thanks for the info. I have just installed Maxima and run it from texmacs on my linux machine.
However I have no idea why it would not give me any answer for this function integrate(arcsec(sqrt(x)),x); All it does is just prints out exactly the same what I give it to integrate. Any thoughts? It works fine for simpler integrals like int(sin(x)*cos(x),x).
 
  • #8
It would be "asec" not "arcsec."
 
  • #9
How have I managed to miss this thread :cry: ... thanks for the bump guys, must give it a try!
 
  • #10
durt
Thanks, I figured it out already. And for some unknow reason log(x) really is ln(x). :)
 
  • #11
graphic7 said:
It's ashamed not many people have taken a look at this thread. Let me spell it out:
Maxima is a free, open source, CAS that can act as a replacement for commerical CAS such as Mathematica and Maple


Very cool, I'll have to take a look at it.
 
  • #12
If i want to get it to work on OS X would it build in SBCL 0.9.7 ?
 
  • #13
Dmitri said:
durt
Thanks, I figured it out already. And for some unknow reason log(x) really is ln(x). :)
Perhaps because every mathematician on Earth uses the symbol "log" for the natural log, and the symbol "log10" for the base-ten logarithm. The "ln" symbol is a bastardization that I've never actually seen used anywhere but on calculators.

- Warren
 
  • #14
I posted this elsewhere but figure it may get slightly more exposure here...

I managed to lay my grubby mitts on Maxima about a month ago (fantastic program), but having no prior knowledge of CAS software or programming I am stuggling trying to figure out how to draw piecewise defined functions( ie: f(x) = x^2 if[-2<x<2], and = 3x if [x>2]) either through maxima itself or the GNUplot command line window (I prefer the latter for graphing)...I know that I can just graph two functions together and make a mental note of where one stops and the other starts, but what I want to do is just limit their domains, and nowhere in the help files I have can I find even a vague mention of this. can anyone help?
 
Last edited:
  • #15
Its really too bad octave doesn't have more packages to bring it up to par with Matlab...
 
  • #16
GregA said:
I am stuggling trying to figure out how to draw piecewise defined functions( ie: f(x) = x^2 if[-2<x<2], and = 3x if [x>2]) either through maxima itself or the GNUplot command line window (I prefer the latter for graphing)

You can do something like this in maxima:
Code:
f(x) := if -2<x and x<2 then x^2
        elseif x>2 then 3*x$
wxplot2d([f(x)], [x,0,4])$

cheers!
 
  • #17
Last edited by a moderator:
  • #18
Server not found

http://riemann.solnetworks.net/~dlew...solmaxima2.jpg
 
Last edited by a moderator:

1. What is "A Mathematica/Maple/(Matlab?) replacement?"

A "Mathematica/Maple/(Matlab?) replacement" refers to a software program or language that can perform similar mathematical and scientific computations and visualizations as these popular programs. It is designed to provide an alternative option for those who may not have access to or prefer not to use Mathematica, Maple, or Matlab.

2. What features does a "Mathematica/Maple/(Matlab?) replacement" have?

A "Mathematica/Maple/(Matlab?) replacement" typically has a wide range of mathematical and scientific functions, as well as advanced visualization capabilities. It may also include features such as programming and data analysis tools, as well as the ability to create interactive graphics and animations.

3. How does a "Mathematica/Maple/(Matlab?) replacement" compare to the original programs?

The level of similarity between a "Mathematica/Maple/(Matlab?) replacement" and the original programs can vary. Some replacements may have a very similar interface and functionality, while others may have a different approach or set of features. It is important to research and try out different replacements to find one that meets your specific needs.

4. Can a "Mathematica/Maple/(Matlab?) replacement" handle large datasets and complex calculations?

Many "Mathematica/Maple/(Matlab?) replacements" are designed to handle large datasets and complex calculations. However, the performance may vary depending on the specific program and the hardware it is running on. It is recommended to check the system requirements and capabilities of the replacement before using it for large-scale computations.

5. Is it easy to learn and use a "Mathematica/Maple/(Matlab?) replacement?"

The ease of learning and using a "Mathematica/Maple/(Matlab?) replacement" can vary depending on the individual's prior experience and the complexity of the program. Some replacements may have a steep learning curve, while others may have a more user-friendly interface. It is recommended to read reviews and tutorials to get a better understanding of the learning curve for a specific replacement.

Similar threads

  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
4
Views
4K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
2
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
4
Views
3K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
8
Views
4K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
2
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
9
Views
7K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
13
Views
7K
  • Special and General Relativity
Replies
6
Views
5K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
4
Views
3K
Back
Top