What lessons and observations can we draw from having applied all
three symbolic manipulation systems to the
fitting problem?
The first observation is that, our Cinderella, the free-ware Maxima hasn't really performed any worse than Mathematica. We had to use similar techniques in both systems, i.e., at some stage we had to manually rewrite the expressions we worked with in order to make the resulting equations explicitly linear in a and b.
On the other hand, Maple's solve proved remarkably adept at solving this problem without any hints or rewrites. Yet, a lack of automatic expression numbering and of a simple to use facility for picking apart Maple expressions made our life a little difficult.
Maple does have such a facility, but it is nowhere as easy
to use as pickapart or Mathematica's [[1]]. The way
you can pick apart an expression in Maple is illustrated in the
following conversation with Maple:
addressof, disassemble, and pointto,
are referred to as Maple's hackware package. They are meant
to be used sporadically only, and only by the truly desparate.
Another lesson that we have learnt in this section is that
neither system can be used insouciantly. You have to keep an eye
on what goes on, unless you want to end up with
somewhere in the middle of a large computation, which, in turn, may
lead to a thoroughly incorrect answer at the end of a long road.
Maxima, Maple, and Mathematica, are reasoning assistants, meant to be used interactively with every major step and answer scrutinised by a knowledgeable user. For such use though, the ability to force certain operations by using ReplacePart or pickapart may come quite handy. Of course, if you have to resort to that, it clearly hints at certain shortcomings in the power and flexibility of available system functions, e.g., the solve command in Maxima and Mathematica is clearly not as powerful as solve in Maple, and the way Mathematica handles expressions with Sum also leaves something to be desired.