# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

# `Series`::`gseries`

Generalized series expansions

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

## Syntax

```Series::gseries(`f`, `x`, <`order`>, <`Left | Right`>)
Series::gseries(`f`, `x = a`, <`order`>, <`Left | Right`>)
```

## Description

`Series::gseries` is the domain of series expansions generalizing Taylor, Laurent and Puiseux expansions.

The call `Series::gseries(f, x)` computes a series expansion at the right hand side of x = 0.

The system functions `series` and `asympt` are the main application of this domain. The latter function only returns elements of this domain, whereas `series` can return an element of `Series::gseries` in cases, where a Puiseux series expansion does not exist.

There may be no need to explicitly create elements of this domain, but to work with the results of the mentioned system functions.

See the help page of the system function `asympt` for a detailed description of the parameters and examples for working with elements of the domain `Series::gseries`.

### Note

Note that elements of `Series::gseries` only represents directional (real) series expansions.

## Environment Interactions

The function is sensitive to the global variable `ORDER`, which determines the default number of terms of the expansion.

## Parameters

 `f` An arithmetical expression `x` The series variable: an identifier `a` The expansion point: an arithmetical expression or ±`infinity` `order` The truncation order: a nonnegative integer

## Options

 `Left` Compute a series expansion that is valid for real x smaller than a. `Right` Compute a series expansion that is valid for real x larger than a (the default case).

## Return Values

Object of domain type `Series::gseries`, or the value `FAIL`.

## Function Calls

Calling an element of `Series::gseries` as a function yields the object itself, regardless of the arguments. The arguments are not evaluated.

## Operations

`Series::gseries` implements standard arithmetic of generalized series expansions. Use the ordinary arithmetical operators `+`, `-`, `*`, `/`, and `^`.

The system functions `coeff`, `lcoeff`, `nthcoeff`, `lterm`, `nthterm`, `lmonomial`, `nthmonomial`, and `ldegree` work on generalized series expansions. See the corresponding help pages of these functions for calling parameters. See the description of these methods below for further details.

The method `"indet"` returns the series variable of the series expansion, i.e., if `s` is an object of the domain `Series::gseries`, then `s::dom::indet(s)` returns the series variable.

The method `"point"` returns the expansion point of the series.

Use the function `expr` to convert a generalized series expansion into an arithmetical expression (as an element of a kernel domain).

## Operands

A series of the domain type `Series::gseries` consists of four operands:

1. A list of pairs [ci, fi]. Each pair represents a monomialcifi of the series expansion, where the ci are the coefficients and fi the terms of `s`. The coefficients do not contain the series variable.

This list can be empty, if the order of the expansion is zero.

2. An arithmetical expression `g` representing the error term of the form O(g). It may be the integer 0, in which case the expansion is exact.

3. The series variable` x`.

4. The expansion point` a`.

## Methods

expand all

#### Mathematical Methods

`_divide(s, t)`

If the arguments are not of domain type `Series::gseries`, then they are converted into such objects. `FAIL` is returned, if one of these conversions fails.

This method overloads the function `_divide` for elements of `Series::gseries`, i.e., you may use it in the form `s/t`.

`_invert(s)`

This method overloads the function `_invert` for elements of `Series::gseries`, i.e., you may use it in the form `1/s`.

`_mult(s, t, …)`

If both `s` and `t` are series expansions of the domain `Series::gseries`, then the result is a series expansion of the domain `Series::gseries`, too. Both series expansions must have the same series variable and expansion point, otherwise `FAIL` is returned.

If `s` or `t` is a series expansion of the domain `Series::Puiseux`, then it is converted into an object of `Series::gseries`. If this fails, then `FAIL` is returned. Otherwise, the product is computed and returned as an object of the domain `Series::gseries`.

If `s` is a series expansion and `t` is an arithmetical expression, then `t` is converted into a series expansion via the constructor `Series::gseries` (and vice versa).

Each argument of this method that is not of the domain type `Series::gseries` is converted into such an element, i.e., a generalized series expansion is computed. If this fails, then `FAIL` is returned.

This method overloads the function `_mult` for elements of `Series::gseries`, i.e., you may use it in the form `s*t*...`.

