Domain of order terms (Landau symbols)

MuPAD® notebooks will be removed in a future release. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.


O(f, <x = x0, y = y0, …>)


O(f, x = x0) represents the Landau symbol .

Mathematically, for a function f in the variables (x, y, …), the Landau symbol

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 |g| ≤ c |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.

With the equations 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.

Variables tending to 0 are not printed on the screen.

The variables of an order term may be obtained with the function indets. The limit points may be queried with the function O::points.

The arithmetical operations +, -, *, /, and ^ are overloaded for order terms.

Automatic simplifications are currently restricted to polynomial expressions 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 1

For polynomial expressions, certain simplifications occur:

O(x^4 + 2*x^2), O(7*x^3), O(x, 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)

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)

Example 2

For 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)

O(x + x^2*y) = O(x)*O(1 + x*y)

Example 3

We demonstrate how to access the variables and the limit points of an order term:

a := O(x^2*y^2)

indets(a) = O::indets(a), O::points(a)

delete a:



An arithmetical expression representing a function in x, y etc.

x, y, …

The variables: identifiers

x0, y0, …

The limit points: arithmetical expressions

Return Values

Element of the domain O.

See Also

MuPAD Functions