序列¶
序列是一个有限或无限延迟计算的列表。
- 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_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]
- 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]
单例序列¶
- 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
复合序列¶
- 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))
- 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))
递归序列¶
- 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 项的应用函数