MultiSeries[multiseries] - generalized series expansion
|
Calling Sequence
|
|
multiseries(expr, x, n, 'exact_order')
multiseries(expr, x=a, n, 'exact_order')
multiseries(expr, s, n, 'exact_order', v)
|
|
Parameters
|
|
expr
|
-
|
algebraic expression
|
x
|
-
|
name; the series variable
|
n
|
-
|
(optional) non-negative integer; the expansion order
|
a
|
-
|
(optional) algebraic expression; the expansion point
|
exact_order
|
-
|
(optional) literal name
|
s
|
-
|
scale (see MultiSeries[scale])
|
v
|
-
|
(optional) list of variables in the scale (see MultiSeries[scale])
|
|
|
|
|
Description
|
|
•
|
The multiseries function computes a truncated multiseries expansion of expr, with respect to the variable x, at the point a, up to order n. If a is not given, then a = 0 is assumed.
|
•
|
In the simplest case, a multiseries is a classical power series that is truncated during computation.
|
•
|
For example, for an ordinary formal power series in , the scale is simply .
|
•
|
A truncated multiseries expansion is
|
•
|
Multiseries can be formed by recursively expressing each coefficient as a series with respect to . Leading terms can be found by only considering the leading term of the expansion.
|
•
|
The variable is assumed to tend to a along a ray coming from the origin. When a is 0, x tends to . This direction can be changed by a simple change of variable (see the examples below).
|
•
|
The object returned is either 0 (when expr is 0) or of type SERIES. (See type[SERIES] for the description of this data structure.)
|
•
|
If the third argument n is present then it specifies the "working order" of the series calculations. This does not mean the truncation order of the actual series. See Order for more information about this. If n is not present, the order is determined by the global variable Order. The user may assign any non-negative integer to Order. The default value of Order is 6. The order roughly corresponds to the number of terms starting from the first non-zero term for ordinary Taylor series, and the number of nonzero terms for more complicated asymptotic expansions. However due to possible cancellation of terms, this is not guaranteed. See the exact_order flag.
|
•
|
The flag 'exact_order' is used if exactly n nonzero terms are required. Essentially, the function uses n as the working order, and if not enough non-zero terms have been found, it tries again with a greater n, continuing until n nonzero terms have been found, or it can prove no more terms will occur. The danger of using this flag is that the answer may be something like , in which case it may take a very long time to find 3 terms. This option is not usually necessary for most uses of multiseries.
|
•
|
The computation of a multiseries expansion makes heavy use of the environment variable Testzero. In some cases, it might be necessary to modify this variable in order for the computation to be successful (see the documentation of Testzero).
|
•
|
It is possible to extend multiseries to user defined functions. See AddFunction for details.
|
•
|
When a scale s is given as the second argument, the expansion takes place in this scale. There are two main uses for this functionality. The first one is to make it possible to combine (add, multiply,...) several multiseries expansions. The second one is to refine a multiseries expansion, in conjunction with the optional argument v.
|
•
|
The argument v is a list of variables in the scale (see also MultiSeries[scale]). Given such a list, multiseries expands expr to order 1 with respect to the elements of the scale that grow faster than the fastest element of varlist, expands to order n with respect to the elements in the list, and does not expand with respect to the elements in the scale that grow more slowly than the slowest element of varlist. The default value is the whole list of the elements of the scale.
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
An example with a pole:
>
|
|
| (2) |
Expansions at infinity:
>
|
|
| (3) |
>
|
|
| (4) |
In the following example, the requested order is 6, but only the first 5 terms are returned, due to cancellation:
>
|
|
| (5) |
Now, use the exact_order option:
>
|
|
| (6) |
An expansion with the variable tending to 0 from the right:
>
|
|
| (7) |
The variable tends to its limit on a ray coming from the origin:
>
|
|
| (8) |
>
|
|
| (9) |
A simple change of variables reverses the direction:
>
|
|
| (10) |
The coefficients can be bounded functions of the variable:
>
|
|
| (11) |
Non-rational exponents are allowed:
>
|
|
| (12) |
Manipulations with the form of the output. The first computation calculates the scale:
>
|
|
>
|
|
| (13) |
>
|
|
>
|
|
| (14) |
Then if we want the answer in a different form:
>
|
|
| (15) |
or
>
|
|
| (16) |
>
|
|
| (17) |
>
|
|
>
|
|
| (18) |
|
|