Open Source Symbolic Math Packages?
3Suns asks: "There are many proprietary symbolic mathematics suites available, including Mathcad, Mathematica, and Maple. Strangely, I can't find a single free software project with similar functionality. These programs are as ubiquitous in universities and engineering companies as they are expensive. Given the deep roots of open-source in higher education, what can explain the lack of free/open-source mathematics software?" We last addressed this question three
years ago, but a lot can change in that time. Has it?
Perhaps you should use Google sometime?
Never heard of Maxima, Mupad, Octave, Scilab?
Maxima and Axiom are the heavy hitters. Good luck getting Axiom to build.
There are some others: I think there's one in Scheme and I think YACAS comes with a lot of Linux distributions but I've never tried it.
There's a reason operating systems are expensive. They are very complex programs that take a lot of time and effort to create. Why exactly do you feel that someone should put out an enormous amount of time and effort to create an operating system and then give it to you for free?
The fact that most universities and engineering copmanies have these packages readily available is probably why a big reason why open source alternatives have not shown up. The people who usually write this type of software are academics- who already have access, and don't have the itch to scratch.
There is a big difference here. Operating systems are something everyone who uses computers would deal with. A great deal more people that want to program open source are going to program something for an operating system (be it the kernel, device drivers, etc.), then something for a much narrower audience.
I'm not saying an open source Mathematica type software package wouldn't be nice, but there isn't the same drive for it as for an OS. There are already software packages that run on UNIX/Linux. They aren't freely available, but if you are in Academia, or in industry you probably have access to a package like this already.
Wow, what year is it? People still don't understand open source software?
Well, here's how it would work. People don't write open source software for OTHER PEOPLE, they write it for themselves.
Somebody needs symbolic math package, but doesn't want to pay for the expensive versions. Unlike yourself, he reasons that like any complex system, a symbolic math package can be broken down into simpler subsets that maybe he can write himself.
Or maybe, he just wants to try writing it.
Or maybe he reads your post and considers it a challenge.
After a while, he gets it working and it solves his particular problem. Then he puts it on his web site and waits for open source magic to take over. Maybe it will, maybe it won't. But it doesn't cost him anything to try, after all, he's already solved his particular problem.
And that boys and girls, is how open source software is born.
Read OSNews of KernelTrap sometime. There are also dozens of small OSes written by individuals in their spare time.
How many books on writing programs to deal with symbolic math have you read lately?
Do you even lift?
These aren't the 'roids you're looking for.
For commutative algebra, for example, there's Macaulay2.
Maxima would probably be your best bet
It is an implementation of Macsyma written in LISP and will compile and run fairly well on almost any machine
The syntax is easy to learn and the program is fairly powerful yet approachable
Even if it's not exactly what you're looking for, it is an extremely valuable tool
Handling math isn't too far off from compiler design, you are just interpreting syntax and semantics and manipulating symbols in an intelligent manner. In the field of Artificial Intelligence they have developed something called Prolog which lets you create a database information engine that can figure out posed questions from rule set manipulation. They have used this for many things, such as verifying a proof, or finding an alternate way to prove the same thing, and even as so far as to find new mathematical identities.
Singular is really good for commutative algebra.
In Soviet America the banks rob you!
Given the deep roots of open-source in higher education, what can explain the lack of free/open-source mathematics software?
There is not, nor will there ever be, a lack of free mathematics software. Is there a lack of free/open source "Linux software"? Yes, but only if you ask a news reporter or MS apologist. C'mon man, Google Directory lists a good deal of free stuff here. You just forgot to look. Anyway, I'm sure this was covered on Slashdot as recently as last year.
Handling math isn't too far off from compiler design, you are just interpreting syntax and semantics and manipulating symbols in an intelligent manner.
Numerical math, yes. Symbolic math is far more complicated. Integration, for example, requires the Risch integration algorithm, which is quite non-trivial; computing polynomial GCDs has been the subject of dozens and dozens of papers.
Tarsnap: Online backups for the truly paranoid
Computational mathematics goes under the name applied math. Its roughly 1/2 or more of your average math department.
I hope you're not saying that Prolog is just an AI thing. While the language is quite popular in AI, its original development had nothing to do with AI & it's been used for 'real world' non-AI projects.
my sig's at the bottom of the page.
jbolden -thats numerical computing.
There are probably a single digit number of universities in North America with a computer algebra/symbolic computing course.
One of the most thorough that I've seen is: Algorithms for Computer Algebra by K.O. Geddes, et. al. If you're not very good at modern algebra, don't bother shelling out the ~$270 for this book. (I got my copy for $80 used.) Geddess, et. al. are the ones who designed and wrote Maple.
I might come as a surprise to some, but symbolic mathematical systems require a lot of advanced math! Finishing the college calculus sequence is about 3 years insufficient to start scratching the surface. So, there aren't many people who know the math and know how to write software. I think that's why Mathematica and Maple are so darn expensive. I think you'd need a bunch of graduate-level people to make up your QA team!
Also, contrary to some of the comments , Maple beats out everything else--including specialized programs--in some areas, e.g. symbolic solutions of ODEs. (It's true, though, that for say group theory, specialized programs are better.)
JEP - Java equation parser jep.sourceforge.net just a simple parser for equations, but can be used as the first steps for a CA program.
SingSurf - Draws singular algrbraic and other surface. SingSurf.
Javaview - JavaView a platform for 3D mathematical graphic.
It would be really nice to see a good open source framework, which allows easy extension into domain specific areas. I can't really see it happening. Maybe the best thing is to work on interopability of the packages, say through the OpenMath or MathML systems.
There are four sorts of people in the world: fools, lunatics, idiots and morons. - Umberto Eco, Foucaut's pendulum.
Here's a slightly different question. Let's say someone is going to write their own symbolic math application. What's slashdot's opinion on which language should be used to implement it. prolog, haskell, lisp, perl?
Go out and _buy_ yourself a copy of MATLAB R13. The student version is under 100$, which is a deal considering the amount of time it takes to put together such a program. In fact, these programs are so complex, anyone with enough time to dedicate making an open source alternative would have to dedicate their lives to it. And until somewhere in industry realizes they can (if possible) save money by developing an open source version in-house (like disney and wine) then no open source suites will exist.
-n