Mathematica vs. Matlab?
Ninnux asks: "I wanted to find out from the community which was the better mathametics modeling package: Mathematica or Matlab. The cancer center I research and program for is considering purchasing a license set. I'll be working with Bayesian machine learning and other bioinformatic approaches for hormone pathway modeling. I know Matlab has various toolboxes that would be rather useful, but I'd like to hear what people think." While I'm sure direct comparisons will be made, I think focusing on the specific niche will help Ninnux the most; so, how well does each piece of software handle Bayesian functions and other bioinformatic computations?
Mathematica and Matlab are very different products. Mathematica focuses on quality symbolic computation and features like unlimited precision arithmetic. Matlab focuses on high speed algorithms for numerical computation.
Maple is a similar product to mathematica.
So really the question is would you rather have faster numerical processing or greater symbolic capacity?
Matlab is probably more useful to you than Mathematica since you'll be working with simulations and/or data it sounds like. You might also want to check out R, which is designed as a statistical analysis environment and has a large number of packages---including machine learning and whatnot. Its also Open Source and GPL if you care about that sort of thing and runs on pretty much any platform you could potentially care about.
I've used both and I usually prefer Matlab over Mathematica, although I started using Matlab first so that could be a bias.
Here's my breakdown of the main differences (to me):
Matlab is great for numerical simulation of _anything_. It offers the ability to go very quickly from model developement to programming and implementation to analyzing the results. Matlab has a very good GUI creator and offers _very_ good ordinary and partial differential equation solvers. Matlab's programming language is very similiar to C/C++ and it has the ability to link with C/C++ programs.
Matlab's original use was for the quick calculation of Matrix algebra. (MATrix LAB) You can do a lot with matrice algebra and matrix operators. If your application uses matrices, matlab will speed up the processing and computation by quite a bit, which includes ODEs and PDEs.
Mathematica, I found, has a slightly higher learning curve because of the symbolic language syntax. It can analytically solve very complex problems and display the results graphically pretty easily.
Matlab seems to have more additions in the form of modules that come with the professional version. The source code for all matlab functions and modules are viewable, making modification of the modules/core functions possible.
Honestly, I haven't had as much experience with Mathematica, but I find that most research groups choose matlab for numerical solutions/simulations and mathematica for analytical solutions.
The best way to make an intelligent choice is to pick up/browse Wolfram's book on mathematica (he created it) and the latest Using Matlab manual. Just remember that Matlab also contains about two dozen extra toolboxes/modules that were created by research groups for specific purposes. There is a neural network toolbox, if I remember, although I don't know if it's applicable to Bayesian networks.
Salis
Favorite
Scilab is mostly free, but still not free-enough to be included on Debian (it is packaged under non-free on a Debian system). See this thread for details.
-- Don't Tase me, bro!
I would suggest doing some more research about Matlab and Mathematica (as well as Maple).
Matlab is mostly used for creation of and use of complex algorithms, DSP simulations, and other "heavy math" tasks. It's a great swiss army knife and integrates easily with most C compilers for compiled-performance (rather than interpreted). One of the many "modules" included with Matlab is a symbolic math package based on the Maple engine (see below).
Mathematica and Maple are little more than symbolic math packages. (Don't get me wrong, they can do A LOT, but neither comes close to the full Matlab package). Each has its pros and cons, but either will do quite well for any math undergrad university student and most grad students. The merits of Mathematica vs Maple are often heavily debated on the usenet and in other forums.
Matlab, Mathematica, and Maple are all very powerful packages... they can do **WAY** more than any of the lame "MathCAD" type apps you probably used in high school.
All three are available for Windows, Mac OS X, Linux, and most flavors of Unix (Solaris, AIX, IRIX, HP-UX, Tru64). Each has a rather simple interface and "looks" like a native application with the exception of the Linux/Unix version of Matlab -- it's a quick port from Windows with some lame crossplatform toolkit. Its GUI widgets look as though they're straight out of Windows. This cannot be changed without a lot of hackery. Despite the ugly interface, I would recommend Matlab for students... the student price is about the same as that of Mathematica or Maple, yet includes so much more (plus all of the symbolic math features straight from Maple 8).
If you don't need (or don't want) all that Matlab offers, Maple may do the trick for you. I used Maple 6 for years and only recently moved to Matlab (for compatibility reasons). Maple, even the current Maple 8, is a clean lightweight application. It's easy on the disk and ram, and even easier on the CPU. And, (IMHO), it does just as much as Mathematica would for me.
Also, all three have a full-featured command line interface alternative to their GUIs. Learning how to key in equations without the mouse and tool palettes will help you in the long run -- you'll be able to enter data much faster. Brushing up on TeX and/or MathML will also prove helpful.
These days, my workstation runs little more than Matlab, LyX, and sometimes Framemaker.