`_negate(s)`

This method overloads the function `_negate` for elements of `Series::gseries`, i.e., you may use it in the form `-s`.

`_plus(s, t, …)`

If both `s` and `t` are series expansions of the domain `Series::gseries`, then the result is a series expansion of the domain `Series::gseries`, too. Both series expansions must have the same series variable and expansion point, otherwise `FAIL` is returned.

If `s` or `t` is a series expansion of the domain `Series::Puiseux`, then it is converted into an object of `Series::gseries`. If this fails, then `FAIL` is returned. Otherwise, the sum is computed and returned as an object of the domain `Series::gseries`.

If `s` is a series expansion and `t` is an arithmetical expression, then `t` is converted into a series expansion via the constructor `Series::gseries` (and vice versa).

Each argument of this method that is not of the domain type `Series::gseries` is converted into such an element, i.e., a generalized series expansion is computed. If this fails, then `FAIL` is returned.

This method overloads the function `_plus` for elements of `Series::gseries`, i.e., you may use it in the form `s+t+ ...`.

`_power(s, n)`

The exponent n must not involve the series variable of s. Otherwise, an error occurs.

If n is a positive integer, then repeated squaring is used for computing the `n`th power of `s`. Otherwise, the binomial theorem is applied after factoring out the leading monomial.

This method overloads the function `_power` for elements of `Series::gseries`, i.e., you may use it in the form `s^n`.

`_subtract(s, t)`

If the arguments are not of domain type `Series::gseries`, then they are converted into such objects. `FAIL` is returned, if one of these conversions fails.

This method overloads the function `_subtract` for elements of `Series::gseries`, i.e., you may use it in the form `s-t`.

#### Access Methods

`coeff(s, <n>)`

This method overloads the function `coeff` for elements of `Series::gseries`.

`Series::gseries::indet(s)`

Use the method `"point"` to get the expansion point of `s`.

`iszero(s)`

This method overloads the function `iszero` for elements of `Series::gseries`.

`lcoeff(s)`

This method overloads the function `lcoeff` for elements of `Series::gseries`.

`ldegree(s)`

This method overloads the function `ldegree` for elements of `Series::gseries`.

`lmonomial(s)`

This method overloads the function `lmonomial` for elements of `Series::gseries`.

`lterm(s)`

This method overloads the function `lterm` for elements of `Series::gseries`.

`nthcoeff(s, n)`

This method overloads the function `nthcoeff` for elements of `Series::gseries`.

`nthmonomial(s, n)`

This method overloads the function `nthmonomial` for elements of `Series::gseries`.

`nthterm(s, n)`

This method overloads the function `nthterm` for elements of `Series::gseries`.

`Series::gseries::point(s)`

Use the method `"indet"` to get the series variable of `s`.

#### Conversion Methods

`Series::gseries::convert(x)`

`Series::gseries::convert_to(s, T)`

`T` might be the domain `DOM_POLY`, where the sum of monomials is considered as a polynomial in the indeterminates of the third operand of `s`.

If `T` is the domain `DOM_EXPR`, then the conversion is the same as implemented by the method `"expr"` (see below).

If `T` is the domain `Series::Puiseux`, then the system tries to convert `s` into a Puiseux series. If the conversion is not possible, `FAIL` is returned.

Use the function `expr` to convert `s` into an object of a kernel domain.

```Series::gseries::create(list, errorTerm, x = a)```

### Note

This method should be used with caution, because no argument checking is performed. Use it to create, not to compute elements of `Series::gseries`.

`expr(s)`

This method overloads the function `expr` for elements of `Series::gseries`.

```series(s, x | x = x0, <order>, <dir>)```

This method overloads the function `series` for elements of `Series::gseries`. See the corresponding help page for a description of the possible arguments.

#### Technical Methods

`combine(s, <target>)`

This method overloads the system function `combine`. See the corresponding help page for a description of the optional argument `target`.

`has(s, t)`

This method overloads the system function `has`.

`map(s, func, …)`

This method overloads the function `map` for elements of `Series::gseries`.

`print(s)`

`subs(s, x = a, …)`

This method overloads the function `subs` for elements of `Series::gseries`.