Review of MathPlusDerek Holt
Department of Mathematics, University of Warwick, UK
The MathPlus program is produced by Waterloo Maple. It is described by them as "the natural equation solving and graphing tool", which "has all the math you need for Mathematics, Engineering and Science, yet unlimited simplicity for any student". It is available for Macintosh & PowerMac, and for Windows & NT. Minimum space requirements are quite modest: 2MB RAM and 2MB hard disk for the Mac, and 4MB RAM and 3MB hard disk for Windows, although for serious calculations it is preferable to have a little more than the bare minimum. I tested my review copy on a PowerMac with 8MB RAM, and I would have found anything smaller rather frustrating. Installation and starting up the system were easy and problem free.
The interface provided is predominantly mouse driven, with principal operations available from menus. Most, if not all of these can also be selected from a nicely designed and attractive palette, which one tends to use more and more as one grows familiar with the program. Complicated formulae can either be typed in, or constructed using the palette, or a mixture of both, using the system's equation editor in either case. This takes a little getting used to, since it does not behave exactly like a simple word-processing editor, but it seems natural enough after a while. (But complete novices are likely to get in a mess, or delete things by accident from time to time, so it is as well to save one's work frequently.) MathPlus is fundamentally interactive and is not intended or designed for programming. However, all work is carried out in Notebooks, which can and should be saved after use, so it is easy to repeat similar calculations and manipulations later on with different data. The statements that you (the user) type in are regarded as assumptions, and you use the program to derive valid conclusions from these assumptions, by manipulating, transforming and solving equations, applying standard functions to them, and plotting graphs.
The reader who is already familiar with the Maple Computational Algebra system will hopefully have gathered by now that although MathPlus is produced by the same company, it is in no sense a watered down version of Maple, but a program designed from a completely different viewpoint and philosophy, so comparisons between the two are not really meaningful.
Figure 1. A screen dump showing the user interface of MathPlus running on a Macintosh
Using the package
The would-be-user should be warned immediately that although MathPlus is designed with a very user-friendly interface, it is not completely easy to start using it effectively without reference to the manuals. Two manuals are provided, a tutorial guide, and a reference manual. They are generally clearly written and complete, with well-selected examples. However, I found the early chapters of the tutorial guide rather painfully slow, and I started using the reference guide more and more, dipping into the later chapters of the tutorial for examples. After some initial frustration, when things I tried either didn't work, or behaved unexpectedly, I did start to become more adept at persuading it to do what I wanted. I had to learn that the more complicated manipulations could not be done with one operation, but that terms had to be rearranged, selected parts of expressions factorised, and others expanded. In fact, one proceeds much as one would when doing similar manipulations with pen and paper, but with the advantage that one is prevented from making silly mistakes. Once I had satisfied myself that I knew what I was doing, I set myself the task of deriving the formula for the distance of a point from a straight line in the plane, using co-ordinate geometry and pure brute force algebraic manipulation. I was quite pleased with myself, when after going through some rather horrendous looking intermediate steps, I eventually succeeded in simplifying the expression to give the standard formula. By this time, I was really starting to enjoy using the program!
The graphing facilities offered by MathPlus are extensive, well-designed, and easy to use. There is a choice between standard planar graphs, using Cartesian or polar coordinates (implicitly defined functions, or functions using a parameter are also available), 3D-graphs using Cartesian, cylindrical or spherical polar coordinates, and even graphs of complex functions, where colour is used as the fourth coordinate. A really expert user can design his or her own coordinate system, by specifying the necessary transformation from Cartesian coordinates. It is easy to change the ranges plotted, the resolution, and so on, either by selecting parts of the graph with the mouse, or by typing in the data yourself. You can home in on a part of the graph which crosses an axis, and then ask MathPlus to find the corresponding root of the equation numerically. You can shift the whole graph, or set a 3D graph rotating at your chosen speed (but it takes a bit of practice to do that accurately). Animation is also possible if you have enough CPU power and memory available. Colours and shading can be selected by the user. These facilities are undoubtedly one of the most attractive parts of the package, and it is easy to spend long periods of time experimenting with them. Several sample Notebooks are supplied with the program, some of which contain interesting graphs that illustrate these features.
Features and Notebooks
One feature that MathPlus does have in common with Maple is that a reasonably small kernel of operations is provided by the actual executable program, but many other facilities are written in MathPlus, in the form of function definitions and rules for transforming, expanding and simplifying expressions. This is why it is possible for the basic program to be undemanding in resources. The user can choose how many MathPlus rules to include. Of course a faster computer with more memory will be able to conveniently accommodate more. The kernel includes arithmetic (up to 15 decimal places, with whole numbers up to 1010), basic calculus operations, numerical and symbolic solution of equations (polynomials up to degree 4 can be factored using surds), vector and matrix operations, and basic graphics. The MathPlus rules are local to your current Notebook. By default, you will not see them, but you can if you wish edit, delete or add rules. A selection of Notebooks is provided by the producers, each with a self-contained collection of rules. For example, there is one for handling complicated trigonometrical and exponential integrals, and one with a list of definitions of Laplace transforms, thereby enabling the user to find particular integrals for linear differential equations. One can either elect to use the appropriate Notebook for the problem in hand or, if one has plenty of memory, copy and paste them all into one all-powerful Notebook.
As a simple example, MathPlus will expand the expression Ö(x/y) to Öx/Öy. (Here, x and y are wild-card variables that stand for any expression.) However, I could not persuade it to do the opposite, and to replaceÖx/Öy by Ö(x/y), which I needed to do in my derivation of the distance of a point from a line. It was, however, a simple matter to define this transformation as a new "simplify" rule, and then I could go ahead as I wanted. As a slightly more complicated exercise, I defined rules for division in the field Q[Ö2]. There is a warning bell to be sounded at this point however! Transformation rules like Ö(xy)=Ö(x)Ö(y) are necessary and useful, but it is entirely the user's responsibility to ensure that they are valid within the current domain of application. If you substitute x=1 and x=-1 into that expression, for example, then you get the well-known paradoxical result i = -i, since the rule is in fact only valid for positive real numbers, but MathPlus cannot possibly know that. The manuals do stress the point that users should attempt to check the validity of any conclusions reached, for example by re-differentiating the result of an integration, or by substituting solutions of equations back into the original equations.
I have not yet had time to experiment with all of the features offered by MathPlus. Those that I have not yet played with include printing out Notebooks, tabulating data from graphs and plotting graphs from tables, Taylor series, numerical integration, and some more advanced mathematical facilities such as Fourier transforms, Bessel functions and Chebyshev polynomials.
Figure 2. A shot of MathPlus in action showing its 3-dimensional graphing facilities
MathPlus is in a state of continuous development, which means that new facilities will be added later, or existing rules in MathPlus may be moved into the kernel for greater efficiency. As I said before, it is not designed as a programming language, and so it seems unlikely that user-programming facilities will be added. For some people, including myself, this will inevitably prove a serious limitation. For example, it is not difficult to use MathPlus to compute the eigenvectors and associated eigenvalues of a matrix, and indeed this is the topic of one of the tutorials. However, there does not appear to be any way of writing a general function that would, for example, calculate a vector containing the eigenvalues. It would certainly be nice to be able to do that, since then one could use it as an existing boxed-up component of more complicated computations, such as the Jordan Canonical Form of a matrix. Although one can save a Notebook containing a particular calculation, which makes it quite easy to repeat with different data, the calculation will rarely proceed in the identical fashion as before (for example, one might end up dividing by zero with the new data), and so this process cannot be made completely automatic. Of course functions can be defined by the user within MathPlus, but here one is essentially limited to one-line definitions, and so functions that require serious programming are not going to be easy to implement.
There are a couple of other features I would be happy to see. For example, all manipulations take place in the complex numbers, and it would be nice to be able to restrict to the real numbers (or even the integers) on request for operations such as polynomial factorisation. For example, it takes several steps to transform x4+2x2+1 to (x2+1)2, since factorisation results in linear complex factors. This is a relatively minor matter, however, and all-in-all I find MathPlus a very attractive and useful program, in which the non-programmability is the only serious negative feature. It should be ideal for advanced school and university students studying scientific subjects, and is equally useful at the research level.
MathPlus is available from:
A previous version of this review was published in the LMS Bulletin no 238 (May 1996)
CAL-laborate Volume 1 October 1997
Page Maintained By: email@example.com