/

# Sequences¶

A sequence is a finite or infinite lazily evaluated list.

sympy.series.sequences.sequence(seq, limits=None)[source]

Returns appropriate sequence object.

If seq is a sympy sequence, returns SeqPer object otherwise returns SeqFormula object.

Examples

>>> from sympy import sequence, SeqPer, SeqFormula
>>> from sympy.abc import n
>>> sequence(n**2, (n, 0, 5))
SeqFormula(n**2, (n, 0, 5))
>>> sequence((1, 2, 3), (n, 0, 5))
SeqPer((1, 2, 3), (n, 0, 5))


## Sequences Base¶

class sympy.series.sequences.SeqBase[source]

Base class for sequences

coeff(*args, **kwargs)[source]

Returns the coefficient at point pt

coeff_mul(other)[source]

Should be used when other is not a sequence. Should be defined to define custom behaviour.

Notes

‘*’ defines multiplication of sequences with sequences only.

Examples

>>> from sympy import S, oo, SeqFormula
>>> from sympy.abc import n
>>> SeqFormula(n**2).coeff_mul(2)
SeqFormula(2*n**2, (n, 0, oo))

free_symbols[source]

This method returns the symbols in the object, excluding those that take on a specific value (i.e. the dummy symbols).

Examples

>>> from sympy import SeqFormula
>>> from sympy.abc import n, m
>>> SeqFormula(m*n**2, (n, 0, 5)).free_symbols
set([m])

gen[source]

Returns the generator for the sequence

interval[source]

The interval on which the sequence is defined

length[source]

Length of the sequence

start[source]

The starting point of the sequence. This point is included

stop[source]

The ending point of the sequence. This point is included

variables[source]

Returns a tuple of variables that are bounded

## Elementary Sequences¶

class sympy.series.sequences.SeqFormula[source]

Represents sequence based on a formula.

Elements are generated using a formula.

Examples

>>> from sympy import SeqFormula, oo, Symbol
>>> n = Symbol('n')
>>> s = SeqFormula(n**2, (n, 0, 5))
>>> s.formula
n**2


For value at a particular point

>>> s.coeff(3)
9


supports slicing

>>> s[:]
[0, 1, 4, 9, 16, 25]


iterable

>>> list(s)
[0, 1, 4, 9, 16, 25]


sequence starts from negative infinity

>>> SeqFormula(n**2, (-oo, 0))[0:6]
[0, 1, 4, 9, 16, 25]

coeff_mul(coeff)[source]

See docstring of SeqBase.coeff_mul

class sympy.series.sequences.SeqPer[source]

Represents a periodic sequence.

The elements are repeated after a given period.

Examples

>>> from sympy import SeqPer, oo
>>> from sympy.abc import k

>>> s = SeqPer((1, 2, 3), (0, 5))
>>> s.periodical
(1, 2, 3)
>>> s.period
3


For value at a particular point

>>> s.coeff(3)
1


supports slicing

>>> s[:]
[1, 2, 3, 1, 2, 3]


iterable

>>> list(s)
[1, 2, 3, 1, 2, 3]


sequence starts from negative infinity

>>> SeqPer((1, 2, 3), (-oo, 0))[0:6]
[1, 2, 3, 1, 2, 3]


Periodic formulas

>>> SeqPer((k, k**2, k**3), (k, 0, oo))[0:6]
[0, 1, 8, 3, 16, 125]

coeff_mul(coeff)[source]

See docstring of SeqBase.coeff_mul

## Singleton Sequences¶

class sympy.series.sequences.EmptySequence[source]

Represents an empty sequence.

The empty sequence is available as a singleton as S.EmptySequence.

Examples

>>> from sympy import S, SeqPer, oo
>>> from sympy.abc import x
>>> S.EmptySequence
EmptySequence()
>>> SeqPer((1, 2), (x, 0, 10)) + S.EmptySequence
SeqPer((1, 2), (x, 0, 10))
>>> SeqPer((1, 2)) * S.EmptySequence
EmptySequence()
>>> S.EmptySequence.coeff_mul(-1)
EmptySequence()

coeff_mul(coeff)[source]

See docstring of SeqBase.coeff_mul

## Compound Sequences¶

Rules:
• The interval on which sequence is defined is the intersection of respective intervals of sequences.
• Anything + EmptySequence remains unchanged.
• Other rules are defined in _add methods of sequence classes.

Examples

>>> from sympy import S, oo, SeqAdd, SeqPer, SeqFormula
>>> from sympy.abc import n
>>> SeqAdd(SeqPer((1, 2), (n, 0, oo)), S.EmptySequence)
SeqPer((1, 2), (n, 0, oo))
>>> SeqAdd(SeqPer((1, 2), (n, 0, 5)), SeqPer((1, 2), (n, 6, 10)))
EmptySequence()
>>> SeqAdd(SeqPer((1, 2), (n, 0, oo)), SeqFormula(n**2, (n, 0, oo)))
SeqAdd(SeqFormula(n**2, (n, 0, oo)), SeqPer((1, 2), (n, 0, oo)))
SeqFormula(n**3 + n**2, (n, 0, oo))

static reduce(args)[source]

Iterates through all pairs and ask the constituent sequences if they can simplify themselves with any other constituent.

Notes

class sympy.series.sequences.SeqMul[source]

Represents term-wise multiplication of sequences.

Handles multiplication of sequences only. For multiplication with other objects see SeqBase.coeff_mul().

Rules:
• The interval on which sequence is defined is the intersection of respective intervals of sequences.
• Anything * EmptySequence returns EmptySequence.
• Other rules are defined in _mul methods of sequence classes.

Examples

>>> from sympy import S, oo, SeqMul, SeqPer, SeqFormula
>>> from sympy.abc import n
>>> SeqMul(SeqPer((1, 2), (n, 0, oo)), S.EmptySequence)
EmptySequence()
>>> SeqMul(SeqPer((1, 2), (n, 0, 5)), SeqPer((1, 2), (n, 6, 10)))
EmptySequence()
>>> SeqMul(SeqPer((1, 2), (n, 0, oo)), SeqFormula(n**2))
SeqMul(SeqFormula(n**2, (n, 0, oo)), SeqPer((1, 2), (n, 0, oo)))
>>> SeqMul(SeqFormula(n**3), SeqFormula(n**2))
SeqFormula(n**5, (n, 0, oo))

static reduce(args)[source]

Simplify a SeqMul using known rules.

Iterates through all pairs and ask the constituent sequences if they can simplify themselves with any other constituent.

Notes