Approximations

In the domain of symbolic computation, mostly exact arithmetic is used, especially with algorithms from the classical Computer Algebra. That aspect is supported by REDUCE with arbitrarily long integer arithmetic and, built on top of that, rational and modular (p-adic) numbers.

The values of transcendental functions with general numeric arguments do not fall into these domains, even if symbols like pi, e, i are attached. Nevertheless symbolic computation can be used for fields beyond classical algebra, for example in the domain of analytic approximations in numerical mathematics.

Power Series

Power series are a valuable tool for the formal approximation of functions, e.g. in the area of differential equations. REDUCE supports several types of power series, among them univariate Taylor series with variable order and multivariate Taylor series with fixed order.

Rounded Numbers

For several decades, floating point numbers have been recognized as a useful tool for numerical computations, although they do not possess most of the algebraic properties of numbers. In REDUCE they are incorporated as "rounded numbers" which, when compared to classical floating point numbers (e.g. in the IEEE view) they offer interesting additional properties:

Technically, this arithmetic is implemented by an embedding of the standard (hardware) floating point operations in a software package, which tries to execute as much as possible in fast hardware and which converts to software emulation as soon as the hardware limits are passed. Based on this number domain, attractive algorithms can be implemented, which start with coarse approximations and then refine the overall precision in an adaptive style when approaching the desired solution.

Interface for Numerical Programs

A field of growing importance for symbolic computation is the use of algorithms of mixed symbolic-numeric type, when for example a symbolic calculation carries out formal transformations on an equation system for control or conditioning of a numerical solver. Examples are the automatic programming of Jacobians for ODE solvers, or the reduction of the order of a system by exploiting formal symmetries. By the cooperation of symbolic and numeric components, REDUCE offers several facilities for the generation of partial or complete programs in languages such as FORTRAN or C. As automatically generated programs tend to flood the target compilers, REDUCE also provides for the optimization of the numeric code.


REDUCE homepage


Winfried Neun, 13-July-1999