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, returnsSeqPer
object otherwise returnsSeqFormula
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_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
¶ 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
¶ Returns the generator for the sequence
-
interval
¶ The interval on which the sequence is defined
-
length
¶ Length of the sequence
-
start
¶ The starting point of the sequence. This point is included
-
stop
¶ The ending point of the sequence. This point is included
-
variables
¶ 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.
See also
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]
-
class
sympy.series.sequences.
SeqPer
[source]¶ Represents a periodic sequence.
The elements are repeated after a given period.
See also
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]
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()
Compound Sequences¶
-
class
sympy.series.sequences.
SeqAdd
[source]¶ Represents term-wise addition of 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.
See also
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))) >>> SeqAdd(SeqFormula(n**3), SeqFormula(n**2)) SeqFormula(n**3 + n**2, (n, 0, oo))
-
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
returnsEmptySequence
. - Other rules are defined in
_mul
methods of sequence classes.
See also
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))