powerful computing package with excellent symbolic computation capabilities


In numerical libraries like NumPy or GSL, mathematical variables must be assigned numbers. (Try opening a Python interpreter and typing b = 2*a — you'll get an error that a is not defined.) Mathematica, however, supports both numerical and symbolic variables; integration can be done numerically via NIntegrate[…], or analytically via Integrate[…] using antiderivatives. Mathematica really sets itself apart in areas like solving ODEs; it can use the characteristics of the ODE and a decision tree to choose the appropriate line of mathematical attack.

Of course, Mathematica, being proprietary software, will not indicate which methods it used/tried, whether it successfully solves the ODE or not. But most researchers will tell you that having access to the power of Mathematica is worth the lack of implementation transparency and the institutional license fees. After all, computer algebra systems are not easy to build, and open-source alternatives like SymPy still lag far behind.