序列

序列是一个有限或无限延迟计算的列表。

sympy.series.sequences.sequence(seq, limits=None)[源代码][源代码]

返回适当的序列对象。

示例

>>> from sympy import sequence
>>> 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))

序列基础

class sympy.series.sequences.SeqBase(*args)[源代码][源代码]

序列的基类

属性:
args

返回 ‘self’ 的参数元组。

assumptions0

返回对象 \(type\) 假设。

canonical_variables

返回一个字典,将 self.bound_symbols 中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。

expr_free_symbols
free_symbols

此方法返回对象中的符号,排除那些具有特定值的符号(即

func

表达式中的顶级函数。

gen

返回序列的生成器

interval

序列定义的区间

is_algebraic
is_antihermitian
is_comparable

如果 self 可以计算为一个具有精度的实数(或已经是一个实数),则返回 True,否则返回 False。

is_complex
is_composite
is_even
is_extended_negative
is_extended_nonnegative
is_extended_nonpositive
is_extended_nonzero
is_extended_positive
is_extended_real
is_finite
is_hermitian
is_imaginary
is_infinite
is_integer
is_irrational
is_negative
is_noninteger
is_nonnegative
is_nonpositive
is_nonzero
is_odd
is_polar
is_positive
is_prime
is_rational
is_real
is_transcendental
is_zero
length

序列的长度

start

序列的起点。

stop

序列的结束点。

variables

返回一个变量元组,这些变量已被绑定

方法

as_content_primitive([radical, clear])

一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。

as_dummy()

返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。

atoms(*types)

返回构成当前对象的原子。

class_key()

类的好顺序。

coeff(pt)

返回点 pt 处的系数

coeff_mul(other)

other 不是一个序列时,应使用此方法。

compare(other)

如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。

count(query)

计算匹配的子表达式的数量。

count_ops([visual])

用于返回操作计数的 count_ops 的包装器。

doit(**hints)

评估默认情况下不评估的对象,如极限、积分、求和和乘积。

dummy_eq(other[, symbol])

比较两个表达式并处理哑符号。

find(query[, group])

查找所有匹配查询的子表达式。

find_linear_recurrence(n[, d, gfvar])

找到满足序列前 n 项的最短线性递归,如果可能的话,其阶数 \(\leq\) n/2

fromiter(args, **assumptions)

从可迭代对象创建一个新对象。

has(*patterns)

测试是否有任何子表达式匹配任何模式。

has_free(*patterns)

如果 self 包含对象 x 作为自由表达式,则返回 True,否则返回 False。

has_xfree(s)

如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。

is_same(b[, approx])

如果 a 和 b 结构相同则返回 True,否则返回 False。

match(pattern[, old])

模式匹配。

matches(expr[, repl_dict, old])

用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。

rcall(*args)

通过表达式树递归应用于参数。

refine([assumption])

请参阅 sympy.assumptions 中的 refine 函数。

replace(query, value[, map, simultaneous, exact])

self 中匹配的子表达式替换为 value

rewrite(*args[, deep])

使用定义的规则重写 self

simplify(**kwargs)

请参阅 sympy.simplify 中的 simplify 函数。

sort_key([order])

返回一个排序键。

subs(*args, **kwargs)

在简化参数后,在表达式中用新内容替换旧内容。

xreplace(rule)

替换表达式中对象的出现。

复制

could_extract_minus_sign

is_hypergeometric

coeff(pt)[源代码][源代码]

返回点 pt 处的系数

coeff_mul(other)[源代码][源代码]

other 不是序列时应该使用。应该定义以定义自定义行为。

注释

‘*’ 仅定义序列与序列之间的乘法。

示例

>>> from sympy import SeqFormula
>>> from sympy.abc import n
>>> SeqFormula(n**2).coeff_mul(2)
SeqFormula(2*n**2, (n, 0, oo))
find_linear_recurrence(
n,
d=None,
gfvar=None,
)[源代码][源代码]

找到满足序列前 n 项的最短线性递归,如果可能的话,递归的阶数 \(\leq\) n/2。如果指定了 d,则在可能的情况下找到阶数 \(\leq\) min(d, n/2) 的最短线性递归。返回对应于递归关系 x(n) = b(1)*x(n-1) + b(2)*x(n-2) + ... 的系数列表 [b(1), b(2), ...]。如果没有找到递归,则返回 []。如果指定了 gfvar,则还返回 gfvar 的普通生成函数。

示例

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

此方法返回对象中的符号,排除那些具有特定值的符号(即虚拟符号)。

示例

>>> from sympy import SeqFormula
>>> from sympy.abc import n, m
>>> SeqFormula(m*n**2, (n, 0, 5)).free_symbols
{m}
property gen

返回序列的生成器

property interval

序列定义的区间

property length

序列的长度

property start

序列的起始点。这个点是包含在内的。

property stop

序列的结束点。这个点是包含在内的。

property variables

返回一个变量元组,这些变量已被绑定

基本序列

class sympy.series.sequences.SeqFormula(formula, limits=None)[源代码][源代码]

基于公式表示序列。

元素是使用公式生成的。

属性:
args

返回 ‘self’ 的参数元组。

assumptions0

返回对象 \(type\) 假设。

canonical_variables

返回一个字典,将 self.bound_symbols 中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。

expr_free_symbols
公式
free_symbols

此方法返回对象中的符号,排除那些具有特定值的符号(即

func

表达式中的顶级函数。

gen

返回序列的生成器

interval

序列定义的区间

is_algebraic
is_antihermitian
is_comparable

如果 self 可以计算为一个具有精度的实数(或已经是一个实数),则返回 True,否则返回 False。

is_complex
is_composite
is_even
is_extended_negative
is_extended_nonnegative
is_extended_nonpositive
is_extended_nonzero
is_extended_positive
is_extended_real
is_finite
is_hermitian
is_imaginary
is_infinite
is_integer
is_irrational
is_negative
is_noninteger
is_nonnegative
is_nonpositive
is_nonzero
is_odd
is_polar
is_positive
is_prime
is_rational
is_real
is_transcendental
is_zero
length

序列的长度

start

序列的起点。

stop

序列的结束点。

variables

返回一个变量元组,这些变量已被绑定

方法

as_content_primitive([radical, clear])

一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。

as_dummy()

返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。

atoms(*types)

返回构成当前对象的原子。

class_key()

类的好顺序。

coeff(pt)

返回点 pt 处的系数

coeff_mul(coeff)

请参阅 SeqBase.coeff_mul 的文档字符串

compare(other)

如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。

count(query)

计算匹配的子表达式的数量。

count_ops([visual])

用于返回操作计数的 count_ops 的包装器。

doit(**hints)

评估默认情况下不评估的对象,如极限、积分、求和和乘积。

dummy_eq(other[, symbol])

比较两个表达式并处理哑符号。

find(query[, group])

查找所有匹配查询的子表达式。

find_linear_recurrence(n[, d, gfvar])

找到满足序列前 n 项的最短线性递归,如果可能的话,其阶数 \(\leq\) n/2

fromiter(args, **assumptions)

从可迭代对象创建一个新对象。

has(*patterns)

测试是否有任何子表达式匹配任何模式。

has_free(*patterns)

如果 self 包含对象 x 作为自由表达式,则返回 True,否则返回 False。

has_xfree(s)

如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。

is_same(b[, approx])

如果 a 和 b 结构相同则返回 True,否则返回 False。

match(pattern[, old])

模式匹配。

matches(expr[, repl_dict, old])

用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。

rcall(*args)

通过表达式树递归应用于参数。

refine([assumption])

请参阅 sympy.assumptions 中的 refine 函数。

replace(query, value[, map, simultaneous, exact])

self 中匹配的子表达式替换为 value

rewrite(*args[, deep])

使用定义的规则重写 self

simplify(**kwargs)

请参阅 sympy.simplify 中的 simplify 函数。

sort_key([order])

返回一个排序键。

subs(*args, **kwargs)

在简化参数后,在表达式中用新内容替换旧内容。

xreplace(rule)

替换表达式中对象的出现。

复制

could_extract_minus_sign

展开

is_hypergeometric

示例

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

对于特定点的值

>>> s.coeff(3)
9

支持切片

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

可迭代对象

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

序列从负无穷开始

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

请参阅 SeqBase.coeff_mul 的文档字符串

class sympy.series.sequences.SeqPer(periodical, limits=None)[源代码][源代码]

表示一个周期性序列。

这些元素在给定的时间段后重复。

属性:
args

返回 ‘self’ 的参数元组。

assumptions0

返回对象 \(type\) 假设。

canonical_variables

返回一个字典,将 self.bound_symbols 中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。

expr_free_symbols
free_symbols

此方法返回对象中的符号,排除那些具有特定值的符号(即

func

表达式中的顶级函数。

gen

返回序列的生成器

interval

序列定义的区间

is_algebraic
is_antihermitian
is_comparable

如果 self 可以计算为一个具有精度的实数(或已经是一个实数),则返回 True,否则返回 False。

is_complex
is_composite
is_even
is_extended_negative
is_extended_nonnegative
is_extended_nonpositive
is_extended_nonzero
is_extended_positive
is_extended_real
is_finite
is_hermitian
is_imaginary
is_infinite
is_integer
is_irrational
is_negative
is_noninteger
is_nonnegative
is_nonpositive
is_nonzero
is_odd
is_polar
is_positive
is_prime
is_rational
is_real
is_transcendental
is_zero
length

序列的长度

周期
期刊
start

序列的起点。

stop

序列的结束点。

variables

返回一个变量元组,这些变量已被绑定

方法

as_content_primitive([radical, clear])

一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。

as_dummy()

返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。

atoms(*types)

返回构成当前对象的原子。

class_key()

类的好顺序。

coeff(pt)

返回点 pt 处的系数

coeff_mul(coeff)

请参阅 SeqBase.coeff_mul 的文档字符串

compare(other)

如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。

count(query)

计算匹配的子表达式的数量。

count_ops([visual])

用于返回操作计数的 count_ops 的包装器。

doit(**hints)

评估默认情况下不评估的对象,如极限、积分、求和和乘积。

dummy_eq(other[, symbol])

比较两个表达式并处理哑符号。

find(query[, group])

查找所有匹配查询的子表达式。

find_linear_recurrence(n[, d, gfvar])

找到满足序列前 n 项的最短线性递归,如果可能的话,其阶数 \(\leq\) n/2

fromiter(args, **assumptions)

从可迭代对象创建一个新对象。

has(*patterns)

测试是否有任何子表达式匹配任何模式。

has_free(*patterns)

如果 self 包含对象 x 作为自由表达式,则返回 True,否则返回 False。

has_xfree(s)

如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。

is_same(b[, approx])

如果 a 和 b 结构相同则返回 True,否则返回 False。

match(pattern[, old])

模式匹配。

matches(expr[, repl_dict, old])

用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。

rcall(*args)

通过表达式树递归应用于参数。

refine([assumption])

请参阅 sympy.assumptions 中的 refine 函数。

replace(query, value[, map, simultaneous, exact])

self 中匹配的子表达式替换为 value

rewrite(*args[, deep])

使用定义的规则重写 self

simplify(**kwargs)

请参阅 sympy.simplify 中的 simplify 函数。

sort_key([order])

返回一个排序键。

subs(*args, **kwargs)

在简化参数后,在表达式中用新内容替换旧内容。

xreplace(rule)

替换表达式中对象的出现。

复制

could_extract_minus_sign

is_hypergeometric

示例

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

对于特定点的值

>>> s.coeff(3)
1

支持切片

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

可迭代对象

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

序列从负无穷开始

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

周期公式

>>> SeqPer((k, k**2, k**3), (k, 0, oo))[0:6]
[0, 1, 8, 3, 16, 125]
coeff_mul(coeff)[源代码][源代码]

请参阅 SeqBase.coeff_mul 的文档字符串

单例序列

class sympy.series.sequences.EmptySequence[源代码][源代码]

表示一个空序列。

空序列也可以作为单例使用,即 S.EmptySequence

属性:
args

返回 ‘self’ 的参数元组。

assumptions0

返回对象 \(type\) 假设。

canonical_variables

返回一个字典,将 self.bound_symbols 中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。

expr_free_symbols
free_symbols

此方法返回对象中的符号,排除那些具有特定值的符号(即

func

表达式中的顶级函数。

gen

返回序列的生成器

interval

序列定义的区间

is_algebraic
is_antihermitian
is_comparable

如果 self 可以计算为一个具有精度的实数(或已经是一个实数),则返回 True,否则返回 False。

is_complex
is_composite
is_even
is_extended_negative
is_extended_nonnegative
is_extended_nonpositive
is_extended_nonzero
is_extended_positive
is_extended_real
is_finite
is_hermitian
is_imaginary
is_infinite
is_integer
is_irrational
is_negative
is_noninteger
is_nonnegative
is_nonpositive
is_nonzero
is_odd
is_polar
is_positive
is_prime
is_rational
is_real
is_transcendental
is_zero
length

序列的长度

start

序列的起点。

stop

序列的结束点。

variables

返回一个变量元组,这些变量已被绑定

方法

as_content_primitive([radical, clear])

一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。

as_dummy()

返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。

atoms(*types)

返回构成当前对象的原子。

class_key()

类的好顺序。

coeff(pt)

返回点 pt 处的系数

coeff_mul(coeff)

请参阅 SeqBase.coeff_mul 的文档字符串

compare(other)

如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。

count(query)

计算匹配的子表达式的数量。

count_ops([visual])

用于返回操作计数的 count_ops 的包装器。

doit(**hints)

评估默认情况下不评估的对象,如极限、积分、求和和乘积。

dummy_eq(other[, symbol])

比较两个表达式并处理哑符号。

find(query[, group])

查找所有匹配查询的子表达式。

find_linear_recurrence(n[, d, gfvar])

找到满足序列前 n 项的最短线性递归,如果可能的话,其阶数 \(\leq\) n/2

fromiter(args, **assumptions)

从可迭代对象创建一个新对象。

has(*patterns)

测试是否有任何子表达式匹配任何模式。

has_free(*patterns)

如果 self 包含对象 x 作为自由表达式,则返回 True,否则返回 False。

has_xfree(s)

如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。

is_same(b[, approx])

如果 a 和 b 结构相同则返回 True,否则返回 False。

match(pattern[, old])

模式匹配。

matches(expr[, repl_dict, old])

用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。

rcall(*args)

通过表达式树递归应用于参数。

refine([assumption])

请参阅 sympy.assumptions 中的 refine 函数。

replace(query, value[, map, simultaneous, exact])

self 中匹配的子表达式替换为 value

rewrite(*args[, deep])

使用定义的规则重写 self

simplify(**kwargs)

请参阅 sympy.simplify 中的 simplify 函数。

sort_key([order])

返回一个排序键。

subs(*args, **kwargs)

在简化参数后,在表达式中用新内容替换旧内容。

xreplace(rule)

替换表达式中对象的出现。

复制

could_extract_minus_sign

is_hypergeometric

示例

>>> from sympy import EmptySequence, SeqPer
>>> 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
coeff_mul(coeff)[源代码][源代码]

请参阅 SeqBase.coeff_mul 的文档字符串

复合序列

class sympy.series.sequences.SeqAdd(*args, **kwargs)[源代码][源代码]

表示序列的逐项相加。

规则:
  • 序列定义的区间是各个序列区间的交集。

  • 任何内容 + 空序列 保持不变。

  • 其他规则在序列类的 _add 方法中定义。

属性:
args

返回 ‘self’ 的参数元组。

assumptions0

返回对象 \(type\) 假设。

canonical_variables

返回一个字典,将 self.bound_symbols 中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。

expr_free_symbols
free_symbols

此方法返回对象中的符号,排除那些具有特定值的符号(即

func

表达式中的顶级函数。

gen

序列生成器。

interval

序列在交集上定义

is_algebraic
is_antihermitian
is_comparable

如果 self 可以计算为一个具有精度的实数(或已经是一个实数),则返回 True,否则返回 False。

is_complex
is_composite
is_even
is_extended_negative
is_extended_nonnegative
is_extended_nonpositive
is_extended_nonzero
is_extended_positive
is_extended_real
is_finite
is_hermitian
is_imaginary
is_infinite
is_integer
is_irrational
is_negative
is_noninteger
is_nonnegative
is_nonpositive
is_nonzero
is_odd
is_polar
is_positive
is_prime
is_rational
is_real
is_transcendental
is_zero
length

序列的长度

start

序列的起点。

stop

序列的结束点。

variables

所有绑定变量的累积

方法

as_content_primitive([radical, clear])

一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。

as_dummy()

返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。

atoms(*types)

返回构成当前对象的原子。

class_key()

类的好顺序。

coeff(pt)

返回点 pt 处的系数

coeff_mul(other)

other 不是一个序列时,应使用此方法。

compare(other)

如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。

count(query)

计算匹配的子表达式的数量。

count_ops([visual])

用于返回操作计数的 count_ops 的包装器。

doit(**hints)

评估默认情况下不评估的对象,如极限、积分、求和和乘积。

dummy_eq(other[, symbol])

比较两个表达式并处理哑符号。

find(query[, group])

查找所有匹配查询的子表达式。

find_linear_recurrence(n[, d, gfvar])

找到满足序列前 n 项的最短线性递归,如果可能的话,其阶数 \(\leq\) n/2

fromiter(args, **assumptions)

从可迭代对象创建一个新对象。

has(*patterns)

测试是否有任何子表达式匹配任何模式。

has_free(*patterns)

如果 self 包含对象 x 作为自由表达式,则返回 True,否则返回 False。

has_xfree(s)

如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。

is_same(b[, approx])

如果 a 和 b 结构相同则返回 True,否则返回 False。

match(pattern[, old])

模式匹配。

matches(expr[, repl_dict, old])

用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。

rcall(*args)

通过表达式树递归应用于参数。

reduce(args)

使用已知规则简化 SeqAdd

refine([assumption])

请参阅 sympy.assumptions 中的 refine 函数。

replace(query, value[, map, simultaneous, exact])

self 中匹配的子表达式替换为 value

rewrite(*args[, deep])

使用定义的规则重写 self

simplify(**kwargs)

请参阅 sympy.simplify 中的 simplify 函数。

sort_key([order])

返回一个排序键。

subs(*args, **kwargs)

在简化参数后,在表达式中用新内容替换旧内容。

xreplace(rule)

替换表达式中对象的出现。

复制

could_extract_minus_sign

is_hypergeometric

示例

>>> 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))
static reduce(args)[源代码][源代码]

使用已知规则简化 SeqAdd

遍历所有对,并询问组成序列是否可以与其他组成序列简化自身。

注释

改编自 Union.reduce

class sympy.series.sequences.SeqMul(*args, **kwargs)[源代码][源代码]

表示序列的逐项乘法。

属性:
args

返回 ‘self’ 的参数元组。

assumptions0

返回对象 \(type\) 假设。

canonical_variables

返回一个字典,将 self.bound_symbols 中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。

expr_free_symbols
free_symbols

此方法返回对象中的符号,排除那些具有特定值的符号(即

func

表达式中的顶级函数。

gen

序列生成器。

interval

序列在交集上定义

is_algebraic
is_antihermitian
is_comparable

如果 self 可以计算为一个具有精度的实数(或已经是一个实数),则返回 True,否则返回 False。

is_complex
is_composite
is_even
is_extended_negative
is_extended_nonnegative
is_extended_nonpositive
is_extended_nonzero
is_extended_positive
is_extended_real
is_finite
is_hermitian
is_imaginary
is_infinite
is_integer
is_irrational
is_negative
is_noninteger
is_nonnegative
is_nonpositive
is_nonzero
is_odd
is_polar
is_positive
is_prime
is_rational
is_real
is_transcendental
is_zero
length

序列的长度

start

序列的起点。

stop

序列的结束点。

variables

所有绑定变量的累积

方法

as_content_primitive([radical, clear])

一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。

as_dummy()

返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。

atoms(*types)

返回构成当前对象的原子。

class_key()

类的好顺序。

coeff(pt)

返回点 pt 处的系数

coeff_mul(other)

other 不是一个序列时,应使用此方法。

compare(other)

如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。

count(query)

计算匹配的子表达式的数量。

count_ops([visual])

用于返回操作计数的 count_ops 的包装器。

doit(**hints)

评估默认情况下不评估的对象,如极限、积分、求和和乘积。

dummy_eq(other[, symbol])

比较两个表达式并处理哑符号。

find(query[, group])

查找所有匹配查询的子表达式。

find_linear_recurrence(n[, d, gfvar])

找到满足序列前 n 项的最短线性递归,如果可能的话,其阶数 \(\leq\) n/2

fromiter(args, **assumptions)

从可迭代对象创建一个新对象。

has(*patterns)

测试是否有任何子表达式匹配任何模式。

has_free(*patterns)

如果 self 包含对象 x 作为自由表达式,则返回 True,否则返回 False。

has_xfree(s)

如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。

is_same(b[, approx])

如果 a 和 b 结构相同则返回 True,否则返回 False。

match(pattern[, old])

模式匹配。

matches(expr[, repl_dict, old])

用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。

rcall(*args)

通过表达式树递归应用于参数。

reduce(args)

使用已知规则简化 SeqMul

refine([assumption])

请参阅 sympy.assumptions 中的 refine 函数。

replace(query, value[, map, simultaneous, exact])

self 中匹配的子表达式替换为 value

rewrite(*args[, deep])

使用定义的规则重写 self

simplify(**kwargs)

请参阅 sympy.simplify 中的 simplify 函数。

sort_key([order])

返回一个排序键。

subs(*args, **kwargs)

在简化参数后,在表达式中用新内容替换旧内容。

xreplace(rule)

替换表达式中对象的出现。

复制

could_extract_minus_sign

is_hypergeometric

示例

>>> 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))
static reduce(args)[源代码][源代码]

使用已知规则简化 SeqMul

注释

改编自 Union.reduce

递归序列

class sympy.series.sequences.RecursiveSeq(
recurrence,
yn,
n,
initial=None,
start=0,
)[源代码][源代码]

有限次数的递归序列。

参数:
递归定义递归的 SymPy 表达式

这不是一个等式,只是表示第n项等于某个表达式。例如,如果 a(n) = f(a(n - 1), ..., a(n - d)),那么表达式应该是 f(a(n - 1), ..., a(n - d))

yn应用未定义的函数

将序列的第 n 项表示为例如 y(n),其中 y 是一个未定义的函数,\(n\) 是序列索引。

n符号参数

递归所在的变量名称,例如,如果递归函数是 y(n),则变量名为 n

初始长度等于递归次数的可迭代对象

递归的初始值。

开始序列的起始值(包含)
属性:
args

返回 ‘self’ 的参数元组。

assumptions0

返回对象 \(type\) 假设。

canonical_variables

返回一个字典,将 self.bound_symbols 中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。

expr_free_symbols
free_symbols

此方法返回对象中的符号,排除那些具有特定值的符号(即

func

表达式中的顶级函数。

gen

返回序列的生成器

initial

序列的初始值

interval

序列定义的区间。

is_algebraic
is_antihermitian
is_comparable

如果 self 可以计算为一个具有精度的实数(或已经是一个实数),则返回 True,否则返回 False。

is_complex
is_composite
is_even
is_extended_negative
is_extended_nonnegative
is_extended_nonpositive
is_extended_nonzero
is_extended_positive
is_extended_real
is_finite
is_hermitian
is_imaginary
is_infinite
is_integer
is_irrational
is_negative
is_noninteger
is_nonnegative
is_nonpositive
is_nonzero
is_odd
is_polar
is_positive
is_prime
is_rational
is_real
is_transcendental
is_zero
length

序列的长度

n

序列索引符号

recurrence

定义递归的方程。

start

序列的起点。

stop

序列的结束点。

variables

返回一个变量元组,这些变量已被绑定

y

序列的第n项未定义函数

yn

表示第 n 项的应用函数

方法

as_content_primitive([radical, clear])

一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。

as_dummy()

返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。

atoms(*types)

返回构成当前对象的原子。

class_key()

类的好顺序。

coeff(pt)

返回点 pt 处的系数

coeff_mul(other)

other 不是一个序列时,应使用此方法。

compare(other)

如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。

count(query)

计算匹配的子表达式的数量。

count_ops([visual])

用于返回操作计数的 count_ops 的包装器。

doit(**hints)

评估默认情况下不评估的对象,如极限、积分、求和和乘积。

dummy_eq(other[, symbol])

比较两个表达式并处理哑符号。

find(query[, group])

查找所有匹配查询的子表达式。

find_linear_recurrence(n[, d, gfvar])

找到满足序列前 n 项的最短线性递归,如果可能的话,其阶数 \(\leq\) n/2

fromiter(args, **assumptions)

从可迭代对象创建一个新对象。

has(*patterns)

测试是否有任何子表达式匹配任何模式。

has_free(*patterns)

如果 self 包含对象 x 作为自由表达式,则返回 True,否则返回 False。

has_xfree(s)

如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。

is_same(b[, approx])

如果 a 和 b 结构相同则返回 True,否则返回 False。

match(pattern[, old])

模式匹配。

matches(expr[, repl_dict, old])

用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。

rcall(*args)

通过表达式树递归应用于参数。

refine([assumption])

请参阅 sympy.assumptions 中的 refine 函数。

replace(query, value[, map, simultaneous, exact])

self 中匹配的子表达式替换为 value

rewrite(*args[, deep])

使用定义的规则重写 self

simplify(**kwargs)

请参阅 sympy.simplify 中的 simplify 函数。

sort_key([order])

返回一个排序键。

subs(*args, **kwargs)

在简化参数后,在表达式中用新内容替换旧内容。

xreplace(rule)

替换表达式中对象的出现。

复制

could_extract_minus_sign

is_hypergeometric

示例

>>> from sympy import Function, symbols
>>> from sympy.series.sequences import RecursiveSeq
>>> y = Function("y")
>>> n = symbols("n")
>>> fib = RecursiveSeq(y(n - 1) + y(n - 2), y(n), n, [0, 1])
>>> fib.coeff(3) # Value at a particular point
2
>>> fib[:6] # supports slicing
[0, 1, 1, 2, 3, 5]
>>> fib.recurrence # inspect recurrence
Eq(y(n), y(n - 2) + y(n - 1))
>>> fib.degree # automatically determine degree
2
>>> for x in zip(range(10), fib): # supports iteration
...     print(x)
(0, 0)
(1, 1)
(2, 1)
(3, 2)
(4, 3)
(5, 5)
(6, 8)
(7, 13)
(8, 21)
(9, 34)
property initial

序列的初始值

property interval

序列定义的区间。

property n

序列索引符号

property recurrence

定义递归的方程。

property start

序列的起始点。这个点是包含在内的。

property stop

序列的结束点。 (oo)

property y

序列的第n项未定义函数

property yn

表示第 n 项的应用函数