Sequences¶
A sequence is a finite or infinite lazily evaluated list.
- 
sympy.series.sequences.sequence(seq, limits=None)[source]¶
- Returns appropriate sequence object. - If - seqis a sympy sequence, returns- SeqPerobject otherwise returns- SeqFormulaobject.- 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(*args)[source]¶
- Base class for sequences - 
coeff_mul(other)[source]¶
- Should be used when - otheris not a sequence. Should be defined to define custom behaviour.- 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)) - Notes - ‘*’ defines multiplication of sequences with sequences only. 
 - 
find_linear_recurrence(n, d=None, gfvar=None)[source]¶
- Finds the shortest linear recurrence that satisfies the first n terms of sequence of order \(\leq\) n/2 if possible. If d is specified, find shortest linear recurrence of order \(\leq\) min(d, n/2) if possible. Returns list of coefficients - [b(1), b(2), ...]corresponding to the recurrence relation- x(n) = b(1)*x(n-1) + b(2)*x(n-2) + ...Returns- []if no recurrence is found. If gfvar is specified, also returns ordinary generating function as a function of gfvar.- Examples - >>> from sympy import sequence, sqrt, oo, lucas >>> from sympy.abc import n, x, y >>> sequence(n**2).find_linear_recurrence(10, 2) [] >>> sequence(n**2).find_linear_recurrence(10) [3, -3, 1] >>> sequence(2**n).find_linear_recurrence(10) [2] >>> sequence(23*n**4+91*n**2).find_linear_recurrence(10) [5, -10, 10, -5, 1] >>> sequence(sqrt(5)*(((1 + sqrt(5))/2)**n - (-(1 + sqrt(5))/2)**(-n))/5).find_linear_recurrence(10) [1, 1] >>> sequence(x+y*(-2)**(-n), (n, 0, oo)).find_linear_recurrence(30) [1/2, 1/2] >>> sequence(3*5**n + 12).find_linear_recurrence(20,gfvar=x) ([6, -5], 3*(5 - 21*x)/((x - 1)*(5*x - 1))) >>> sequence(lucas(n)).find_linear_recurrence(15,gfvar=x) ([1, 1], (x - 2)/(x**2 + x - 1)) 
 - 
property 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 {m} 
 - 
property gen¶
- Returns the generator for the sequence 
 - 
property interval¶
- The interval on which the sequence is defined 
 - 
property length¶
- Length of the sequence 
 - 
property start¶
- The starting point of the sequence. This point is included 
 - 
property stop¶
- The ending point of the sequence. This point is included 
 - 
property variables¶
- Returns a tuple of variables that are bounded 
 
- 
Elementary Sequences¶
- 
class sympy.series.sequences.SeqFormula(formula, limits=None)[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] - See also 
- 
class sympy.series.sequences.SeqPer(periodical, limits=None)[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] - See also 
Singleton Sequences¶
- 
class sympy.series.sequences.EmptySequence(*args, **kwargs)[source]¶
- Represents an empty sequence. - The empty sequence is also available as a singleton as - S.EmptySequence.- Examples - >>> from sympy import EmptySequence, SeqPer, oo >>> from sympy.abc import x >>> EmptySequence EmptySequence >>> SeqPer((1, 2), (x, 0, 10)) + EmptySequence SeqPer((1, 2), (x, 0, 10)) >>> SeqPer((1, 2)) * EmptySequence EmptySequence >>> EmptySequence.coeff_mul(-1) EmptySequence 
Compound Sequences¶
- 
class sympy.series.sequences.SeqAdd(*args, **kwargs)[source]¶
- Represents term-wise addition of sequences. - Rules:
- The interval on which sequence is defined is the intersection of respective intervals of sequences. 
- Anything + - EmptySequenceremains unchanged.
- Other rules are defined in - _addmethods of sequence classes.
 
 - Examples - >>> from sympy import EmptySequence, oo, SeqAdd, SeqPer, SeqFormula >>> from sympy.abc import n >>> SeqAdd(SeqPer((1, 2), (n, 0, oo)), 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)) - See also 
- 
class sympy.series.sequences.SeqMul(*args, **kwargs)[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 * - EmptySequencereturns- EmptySequence.
- Other rules are defined in - _mulmethods of sequence classes.
 
 - Examples - >>> from sympy import EmptySequence, oo, SeqMul, SeqPer, SeqFormula >>> from sympy.abc import n >>> SeqMul(SeqPer((1, 2), (n, 0, oo)), 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)) - See also 
