Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Computer algebra and symbolic computation : elementary algorithms
Cohen J., A. K. Peters, Ltd., Natick, MA, 2002. 300 pp. Type: Book (9781568811581)
Date Reviewed: Mar 13 2003

The author defines the focus of this book as follows: “the formulation of algorithms that solve symbolic mathematical problems...the implementation of these algorithms in terms of the operations and control structures available in computer algebra programming languages.” The book is suitable as preliminary reading for computer algebra courses.

Although this is a self-contained book, it is worth noting at the outset that it is Part 1 of a two-volume series; the other [1] focuses on mathematical methods. One of the book’s strengths is that it compares three computer algebra systems (Maple, Mathematica, and Mupad), and is therefore able to illustrate the point (made better than in most other texts) that there is more than one way of mapping mathematics into computer algebra. Several of the exercises are of the form “explore how your computer algebra system handles this concept,” emphasizing this point. The strongly typed systems, however (such as Axiom and Magma), with their greater emphasis on canonical forms, are not featured. The author’s capacity for abstracting from particular systems is well illustrated when he discusses the confusion between programming variables and mathematical variables (p. 139), although he could also have cited Moses [2].

The chapter headings give a feel for the content: “Introduction,” “Elementary Concepts,” “Recursive Structure of Mathematical Expressions,” “Elementary Mathematical Algorithms,” “Recursive Algorithms” (including a heuristic integrator), “Structure of Polynomials and Rational Expressions,” and “Exponential and Trigonometric Transformations” (but no description of logarithmic transformations, thereby silently side-stepping many issues of branch cuts and so on [3]).

The author says (p. 121) “in describing mathematical algorithms, we take a middle ground between the computer scientist’s need for precision and the mathematician’s need for practical approaches for solving a problem.” Apart from being a caricature of both sides, this also leads the author into describing “semantic capacity” (his phrase) in terms of “yes/no,” rather than, as we know from Richardson [4], “yes/no/cannot tell”: admittedly a fundamental problem for computer algebra as a whole, not just for this book. Similarly, the discussion of “simplification context” (p. 128) makes no mention of the concept of canonical forms, a concept conspicuous by its absence throughout the book: see the second display on p. 304, where the failure of the trigonometric simplifier is caused by the failure to invoke a canonical rational function simplifier. On page 9, the author asks, quite reasonably, “Is it possible to give a precise definition of simplify?” but fails to discuss this throughout the text, whereas it is a fundamental question in computer algebra.

The discussion of transformation rules in the context of differentiat ion (pp. 182-186) is good as far as it goes, but fails to make the fundamental point that a transformation rule approach can fundamentally change the modularity and extensibility of a computer algebra system. A procedural approach to differentiation means that the differentiate procedure has to know about the derivatives of all the functions, whereas in a rule-based approach, each new function can add its own differentiation rules. This moves us closer to an object orientation.

A good description of what can be achieved at this level can be found in the description of ordinary differential equations in 4.3. Conversely, the description of integration (p. 199) is flawed in several respects:

  • The author arbitrarily prefers ln x to ln |x| as the integral of 1/x, without citing Stoutemyer [5].
  • Equation 5.16 (∫ ∑ fi = ∑ ∫ fi) is quoted without citing the fact that if, as is implicit in this section, “∫” means “I can integrate”, this equation is only valid in the backwards direction: if the right-hand side integrates, then so does the left, but the left-hand side can integrate without each summand integrating.
  • The author’s appraisal (pp. 207-8) of integration does not make any reference to deterministic theories, and a throwaway reference (p. 212) to Bronstein [6] (his reference 13) as a “theoretical discussion” does not help.

The author tries to avoid the usual problem in computer algebra of glossing over the difference between multi-valued “algebraically defined” functions (which most algebra systems manipulate) and single-valued “C → C” functions to which most users think they are referring [7]. However, he does this by saying that exp(ab) → exp(a)b is valid for non-integer b “in real context,” without defining this. What would happen to exp((2&pgr;i)½)?

Despite the problems outlined above, this work is a good answer to the task the author sets himself, and I will be recommending it to my computer algebra class as preliminary reading.

Reviewer:  J. H. Davenport Review #: CR127053 (0306-0525)
1) Cohen, J. Computer algebra and symbolic computation: mathematical methods. A.K. Peters, Natick, MA, 2002.
2) Moses, J. The variety of variables in mathematical expressions. In Proceedings of the 1977 MACSYMA Users’ Conference (Berkeley, CA, July 27-29, 1977), Andersen, C. M., Eds. MIT Press, Cambridge. MA, 1977, 123–129.
3) Bradford, R.; Corless, R.; Davenport, J.; Jeffrey, D.; Watt, S. Reasoning about the elementary functions of complex analysis. Annals of Mathematics and Artificial Intelligence 36, 3(2002), 303–318.
4) Richardson, D. Some unsolvable problems involving elementary functions of a real variable. Journal of Symbolic Logic 33, 4(1968), 514–520.
5) Stoutemyer, D. Should computer algebra programs use ln x or ln x as their antiderivation of 1/x. DERIVE Newsletter 26, (1997), 3–6.
6) Bronstein, M. Symbolic integration I: transcendental functions. Springer, New York, 1997.
7) Corless, R.; Davenport, J.; Jeffrey, D.; Litt, G.; Watt, S. Reasoning about the elementary functions of complex analysis. In Proceedings of the International Conference on Artificial Intelligence and Symbolic Computation (AISC 2000) (Madrid, Spain, July 17-19, 2000), Campbell, J. A., Roanes-Lozano, E., Eds. Springer, 2000, 115–126.
Bookmark and Share
  Featured Reviewer  
 
General (I.1.0 )
 
 
Algorithms (I.1.2 )
 
 
Applications (I.1.4 )
 
 
Expressions And Their Representation (I.1.1 )
 
 
Languages And Systems (I.1.3 )
 
Would you recommend this review?
yes
no
Other reviews under "General": Date
Mathematics for computer algebra
Mignotte M., Springer-Verlag New York, Inc., New York, NY, 1992. Type: Book (9780387976754)
Feb 1 1993
Computer algebra: systems and algorithms for algebraic computation
Davenport J., Siret Y., Tournier E., Academic Press Ltd., London, UK, 1988. Type: Book (9789780122042300)
Jul 1 1989
Automatic reasoning about numerical stability of rational expressions
Char B.  Symbolic and algebraic computation (, Portland, OR, Jul 17-19, 1989)2411989. Type: Proceedings
Jun 1 1991
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy