O -- the domain of order terms (Landau
symbols)
IntroductionO(f, x = x0) represents the Landau symbol
O(f, x -> x0).
Call(s)O(f <, x = x0, y = y0...>)
Parametersf |
- | an arithmetical expression
representing a function in x, y etc. |
x, y... |
- | the variables: identifiers |
x0, y0... |
- | the limit points: arithmetical expressions |
Returnsan element of the domain O.
Related
Functions
Detailsg := O(f, x = x0, y = y0, ...)is a function in these variables with the following property: there exists a constant c and a neighborhood of the limit point (x0, y0, ...) such that abs(g) <= c*abs(f) for all values (x, y, ...) in that neighborhood.
Typically, Landau symbols are used to denote the
order terms (``error terms'') of series expansions. Note, however, that
the series expansions produced by asympt, series, and taylor represent order terms as a
part of the data structures Series::Puiseux and Series::gseries; they do
not use the domain O.
x = x0, y = y0 etc.,
f is regarded as a function of the specified variables.
All other identifiers contained in f are regarded as
constant parameters.
If no variables and limit points are specified, then all identifiers
in f are used as variables, each tending to the default
limit point 0.
indets. The limit
points may be queried with the function O::points.+, -,
*, /, and ^ are overloaded for
order terms.f. Univariate polynomial expressions are
reduced to the leading monomial of the expansion around the limit
point. In multivariate polynomial expressions, all terms are discarded
that are divisible by lower order terms. For non-polynomial
expressions, only integer factors are removed.
Example
1For polynomial expressions, certain simplifications occur:
>> O(x^4 + 2*x^2), O(7*x^3), O(x, x = 1)
2 3
O(x ), O(x ), O(1, x = 1)
A zero limit point is not printed on the screen:
>> O(1), O(1, x = 1), O(x^2/(y + 1), x = 0, y = -1, z = PI)
/ 2 \
| x |
O(1), O(1, x = 1), O| -----, z = PI, y = -1 |
\ y + 1 /
The arithmetical operations are overloaded for order terms:
>> 7*O(x), O(x^2) + O(x^13), O(x^3) - O(x^3), O(x^2)^2 + O(x^4)
2 3 4
O(x), O(x ), O(x ), O(x )
Example
2For multivariate polynomial expression, higher order terms are discarded if they are divisible by lower order terms:
>> O(15*x*y^2 + 3*x^2*y + x^2*y^2)
2 2
O(5 x y + x y)
>> O(x + x^2*y) = O(x)*O(1 + x*y)
O(x) = O(x)
Example
3We demonstrate how to access the variables and the limit points of an order term:
>> a := O(x^2*y^2)
2 2
O(x y )
>> indets(a) = O::indets(a), O::points(a)
{x, y} = {x, y}, {x = 0, y = 0}
>> delete a: