Trinh @ Bath

Computer Algebra Systems (CAS)

Computer algebra systems, such as Mathematica, Maple, SageMath, Matlab's Symbolic Math Toolbox, etc. are very useful for the following tasks (ranked in importance):

  • 1 = Deriving and manipulating exact closed-form quantities or special functions, including pattern recognition
  • 2 = Numerical scratchpad for exploration
  • 2 = High precision computations and variable precision arithmetic
  • 3 = (Floating-point) Numerical analysis and numerical solutions

In terms of alternatives to the above tasks, there is no real alternative to item 1 in terms of conventional software you will use. Items ranked 2-3 all have alternatives, e.g. Python, Matlab, C++, etc.

Choosing a software

  • Unfortunately, as far as I'm aware, there is no good competitor to Mathematica (education license \$1k; student license \$70/year). Maple is probably the closest, but it was previously unsatisfactory for my needs.
  • There is no good open source alternative…as far as I know. Perhaps we should do a benchmark test?

Example 1: using Mathematica as a scratchpad

  • Simple 2D, 3D, and contour plotting.
  • Use of special functions
  • Obtaining precision
  • FullSimplify and identities
  • DSolve, NDSolve, and RSolve

Example 2: quadrature

I will do an example showing quadrature using Mathematica. This will look at the SIAM 100-digit challenge problem 1.

Example 3: series expansions

I will do a basic asymptotic expansion example to show the series functionality

Example 4: contour plotting

A script from before showing contour plotting

The philosophy of CAS vs floating point coding