# Mathematical Software

There are many kinds of mathematical software available to a working mathematician. A brief summary of the the main packages and types of packages, and their relative merits, appears below.

- Symbolic Math Packages - This amorphous set of packages can be used
to perform symbolic analyses. These packages typically can solve algebraic
and differential equations, can integrate and differentiate symbolic
expressions, and can simplify and manipulate algebraic expressions.
- Maple - Produced by Waterloo Maple Inc., in Canada. It is somewhat smaller than its competitors, but is as powerful as any package available. The syntax for this package is relatively intuitive for mathematicians. It has relatively powerful typesetting capabilities.
- Mathematica - Produced by Wolfram Inc., in the U.S.. The syntax for this package is less intuitive than that for some, but is arguably more consistent. The package is as powerful as any available, but tends to require more memory than some of its competitors. It also has powerful typesetting abilities.
- Macsyma - This was the first symbolic mathematics package, dating from the early 1980s, and produced at MIT. It is now free, and is available for many platforms. Unfortunately, it suffers from perhaps the most obscure syntax of any package of its kind, and has relatively poor graphics.
- Sympy, Sage, etc. - There are several packages for use in python that can do symbolic mathematics.

- Numerical Linear Algebra Packages - packages in this class excel at
solving numerical problems. While some have limited symbolic capabilities,
they are best when programmed to run complicated algorithms. They can
handle all problems involving numerical matrices and vectors.
- Matlab - produced by the Mathworks in the U.S., this is the gold standard of the class of packages. It is probably the most-used mathematical package for both mathematicians and engineers. For a price, it can have some symbolic capability.
- Octave - this package is free, and does most of what Matlab does. While it lacks the symbolic toolbox and several other add-on features of Matlab, and its graphics are not of the same standard, in the end it is an excellent and powerful free alternative, available for most platforms.
- Numpy, Scipy, Matplotlib, Pylab etc .- There are several related packages for python that can mimic the numerical and plotting capabilities of Matlab.

- Mathematical spreadsheets - we are aware of only one program in this class, used more by scientists and engineers than by mathematicians. It is called Mathcad. It is not really a spreadsheet, but we refer to it that way because the position of expressions on a page determines their order of execution. It has some symbolic capability, but it is best at doing analyses that involve changing a parameter and running a sequence of calculations anew.
- Differential equation plotters - these programs are designed specifically for visualizing phase portraits of differential equations. They solve the equations numerically and plot the results in two or three dimensions.