Up | Prev | PrevTail | Tail |
In expansions of polynomials involving variables that are known to be small, it is often
desirable to throw away all powers of these variables beyond a certain point to avoid
unnecessary computation. The command let
may be used to do this. For example, if
only powers of x
up to x^7
are needed, the command
let x^8 => 0;
will cause the system to delete all powers of x
higher than 7.
CAUTION: This particular simplification works differently from most substitution
mechanisms in REDUCE in that it is applied during polynomial manipulation rather than
to the whole evaluated expression. Thus, with the above rule in effect, x^10/x^5
would
give the result zero, since the numerator would simplify to zero. Similarly x^20/x^10
would give a Zero divisor
error message, since both numerator and denominator
would first simplify to zero.
The method just described is not adequate when expressions involve several variables
having different degrees of smallness. In this case, it is necessary to supply
an asymptotic weight to each variable and count up the total weight of each
product in an expanded expression before deciding whether to keep the term or
not. There are two associated commands in the system to permit this type of
asymptotic constraint. The command weight
takes a list of equations of the
form
=
\(\langle \)number\(\rangle \)where \(\langle \)number\(\rangle \) must be a positive integer (not just evaluate to a positive integer). This command assigns the weight \(\langle \)number\(\rangle \) to the relevant kernel form. A check is then made in all algebraic evaluations to see if the total weight of the term is greater than the weight level assigned to the calculation. If it is, the term is deleted. To compute the total weight of a product, the individual weights of each kernel form are multiplied by their corresponding powers and then added.
The weight level of the system is initially set to 1. The user may change this setting by the command
wtlevel
\(\langle \)number\(\rangle \);
which sets \(\langle \)number\(\rangle \) as the new weight level of the system. \(\langle \)number\(\rangle \) must evaluate to a
positive integer. wtlevel
will also allow nil
as an argument, in which case the current
weight level is returned.
Up | Prev | PrevTail | Front |