next up previous index
Next: Maxima, Maple, and Mathematica: Up: Fitting Previous: Fitting in Mathematica

$\chi ^2$ Fitting, the Lessons

What lessons and observations can we draw from having applied all three symbolic manipulation systems to the $\chi ^2$ 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: 

\begin{figure}
{\footnotesize
\begin{tex2html_preform}\begin{verbatim}> x := arr...
...
sigma := array(1 .. 300, [])\end{verbatim}\end{tex2html_preform}}
\end{figure}


\begin{figure}
{\footnotesize
\begin{tex2html_preform}\begin{verbatim}> chi2 := ...
...--
/ 2
----- sigma[i]
i = 1\end{verbatim}\end{tex2html_preform}}
\end{figure}


\begin{figure}
{\footnotesize
\begin{tex2html_preform}\begin{verbatim}> a := add...
...--
/ 2
----- sigma[i]
i = 1\end{verbatim}\end{tex2html_preform}}
\end{figure}


\begin{figure}
{\footnotesize
\begin{tex2html_preform}\begin{verbatim}> d := dis...
...-----, i = 1 .. n
2
sigma[i]\end{verbatim}\end{tex2html_preform}}
\end{figure}


\begin{figure}
{\footnotesize
\begin{tex2html_preform}\begin{verbatim}> f := dis...
... pointto(f[3]);
i = 1 .. n>\end{verbatim}\end{tex2html_preform}}
\end{figure}

Functions 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 $\partial a/\partial y_k = 0$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.


next up previous index
Next: Maxima, Maple, and Mathematica: Up: Fitting Previous: Fitting in Mathematica
Zdzislaw Meglicki
2001-02-26