Step-by-Step Solution Possibilities in Different Computer Algebra Systems
Step-by-Step Solution Possibilities in Different Computer Algebra Systems
Eno Tõnisson
University of Tartu
Estonia
E-mail: [email protected]
Introduction
The aim of my research is to compare different computer algebra systems, and specifically to find out how the
students could solve problems step-by-step using different computer algebra systems. The present paper
provides the preliminary comparison of some aspects related to step-by-step solution in DERIVE, Maple,
Mathematica, and MuPAD. The paper begins with examples of one-step solutions of equations. This is
followed by a cursory survey of useful commands, entering commands, programming etc. I hope that a more
detailed and complete review will be composed quite soon. Suggestions for complementing the comparison
are welcome.
It is necessary to know which concrete versions are under consideration. In alphabetical order:
My paper is not the first comparison, of course. I found several previous ones in the Internet. For example,
(One of the profoundest comparisons is probably M. Wester's book Practical Guide to Computer Algebra
Systems.)
1
2. Laurent Bernardin. A Review of Symbolic Solvers. 1996
There are 80 problems (mainly equations, inequalities and systems).
http://www.inf.ethz.ch/personal/bernardi/solve/review-A4.ps
In our paper the problems under consideration are quite simple. But in case of school applications we cannot
accept wrong output (the message „I cannot solve“ could be acceptable).
One-step solutions
Before going to step-by-step solution, we study how computer algebra systems manage to solve various simple
equations in one step. My first examples in this paper are directly from school mathematics. The problems are
taken from the final examinations of grade 9 and 12 of Estonian schools.
Originally, the exercises are for solving without the aid of a computer algebra system. I try to use the SOLVE-
command of the abovementioned systems.
(4x-1)(x+3) =5x(0.8x+2)
DERIVE 3
Maple 3
Mathematica 3
MuPAD {-4611686018561605634.0, 2.75}
Comment. We teach the students to substitute received solution into the equation and reject the extraneous
solutions. Could the computer algebra programs do the same?
MuPAD *) has problems with exact operations with 0.8. Using 4/5 instead of 0.8 gives the correct answer.
Example 2.
2a − 3
DERIVE
a+4
2a − 3
Maple
4+a
2
3 − 2a
Mathematica −
4+a
2a − 3
MuPAD −
−a−4
Every system gives an answer. The answers seem different but yet are all correct.
Example 3.
15 9 5
− =
x 2 − 4x − 5 x 2 − 5x x2 −1
Maple, Mathematica, and MuPAD give the right answer: -9. DERIVE returns the set: -9, ∞ , − ∞ Are the
extra infinities good or bad?
Examples 4, 5, 6.
Absolute value in equations
|7x - 15 | = 6
|2x2 - 5| = 3
|9 - 2·|5 - x|| = 13
Example 7. Two separated absolute values in the equation seem to provide a more complicated problem.
|x+2| + |x+1| = 3
DERIVE does not solve algebraically (output line: [|x + 2| + |x + 1| = 3]). If we use numerical solving, we get
0 or -3 according to bounds. Maple and Mathematica give the right answers: 0 and -3. The problem is too
complicated for MuPAD *). (Output line solve (abs(x + 1) + abs(x + 2) = 3)
3
Example 8.
3+ 5− x = x
DERIVE 4
Maple 4
Mathematica 4
MuPAD
1/2 1/2 1/2
solve(((5 - x) + 3) = x )
*) Comment
Frank Postel from MuPAD group wrote that the new version of MuPAD, which will be distributed in 2000
and is currently under development, solves the equations
(4x-1)(x+3) =5x(0.8x+2),
|x+2| + |x+1| = 3 (if we rewrite abs with sqrt notation solve(sqrt((x+2)^2)+sqrt((x+1)^2)=3); ),
3+ 5− x = x
[Postel 99].
Previous examples were one-step solutions, where we got the answer immediately. This, however, does not
provide good possibilities for the process of learning in some sense. The step-by-step solution seems to be a
way of using computer algebra systems more efficiently for learning. In the step-by-step solution the main
questions are: Who makes the steps? and How the steps are made? One of the possible lists of options is given
below. Various types could be useful in the concrete situation depending on the stage of the learning process.
• Computer algebra system solves the problem in one step as a black box.
The above examples illustrated this type.
4
• Computer algebra system gives detailed solution steps.
This type gives more information about the solving process to the student. It could be more complicated for
computer algebra system because the solving process has to be „human“. There are no commands of this kind
in computer algebra systems, someone (for example teacher) may program these possibilities for the specific
problem type.
• The student solves the problem step-by-step with the help of the computer
algebra system. (Some steps as white boxes, some as black boxes. [Buchberger 90])
Unlike the above types the student is active. Student must know what to do. Computer algebra system is used
for realization of the step chosen by the student.
• The student solves the problem step-by-step, and the computer algebra system
gives feedback, hints etc. (This type may actually be called ‘an intelligent tutorial system’ if the feedback and
hints are on the required level.)
Why computer algebra systems do not "want" to show steps? One reason for this is that they use other
algorithms than described in the school text-books, and the intermediate results may make no sense for human
beings.
5
Some possibilities related to step-by-step approach
It is necessary to be acquainted with various facilities for organizing step-by-step solution. A brief survey of
several aspects that concern step-by-step approach is given below.
Automatic simplification
We are concerned with showing the solving steps. In this sense, automatic simplification is an interesting
topic. If we enter an equation to the input line in Maple, Mathematica, or MuPAD, the automatic
simplification is done immediately.
Example 9.
Input line: 2x + 4x + 5x = 5
DERIVE 2x + 4x + 5x = 5
Maple 11x = 5
Mathematica 11x ==5
MuPAD 11x = 5
It seems to be a very powerful idea. But for learning? It depends on the situation. The step could be done
automatically by the computer algebra system if the skill is already acquired by the student. If the idea is to
learn the skill, automatic simplification has bad influence on the learning process. We skip the basic skills, for
example the collecting of terms, in this example.
Example 10.
3x - 2 (2x - 5) = 2 (x + 3) - 8
DERIVE 3x - 2 (2x - 5) = 2 (x + 3) - 8
Maple -x + 10 = 2x - 2
Mathematica 3x - 2 (-5+2x) == -8 + 2 (3+x)
MuPAD 10 - x = 2x - 2
Maple and MuPAD automatically clear parentheses. Mathematica changes the order of terms.
6
Algebraic Commands
The tools for transformation of expressions and solving equations have an essential role in computer algebra
systems. All systems have nearly the same set of basic commands for algebraic manipulation.
I have already shown some examples of the application of the SOLVE-command. Every computer algebra
system has possibilities for application of simplification rules to an expression (Simplify), for expanding an
expression (Expand), for factorizing a polynomial (Factor).
Generally, these commands work as black boxes and their use in the step-by-step solving is limited.
The operations that make it possible to handle different parts of expression (equation) separately are extremely
useful for the realization of various algorithms. Maple and DERIVE have operation lhs (rhs) for selecting the
left (right) hand side of an expression.
In Mathematica, we have to use First and Last, and in MuPAD, op instead of lhs and rhs. It is also possible to
use operations Part (in Mathematica), op (in Maple and MuPAD), and TERMS (in DERIVE) for selecting
different parts of an expression.
Entering commands
Entering commands (as interface problems on the whole) is significant because it determines how the student
can use one or another possibility in reality. There are three ideologically different possibilities for using
commands:
7
• select command from palette
Every computer algebra system provides the possibility to type the command in the input line. DERIVE has
the menu possibility and Mathematica has a palette system.
One key concept in the step-by-step solution is subexpression. Actually, we can roughly say that every step in
equation solving or the simplification of expression consist of selecting the subexpression, choosing the right
rule and application of the rule. It is natural to expect that the program copies the left and right wing of the
whole expression to the next line. We examine the possibilities to select a subexpression (with mouse) and to
apply a command to this subexpression. In DERIVE, only mathematically correct subexpressions are
available. In Maple and MuPAD, it is impossible to select a subexpression with mouse. In Mathematica, it is
2
possible to select various substrings. For example, we can select from x - 4x = 0 a correct subexpression.
8
We can select a substring that is not a subexpression. It is easy to make this mistake because the expression
By the use of FACTOR-command Mathematica factors the substring and concatenates the result to x==0.
Further we get the right solution 0 and the wrong solutions 0, 2 and –2. And again the question rises, which
types of false steps must the student be able to make. Only mathematically correct steps?
Selecting of a subexpression is closely connected with the problem of the order of operations. Rein Prank has
experience in teaching the basic course on mathematical logic in the University of Tartu for several years. He
has used Program Formula Manipulation Assistant for his basic course on mathematical logic.
Similar problems with the structure of expressions and the order of operations are in algebra.
Bernhard Kutzler has a nice example how to realize this kind of approach by the use of DERIVE, where the
student solves the problem step-by-step with the help of the computer algebra system [Kutzler 96]. There are
some steps as white boxes (student enters line: #1, #2, #4, #6) , some as black boxes (DERIVE computes: #3,
#5, #7).
#1 5·x - 6 = 2·x + 15
#2 (5·x - 6 = 2·x + 15) - 2·x
#3 3·x - 6 = 15
#4 (3·x - 6 = 15) + 6
#5 3·x = 21
#6 (3·x = 21) - 3
#7 3·x - 3 = 18
9
DERIVE has the possibilities to solve equations step-by-step in that way. The user tells what to do, and
DERIVE acts upon the commands. Let us take a look at other systems. In Maple, we may only multiply and
divide in this way. Mathematica and MuPAD do not provide that kind of possibility.
So we want to create tools for line-by-line solution. At first, we examine changing of the sides of an equation
with the aid of lhs and rhs operations.
Example 11.
equ := 2x - 6 = 7x + 8
rhs(equ) = lhs(equ)
DERIVE 7x + 8 = 2x - 6
Maple 7x + 8 = 2x - 6
Mathematica 8 + 7x == -6 + 2x (First, Last)
MuPAD 7x + 8 = 2x - 6 (op)
DERIVE
ChangeSide(equat):=rhs(equat)=lhs(equat)
Maple
ChangeSide:=proc(equat);
rhs(equat)=lhs(equat);
end;
Mathematica
ChandeSide[equat_]:=Last[equat]==First[equat]
10
MuPAD
ChangeSide:=proc(equat)
begin
op(equat,2)=op(equat,1);
end_proc;
A slightly more complicated procedure for adding an expression to both sides of an equation is given below.
DERIVE
ADDTOBOTHSIDES(equ, add) := LHS(equ) + add = RHS(equ) + add
We can program similar procedures in Maple, Mathematica, and MuPAD. We can compose a set of
procedures needed for the concrete type of an exercise. (There was a set of procedures in Mathematica shown
by Karl Fuchs and Alfred Dominik in ICTMT4 in Plymouth. [Fuchs & Dominik 99] contains the procedures
ChangeSides AddToBothSides, SubtractFromBothSides, etc., etc.)
Procedure solvestep
In the end of the paper I describe a possibility where computer algebra system gives detailed steps of solving a
linear equation.
We can use a procedure (named solvestep), which provides comments on what to do in the next step as well as
the result. It is possible to compose this procedure in Maple, Mathematica, and MuPAD. (The text of the
procedure is not shown here.)
Solvestep(3x - 2 (2x - 5) = 2 (x + 3) - 8)
Clear parentheses: 3x - 4x + 10 = 2x + 6 - 8
Combine like terms: -x + 10 = 2x - 2
Subtract 10 from both sides: -x = 2x - 12
Subtract 2x from both sides: -3x = -12
Divide both sides by -3: x = 4
Conclusion
It seems that computer algebra systems have rather good mathematical competence; however, they do not have
very good competence for step-by-step approach (yet?!). This paper provided a very brief overview of some
aspects related to step-by-step solution problems.
11
References
[Buchgerger 90] Bruno Buchberger. Should Students Learn Integration Rules? SIGSAM Bulletin, Vol 24, No
1, Jan 1990
[Fuchs & Dominik 99] Karl Fuchs, Alfred Dominik. MATHEMATICA palettes - a methodical way to
provoke students into using mathematical strategies. ICTMT 4. 1999.
[Kutzler 96] Bernhard Kutzler. Improving Mathematics Teaching with DERIVE. Chartwell-Bratt Ltd, 1996.
[Postel 99] Frank Postel. Private letters after Gösing conference. September 1999.
[Prank 97] Rein Prank. Good Diagnostics = Adequate Stepwise Solution Interface? ICTMT 3. http://euler.uni-
koblenz.de/ictmt3/cd-rom/pdf/prank.pdf 1997.
12