Math 181: Computational Math

Lecture 5: Computer Algebra Systems.


R. Robinson:  9/99 2/01



Today there are numerous computer algebra CAS available. Some of the more popular commercial CAS include Maple and Mathematica. Derive is an inexpensive alternative for the PC. Macsyma and Reduce are older programs that are still available.

A new system, MuPad, that resembles Maple in certain ways is currently available free.

Various more specialized programs like GAP (Groups, Algorithms and Programming) are also available for free.

A list of many CAS is in my web links file.

Typically commercial CAS programs now include:


CAS programs are available for all major platforms (Unix, Linux, Windows, Mac, some calculators).

Commercial implementations tend to be expensive.


One typically refers to features like the GUI, notebooks, graphing, etc. the front end.

The CAS program itself (the part that does the computing) is called the kernel.

Derive (or really its kernel) is now available in some hand held calculators (form TI, which recently bought derive). Maple is now available in Casio "CASSIOPEIA" calculator.

The makers of Maple seem particularly willing to "license out" the Maple kernel. It is available as the kernel behind Scientific Workplace (et al) and as the "Symbolic Toolbox" in MATLAB.

MATLAB is not a CAS (not counting the symbolic toolbox). It does mathematics numerically rather than symbolically.

That is to say its kernel is numerical. It is based on machine floating point arithmetic and algorithms from numerical analysis. On the other hand, the MATLAB front end is very similar to (though more rudimentary than) the typical CAS front end. Note that MATLAB can support notebooks based on MS Word.

The fact that MATLAB is not a CAS is both an advantage and a disadvantage. The advantage is that many computations run faster in MATLAB than in Maple.

However, like all the CAS systems, MATLAB is interpreted which means it generally runs slower than Fortran or C (we will experiment with this later)

One of the most useful features of CAS systems (that MATLAB shares) is that the interpreted environment and high level mathematical language features make these systems ideal for experimentation and prototyping.


So what characterizes a CAS that makes it different from, say, MATLAB?

It has the ability to do computations symbolically rather than just numerically. This includes calculus, algebra and number theory.

The mathematical theory behind CAS is an active area of study. In particular, it is the study of systematic algorithms for solving general classes of mathematical problems. Some of these are old and have only recently been implemented on computers. Others are newer.

In some sense this theory parallel to numerical analysis and even has some overlaps. Typically, however the algorithms are more complicated, and for the most part we will not study them, but rather concentrate on using them.

However, I will mention, for example, that solving algebraic equations is accomplished using a technique called Grobner Bases, a theory that originated in the field of algebraic geometry.  Similarly, indefinite integrals are evaluated via called the Bronstein integration algorithm, which can determine in principle whether an elementary integral exists. (See Cohen, Davenport and Heck, Computer Algebra in Industry,
A. Cohen, ed.)


Cohen, Davenport and Heck in the book Computer Algebra in Industry (A. Cohen, Ed) list 7 "Advantages of Computer Algebra".
 

  1. it obviates the need for many traditional pad and pencil computations,

  2.  
  3. it provides easy access to advanced mathematical techniques and algorithms (e.g., factoring, integration, Grobner basis methods),

  4.  

     
     
     

  5. it enables the researcher to finish off a proof of a mathematical result that requires a lot of "straightforward but tedious" computations,

  6.  

     
     
     

  7. it enables the researcher to perform experiments, test conjectures, (by computing the first few instances, or visualization) to a further reaching level than ever before,

  8.  
  9. it brings new life to old problems, like testing primality of a number (or factoring it; leading to applications in cryptography),

  10.  
  11. it calls for the development of new (better/fasted) algorithms, where algorithms are known to exist in theory but do not work satisfactorily (or not at all!) in practice,

  12.  
  13. revives (to some extent) theoretic quests for effective methods: "for which classes of problems is it possible to find algorithms solving them?"


They go on to describe the following factors that limit (in practice) the usefulness of CAS: