积分¶
SymPy 中的 integrals
模块实现了计算表达式定积分和不定积分的方法。
本模块的主要方法是 integrate()
integrate(f, x)
返回不定积分 \(\int f\,dx\)
integrate(f, (x, a, b))
返回定积分 \(\int_{a}^{b} f\,dx\)
示例¶
SymPy 可以积分大量函数。它可以积分多项式函数:
>>> from sympy import *
>>> init_printing(use_unicode=False)
>>> x = Symbol('x')
>>> integrate(x**2 + x + 1, x)
3 2
x x
-- + -- + x
3 2
有理函数:
>>> integrate(x/(x**2+2*x+1), x)
1
log(x + 1) + -----
x + 1
指数多项式函数。这些多项式和 exp
、cos
及 sin
函数的乘积组合可以通过手动使用重复的分部积分法进行积分,这是一个极其繁琐的过程。幸运的是,SymPy 会处理这些积分。
>>> integrate(x**2 * exp(x) * cos(x), x)
2 x 2 x x x
x *e *sin(x) x *e *cos(x) x e *sin(x) e *cos(x)
------------ + ------------ - x*e *sin(x) + --------- - ---------
2 2 2 2
即使是一些非初等积分(特别是涉及误差函数的一些积分)也可以被求解:
>>> integrate(exp(-x**2)*erf(x), x)
____ 2
\/ pi *erf (x)
--------------
4
积分变换¶
SymPy 对定积分和积分变换有特殊支持。
- sympy.integrals.transforms.mellin_transform(f, x, s, **hints)[源代码][源代码]¶
计算 \(f(x)\) 的 Mellin 变换 \(F(s)\),
\[F(s) = \int_0^\infty x^{s-1} f(x) \mathrm{d}x.\]- 对于所有“合理的”函数,这在一条带状区域内绝对收敛。
\(a < \operatorname{Re}(s) < b\).
参见
示例
>>> from sympy import mellin_transform, exp >>> from sympy.abc import x, s >>> mellin_transform(exp(-x), x, s) (gamma(s), (0, oo), True)
- class sympy.integrals.transforms.MellinTransform(*args)[源代码][源代码]¶
表示未计算的梅林变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算梅林变换,请参阅
mellin_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)伴随
as_base_exp
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.inverse_mellin_transform(F, s, x, strip, **hints)[源代码][源代码]¶
计算 \(F(s)\) 在由
strip=(a, b)
给出的基本条带上的逆梅林变换。示例
>>> from sympy import inverse_mellin_transform, oo, gamma >>> from sympy.abc import x, s >>> inverse_mellin_transform(gamma(s), s, x, (0, oo)) exp(-x)
基本条带问题至关重要:
>>> f = 1/(s**2 - 1) >>> inverse_mellin_transform(f, s, x, (-oo, -1)) x*(1 - 1/x**2)*Heaviside(x - 1)/2 >>> inverse_mellin_transform(f, s, x, (-1, 1)) -x*Heaviside(1 - x)/2 - Heaviside(x - 1)/(2*x) >>> inverse_mellin_transform(f, s, x, (1, oo)) (1/2 - x**2/2)*Heaviside(1 - x)/x
- class sympy.integrals.transforms.InverseMellinTransform(*args)[源代码][源代码]¶
表示未计算的逆梅林变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算逆梅林变换,请参阅
inverse_mellin_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- fundamental_strip
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)伴随
as_base_exp
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.laplace_transform(
- f,
- t,
- s,
- legacy_matrix=True,
- **hints,
计算函数 \(f(t)\) 的拉普拉斯变换 \(F(s)\)。
\[F(s) = \int_{0^{-}}^\infty e^{-st} f(t) \mathrm{d}t.\]参见
参考文献
[1]Erdelyi, A. (编), 《积分变换表》, 第一卷, Bateman 手稿项目, McGraw-Hill (1954), 可获取: https://resolver.caltech.edu/CaltechAUTHORS:20140123-101456353
示例
>>> from sympy import DiracDelta, exp, laplace_transform >>> from sympy.abc import t, s, a >>> laplace_transform(t**4, t, s) (24/s**5, 0, True) >>> laplace_transform(t**a, t, s) (gamma(a + 1)/(s*s**a), 0, re(a) > -1) >>> laplace_transform(DiracDelta(t)-a*exp(-a*t), t, s, simplify=True) (s/(a + s), -re(a), True)
还有一些辅助函数,使得通过拉普拉斯变换求解微分方程变得容易。例如,要求解
\[m x''(t) + d x'(t) + k x(t) = 0\]初始值为 \(0\) 和初始导数为 \(v\):
>>> from sympy import Function, laplace_correspondence, diff, solve >>> from sympy import laplace_initial_conds, inverse_laplace_transform >>> from sympy.abc import d, k, m, v >>> x = Function('x') >>> X = Function('X') >>> f = m*diff(x(t), t, 2) + d*diff(x(t), t) + k*x(t) >>> F = laplace_transform(f, t, s, noconds=True) >>> F = laplace_correspondence(F, {x: X}) >>> F = laplace_initial_conds(F, t, {x: [0, v]}) >>> F d*s*X(s) + k*X(s) + m*(s**2*X(s) - v) >>> Xs = solve(F, X(s))[0] >>> Xs m*v/(d*s + k + m*s**2) >>> inverse_laplace_transform(Xs, s, t) 2*v*exp(-d*t/(2*m))*sin(t*sqrt((-d**2 + 4*k*m)/m**2)/2)*Heaviside(t)/sqrt((-d**2 + 4*k*m)/m**2)
- sympy.integrals.transforms.laplace_correspondence(f, fdict, /)[源代码][源代码]¶
这个辅助函数接受一个函数 \(f\),该函数是
laplace_transform
或inverse_laplace_transform
的结果。如果fdict
包含对应关系{y: Y}
,它会将所有未求值的LaplaceTransform(y(t), t, s)
替换为 \(Y(s)\) 对于任何 \(s\),以及将所有InverseLaplaceTransform(Y(s), s, t)
替换为 \(y(t)\) 对于任何 \(t\)。- 参数:
- fsympy 表达式
包含未求值的
LaplaceTransform
或LaplaceTransform
对象的表达式。- fdict字典
包含一个或多个函数对应关系的字典,例如
{x: X, y: Y}
,表示X
和Y
分别是x
和y
的拉普拉斯变换。
示例
>>> from sympy import laplace_transform, diff, Function >>> from sympy import laplace_correspondence, inverse_laplace_transform >>> from sympy.abc import t, s >>> y = Function("y") >>> Y = Function("Y") >>> z = Function("z") >>> Z = Function("Z") >>> f = laplace_transform(diff(y(t), t, 1) + z(t), t, s, noconds=True) >>> laplace_correspondence(f, {y: Y, z: Z}) s*Y(s) + Z(s) - y(0) >>> f = inverse_laplace_transform(Y(s), s, t) >>> laplace_correspondence(f, {y: Y}) y(t)
- sympy.integrals.transforms.laplace_initial_conds(f, t, fdict, /)[源代码][源代码]¶
这个辅助函数接受一个函数 \(f\),它是
laplace_transform
的结果。它接受一个形如{y: [1, 4, 2]}
的 fdict,其中列表中的值是函数 \(y(t)\) 的初始值、初始斜率、初始二阶导数等,并替换所有未求值的初始条件。- 参数:
- fsympy 表达式
包含未求值函数初始条件的表达式。
- tsympy 表达式
要应用初始条件的变量。
- fdict字典
包含每个函数的初始条件列表的字典,例如
{y: [0, 1, 2], x: [3, 4, 5]}
。导数的顺序是升序的,所以 \(0\), \(1\), \(2\) 分别对应 \(y(0)\), \(y'(0)\), 和 \(y''(0)\)。
示例
>>> from sympy import laplace_transform, diff, Function >>> from sympy import laplace_correspondence, laplace_initial_conds >>> from sympy.abc import t, s >>> y = Function("y") >>> Y = Function("Y") >>> f = laplace_transform(diff(y(t), t, 3), t, s, noconds=True) >>> g = laplace_correspondence(f, {y: Y}) >>> laplace_initial_conds(g, t, {y: [2, 4, 8, 16, 32]}) s**3*Y(s) - 2*s**2 - 4*s - 8
- class sympy.integrals.transforms.LaplaceTransform(*args)[源代码][源代码]¶
表示未计算的拉普拉斯变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算拉普拉斯变换,请参阅
laplace_transform()
文档字符串。如果使用
.doit()
调用此函数,它将返回拉普拉斯变换作为表达式。如果使用.doit(noconds=False)
调用,它将返回一个包含相同表达式、收敛平面和条件的元组。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)伴随
as_base_exp
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.inverse_laplace_transform(
- F,
- s,
- t,
- plane=None,
- **hints,
计算 \(F(s)\) 的拉普拉斯逆变换,定义为
\[f(t) = \frac{1}{2\pi i} \int_{c-i\infty}^{c+i\infty} e^{st} F(s) \mathrm{d}s,\]对于 \(c\) 足够大,使得 \(F(s)\) 在半平面 \(\operatorname{Re}(s) > c-\epsilon\) 内没有奇点。
示例
>>> from sympy import inverse_laplace_transform, exp, Symbol >>> from sympy.abc import s, t >>> a = Symbol('a', positive=True) >>> inverse_laplace_transform(exp(-a*s)/s, s, t) Heaviside(-a + t)
- class sympy.integrals.transforms.InverseLaplaceTransform(*args)[源代码][源代码]¶
表示未计算的拉普拉斯逆变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算拉普拉斯逆变换,请参阅
inverse_laplace_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- fundamental_plane
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)伴随
as_base_exp
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.fourier_transform(f, x, k, **hints)[源代码][源代码]¶
计算
f
的单一、普通频率的傅里叶变换,定义为\[F(k) = \int_{-\infty}^\infty f(x) e^{-2\pi i x k} \mathrm{d} x.\]参见
示例
>>> from sympy import fourier_transform, exp >>> from sympy.abc import x, k >>> fourier_transform(exp(-x**2), x, k) sqrt(pi)*exp(-pi**2*k**2) >>> fourier_transform(exp(-x**2), x, k, noconds=False) (sqrt(pi)*exp(-pi**2*k**2), True)
- sympy.integrals.transforms._fourier_transform(
- f,
- x,
- k,
- a,
- b,
- name,
- simplify=True,
计算一个通用的傅里叶型变换
\[F(k) = a \int_{-\infty}^{\infty} e^{bixk} f(x)\, dx.\]对于 a 和 b 的合适选择,这简化为标准的傅里叶变换和逆傅里叶变换。
- class sympy.integrals.transforms.FourierTransform(*args)[源代码][源代码]¶
表示未计算傅里叶变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算傅里叶变换,请参阅
fourier_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)a
伴随
as_base_exp
b
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.inverse_fourier_transform(F, k, x, **hints)[源代码][源代码]¶
计算 \(F\) 的单一、普通频率逆傅里叶变换,定义为
\[f(x) = \int_{-\infty}^\infty F(k) e^{2\pi i x k} \mathrm{d} k.\]参见
示例
>>> from sympy import inverse_fourier_transform, exp, sqrt, pi >>> from sympy.abc import x, k >>> inverse_fourier_transform(sqrt(pi)*exp(-(pi*k)**2), k, x) exp(-x**2) >>> inverse_fourier_transform(sqrt(pi)*exp(-(pi*k)**2), k, x, noconds=False) (exp(-x**2), True)
- class sympy.integrals.transforms.InverseFourierTransform(*args)[源代码][源代码]¶
表示未计算的傅里叶逆变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算逆傅里叶变换,请参阅
inverse_fourier_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)a
伴随
as_base_exp
b
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.sine_transform(f, x, k, **hints)[源代码][源代码]¶
计算 \(f\) 的单一、普通频率的正弦变换,定义为
\[F(k) = \sqrt{\frac{2}{\pi}} \int_{0}^\infty f(x) \sin(2\pi x k) \mathrm{d} x.\]参见
示例
>>> from sympy import sine_transform, exp >>> from sympy.abc import x, k, a >>> sine_transform(x*exp(-a*x**2), x, k) sqrt(2)*k*exp(-k**2/(4*a))/(4*a**(3/2)) >>> sine_transform(x**(-a), x, k) 2**(1/2 - a)*k**(a - 1)*gamma(1 - a/2)/gamma(a/2 + 1/2)
- class sympy.integrals.transforms.SineTransform(*args)[源代码][源代码]¶
表示未计算的正弦变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算正弦变换,请参阅
sine_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)a
伴随
as_base_exp
b
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.inverse_sine_transform(F, k, x, **hints)[源代码][源代码]¶
计算 \(F\) 的单一、普通频率的反弦变换,定义为
\[f(x) = \sqrt{\frac{2}{\pi}} \int_{0}^\infty F(k) \sin(2\pi x k) \mathrm{d} k.\]参见
示例
>>> from sympy import inverse_sine_transform, exp, sqrt, gamma >>> from sympy.abc import x, k, a >>> inverse_sine_transform(2**((1-2*a)/2)*k**(a - 1)* ... gamma(-a/2 + 1)/gamma((a+1)/2), k, x) x**(-a) >>> inverse_sine_transform(sqrt(2)*k*exp(-k**2/(4*a))/(4*sqrt(a)**3), k, x) x*exp(-a*x**2)
- class sympy.integrals.transforms.InverseSineTransform(*args)[源代码][源代码]¶
表示未计算的反正弦变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算反弦变换,请参阅
inverse_sine_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)a
伴随
as_base_exp
b
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.cosine_transform(f, x, k, **hints)[源代码][源代码]¶
计算 \(f\) 的单一、普通频率余弦变换,定义为
\[F(k) = \sqrt{\frac{2}{\pi}} \int_{0}^\infty f(x) \cos(2\pi x k) \mathrm{d} x.\]参见
示例
>>> from sympy import cosine_transform, exp, sqrt, cos >>> from sympy.abc import x, k, a >>> cosine_transform(exp(-a*x), x, k) sqrt(2)*a/(sqrt(pi)*(a**2 + k**2)) >>> cosine_transform(exp(-a*sqrt(x))*cos(a*sqrt(x)), x, k) a*exp(-a**2/(2*k))/(2*k**(3/2))
- class sympy.integrals.transforms.CosineTransform(*args)[源代码][源代码]¶
表示未求值余弦变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算余弦变换,请参阅
cosine_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)a
伴随
as_base_exp
b
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.inverse_cosine_transform(F, k, x, **hints)[源代码][源代码]¶
计算 \(F\) 的单一、普通频率反余弦变换,定义为
\[f(x) = \sqrt{\frac{2}{\pi}} \int_{0}^\infty F(k) \cos(2\pi x k) \mathrm{d} k.\]参见
示例
>>> from sympy import inverse_cosine_transform, sqrt, pi >>> from sympy.abc import x, k, a >>> inverse_cosine_transform(sqrt(2)*a/(sqrt(pi)*(a**2 + k**2)), k, x) exp(-a*x) >>> inverse_cosine_transform(1/sqrt(k), k, x) 1/sqrt(x)
- class sympy.integrals.transforms.InverseCosineTransform(*args)[源代码][源代码]¶
表示未计算的反余弦变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算反余弦变换,请参阅
inverse_cosine_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)a
伴随
as_base_exp
b
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.hankel_transform(f, r, k, nu, **hints)[源代码][源代码]¶
计算 \(f\) 的 Hankel 变换,定义为
\[F_\nu(k) = \int_{0}^\infty f(r) J_\nu(k r) r \mathrm{d} r.\]参见
示例
>>> from sympy import hankel_transform, inverse_hankel_transform >>> from sympy import exp >>> from sympy.abc import r, k, m, nu, a
>>> ht = hankel_transform(1/r**m, r, k, nu) >>> ht 2*k**(m - 2)*gamma(-m/2 + nu/2 + 1)/(2**m*gamma(m/2 + nu/2))
>>> inverse_hankel_transform(ht, k, r, nu) r**(-m)
>>> ht = hankel_transform(exp(-a*r), r, k, 0) >>> ht a/(k**3*(a**2/k**2 + 1)**(3/2))
>>> inverse_hankel_transform(ht, k, r, 0) exp(-a*r)
- class sympy.integrals.transforms.HankelTransform(*args)[源代码][源代码]¶
表示未计算的汉克尔变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算汉克尔变换,请参阅
hankel_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)伴随
as_base_exp
复制
差异
目录
is_hypergeometric
转置
- sympy.integrals.transforms.inverse_hankel_transform(F, k, r, nu, **hints)[源代码][源代码]¶
计算 \(F\) 的逆 Hankel 变换,定义为
\[f(r) = \int_{0}^\infty F_\nu(k) J_\nu(k r) k \mathrm{d} k.\]参见
示例
>>> from sympy import hankel_transform, inverse_hankel_transform >>> from sympy import exp >>> from sympy.abc import r, k, m, nu, a
>>> ht = hankel_transform(1/r**m, r, k, nu) >>> ht 2*k**(m - 2)*gamma(-m/2 + nu/2 + 1)/(2**m*gamma(m/2 + nu/2))
>>> inverse_hankel_transform(ht, k, r, nu) r**(-m)
>>> ht = hankel_transform(exp(-a*r), r, k, 0) >>> ht a/(k**3*(a**2/k**2 + 1)**(3/2))
>>> inverse_hankel_transform(ht, k, r, 0) exp(-a*r)
- class sympy.integrals.transforms.InverseHankelTransform(*args)[源代码][源代码]¶
表示未计算的逆汉克尔变换的类。
关于此类别的使用方法,请参阅
IntegralTransform
文档字符串。关于如何计算逆汉克尔变换,请参阅
inverse_hankel_transform()
文档字符串。- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)伴随
as_base_exp
复制
差异
目录
is_hypergeometric
转置
- class sympy.integrals.transforms.IntegralTransform(*args)[源代码][源代码]¶
积分变换的基类。
- 属性:
args
返回 ‘self’ 的参数元组。
- as_integral
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。func
表达式中的顶级函数。
function
要转换的函数。
function_variable
要转换的函数的因变量。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果
self
没有自由符号且没有未定义的函数(确切地说,是 AppliedUndef),则返回 True。- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
transform_variable
独立的变换变量。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)尝试以闭式形式评估变换。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
eval
(*args)返回应用于参数 args 的 cls 的规范形式。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
fdiff
([argindex])返回函数的导数。
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
is_singular
(a)测试参数是否为本质奇点或分支点,或者函数是否为非全纯函数。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(**_)伴随
as_base_exp
复制
差异
目录
is_hypergeometric
转置
- property function¶
要转换的函数。
- property function_variable¶
要转换的函数的因变量。
- property transform_variable¶
独立的变换变量。
内部机制¶
SymPy 使用多种算法来计算积分。算法按顺序尝试,直到其中一个产生答案。大多数这些算法可以通过使用 integrate()
或 doit()
的各种标志手动启用或禁用。
SymPy 首先应用几种启发式算法,因为这些算法是最快的:
如果函数是有理函数,那么有一个完整的算法用于积分有理函数,称为 Lazard-Rioboo-Trager 和 Horowitz-Ostrogradsky 算法。它们在
ratint()
中实现。- sympy.integrals.rationaltools.ratint(f, x, **flags)[源代码][源代码]¶
对有理函数进行不定积分。
参见
参考文献
[1]M. Bronstein, Symbolic Integration I: Transcendental Functions, Second Edition, Springer-Verlag, 2005, pp. 35-70
示例
>>> from sympy.integrals.rationaltools import ratint >>> from sympy.abc import x
>>> ratint(36/(x**5 - 2*x**4 - 2*x**3 + 4*x**2 + x - 2), x) (12*x + 6)/(x**2 - 1) + 4*log(x - 2) - 4*log(x + 1)
- sympy.integrals.rationaltools.ratint_ratpart(f, g, x)[源代码][源代码]¶
Horowitz-Ostrogradsky 算法。
参见
示例
>>> from sympy.integrals.rationaltools import ratint_ratpart >>> from sympy.abc import x, y >>> from sympy import Poly >>> ratint_ratpart(Poly(1, x, domain='ZZ'), ... Poly(x + 1, x, domain='ZZ'), x) (0, 1/(x + 1)) >>> ratint_ratpart(Poly(1, x, domain='EX'), ... Poly(x**2 + y**2, x, domain='EX'), x) (0, 1/(x**2 + y**2)) >>> ratint_ratpart(Poly(36, x, domain='ZZ'), ... Poly(x**5 - 2*x**4 - 2*x**3 + 4*x**2 + x - 2, x, domain='ZZ'), x) ((12*x + 6)/(x**2 - 1), 12/(x**2 - x - 2))
- sympy.integrals.rationaltools.ratint_logpart(f, g, x, t=None)[源代码][源代码]¶
Lazard-Rioboo-Trager 算法。
参见
示例
>>> from sympy.integrals.rationaltools import ratint_logpart >>> from sympy.abc import x >>> from sympy import Poly >>> ratint_logpart(Poly(1, x, domain='ZZ'), ... Poly(x**2 + x + 1, x, domain='ZZ'), x) [(Poly(x + 3*_t/2 + 1/2, x, domain='QQ[_t]'), ...Poly(3*_t**2 + 1, _t, domain='ZZ'))] >>> ratint_logpart(Poly(12, x, domain='ZZ'), ... Poly(x**2 - x - 2, x, domain='ZZ'), x) [(Poly(x - 3*_t/8 - 1/2, x, domain='QQ[_t]'), ...Poly(-_t**2 + 16, _t, domain='ZZ'))]
trigintegrate()
使用模式匹配来解决三角函数的积分问题- sympy.integrals.trigonometry.trigintegrate(f, x, conds='piecewise')[源代码][源代码]¶
对 x 积分 f = Mul(trig)。
参考文献
示例
>>> from sympy import sin, cos, tan, sec >>> from sympy.integrals.trigonometry import trigintegrate >>> from sympy.abc import x
>>> trigintegrate(sin(x)*cos(x), x) sin(x)**2/2
>>> trigintegrate(sin(x)**2, x) x/2 - sin(x)*cos(x)/2
>>> trigintegrate(tan(x)*sec(x), x) 1/cos(x)
>>> trigintegrate(sin(x)*tan(x), x) -log(sin(x) - 1)/2 + log(sin(x) + 1)/2 - sin(x)
deltaintegrate()
解决了包含DiracDelta
对象的积分问题。- sympy.integrals.deltafunctions.deltaintegrate(f, x)[源代码][源代码]¶
-
示例
>>> from sympy.abc import x, y, z >>> from sympy.integrals.deltafunctions import deltaintegrate >>> from sympy import sin, cos, DiracDelta >>> deltaintegrate(x*sin(x)*cos(x)*DiracDelta(x - 1), x) sin(1)*cos(1)*Heaviside(x - 1) >>> deltaintegrate(y**2*DiracDelta(x - z)*DiracDelta(y - z), y) z**2*DiracDelta(x - z)*Heaviside(y - z)
singularityintegrate()
如果函数包含SingularityFunction
则应用。- sympy.integrals.singularityfunctions.singularityintegrate(f, x)[源代码][源代码]¶
此函数处理奇异函数的定积分。每当将 SingularityFunction 的实例作为参数传递时,
integrate
函数会在内部调用此函数。示例
>>> from sympy.integrals.singularityfunctions import singularityintegrate >>> from sympy import SingularityFunction, symbols, Function >>> x, a, n, y = symbols('x a n y') >>> f = Function('f') >>> singularityintegrate(SingularityFunction(x, a, 3), x) SingularityFunction(x, a, 4)/4 >>> singularityintegrate(5*SingularityFunction(x, 5, -2), x) 5*SingularityFunction(x, 5, -1) >>> singularityintegrate(6*SingularityFunction(x, 5, -1), x) 6*SingularityFunction(x, 5, 0) >>> singularityintegrate(x*SingularityFunction(x, 0, -1), x) 0 >>> singularityintegrate(SingularityFunction(x, 1, -1) * f(x), x) f(1)*SingularityFunction(x, 1, 0)
如果启发式算法不能应用,接下来会尝试
risch_integrate()
。Risch算法 是一种计算初等函数不定积分的通用方法。Risch算法是一个决策过程,可以确定是否存在初等解,并在这种情况下计算它。它可以扩展到处理许多非初等函数以及初等函数。然而,SymPy中实现的版本仅支持完整算法的一小部分,特别是,仅实现了指数和对数部分的超越算法。risch_integrate()
相对于其他方法的一个优势是,如果它返回NonElementaryIntegral
的实例,则该积分被算法证明为非初等,这意味着该积分不能用指数、对数、三角函数、幂、有理函数、代数函数及其组合来表示。- sympy.integrals.risch.risch_integrate(
- f,
- x,
- extension=None,
- handle_first='log',
- separate_integral=False,
- rewrite_complex=None,
- conds='piecewise',
Risch 积分算法。
示例
>>> from sympy.integrals.risch import risch_integrate >>> from sympy import exp, log, pprint >>> from sympy.abc import x
首先,我们尝试积分 exp(-x**2)。除了一个常数因子 2/sqrt(pi) 之外,这是著名的误差函数。
>>> pprint(risch_integrate(exp(-x**2), x)) / | | 2 | -x | e dx | /
结果中的未计算积分意味着 risch_integrate() 已经证明 exp(-x**2) 没有初等反导数。
在许多情况下,risch_integrate() 可以将初等反导数部分与非初等反导数部分分开。例如,
>>> pprint(risch_integrate((2*log(x)**2 - log(x) - x**2)/(log(x)**3 - ... x**2*log(x)), x)) / | log(-x + log(x)) log(x + log(x)) | 1 - ---------------- + --------------- + | ------ dx 2 2 | log(x) | /
这意味着已经证明 1/log(x) 的积分是非初等函数。这个函数也被称为对数积分,通常记作 Li(x)。
risch_integrate() 目前仅接受纯超越函数,包括指数和对数函数,但请注意,这可以包括嵌套的指数和对数,以及以E以外的基数为底的指数。
>>> pprint(risch_integrate(exp(x)*exp(exp(x)), x)) / x\ \e / e >>> pprint(risch_integrate(exp(exp(x)), x)) / | | / x\ | \e / | e dx | /
>>> pprint(risch_integrate(x*x**x*log(x) + x**x + x*x**x, x)) x x*x >>> pprint(risch_integrate(x**x, x)) / | | x | x dx | /
>>> pprint(risch_integrate(-1/(x*log(x)*log(log(x))**2), x)) 1 ----------- log(log(x))
- class sympy.integrals.risch.NonElementaryIntegral(
- function,
- *symbols,
- **assumptions,
表示一个非初等积分。
- 属性:
args
返回 ‘self’ 的参数元组。
assumptions0
返回对象 \(type\) 假设。
bound_symbols
只返回虚拟变量。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。free_symbols
此方法返回积分求值时将存在的符号。
func
表达式中的顶级函数。
function
返回函数在极限范围内的应用。
has_finite_limits
如果通过显式边界、边界假设或变量假设得知边界是有限的,则返回 True。
has_reversed_limits
如果界限已知是反向顺序,无论是通过明确的界限、对界限的假设,还是对变量的假设,则返回 True。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果 Sum 没有自由符号,则返回 True,否则返回 False。
- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
- 种类
limits
返回表达式的限制。
variables
返回一个限制变量的列表。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_sum
([n, method, evaluate])通过求和近似计算定积分。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()类的好顺序。
coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)使用给出的任何提示进行积分。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
principal_value
(**kwargs)计算实轴上给定区间内实函数的定积分的柯西主值。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
transform
(x, u)执行从 \(x\) 到 \(u\) 的变量变换,使用由 \(x\) 和 \(u\) 给出的关系来定义变换 \(f\) 和 `F`(它们互为逆变换),如下所示:
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(rule)替换表达式中对象的出现。
伴随
as_base_exp
复制
差异
目录
is_hypergeometric
转置
示例
>>> from sympy import integrate, exp, log, Integral >>> from sympy.abc import x
>>> a = integrate(exp(-x**2), x, risch=True) >>> print(a) Integral(exp(-x**2), x) >>> type(a) <class 'sympy.integrals.risch.NonElementaryIntegral'>
>>> expr = (2*log(x)**2 - log(x) - x**2)/(log(x)**3 - x**2*log(x)) >>> b = integrate(expr, x, risch=True) >>> print(b) -log(-x + log(x))/2 + log(x + log(x))/2 + Integral(1/log(x), x) >>> type(b.atoms(Integral).pop()) <class 'sympy.integrals.risch.NonElementaryIntegral'>
对于非初等定积分,SymPy 使用所谓的 Meijer G-函数。详细信息在 使用 Meijer G-函数计算积分 中描述。
到目前为止提到的所有算法要么是基于模式匹配的启发式算法,要么是使用与大多数人在微积分课程中学到的方式截然不同的算法来解决积分问题。SymPy 还实现了一种方法,可以以与你在微积分中相同的方式解决积分问题。这种方法的优点是,可以从其中提取积分步骤,以便人们可以看到如何“手工”计算积分。这是由 SymPy Gamma 使用的。这在
manualintegrate()
函数中实现。积分的步骤可以通过integral_steps()
函数查看。- sympy.integrals.manualintegrate.manualintegrate(f, var)[源代码][源代码]¶
参见
示例
>>> from sympy import sin, cos, tan, exp, log, integrate >>> from sympy.integrals.manualintegrate import manualintegrate >>> from sympy.abc import x >>> manualintegrate(1 / x, x) log(x) >>> integrate(1/x) log(x) >>> manualintegrate(log(x), x) x*log(x) - x >>> integrate(log(x)) x*log(x) - x >>> manualintegrate(exp(x) / (1 + exp(2 * x)), x) atan(exp(x)) >>> integrate(exp(x) / (1 + exp(2 * x))) RootSum(4*_z**2 + 1, Lambda(_i, _i*log(2*_i + exp(x)))) >>> manualintegrate(cos(x)**4 * sin(x), x) -cos(x)**5/5 >>> integrate(cos(x)**4 * sin(x), x) -cos(x)**5/5 >>> manualintegrate(cos(x)**4 * sin(x)**3, x) cos(x)**7/7 - cos(x)**5/5 >>> integrate(cos(x)**4 * sin(x)**3, x) cos(x)**7/7 - cos(x)**5/5 >>> manualintegrate(tan(x), x) -log(cos(x)) >>> integrate(tan(x), x) -log(cos(x))
- sympy.integrals.manualintegrate.integral_steps(integrand, symbol, **options)[源代码][源代码]¶
返回计算积分所需的步骤。
- 返回:
- 规则规则
第一步;大多数规则都有子步骤,这些子步骤也必须考虑。这些子步骤可以使用
manualintegrate
进行评估以获得结果。
示例
>>> from sympy import exp, sin >>> from sympy.integrals.manualintegrate import integral_steps >>> from sympy.abc import x >>> print(repr(integral_steps(exp(x) / (1 + exp(2 * x)), x))) URule(integrand=exp(x)/(exp(2*x) + 1), variable=x, u_var=_u, u_func=exp(x), substep=ArctanRule(integrand=1/(_u**2 + 1), variable=_u, a=1, b=1, c=1)) >>> print(repr(integral_steps(sin(x), x))) SinRule(integrand=sin(x), variable=x) >>> print(repr(integral_steps((x**2 + 3)**2, x))) RewriteRule(integrand=(x**2 + 3)**2, variable=x, rewritten=x**4 + 6*x**2 + 9, substep=AddRule(integrand=x**4 + 6*x**2 + 9, variable=x, substeps=[PowerRule(integrand=x**4, variable=x, base=x, exp=4), ConstantTimesRule(integrand=6*x**2, variable=x, constant=6, other=x**2, substep=PowerRule(integrand=x**2, variable=x, base=x, exp=2)), ConstantRule(integrand=9, variable=x)]))
最后,如果上述所有方法都失败了,SymPy 还会使用一种简化的 Risch 算法,称为 Risch-Norman 算法。这个算法最后尝试,因为它通常是计算最慢的。这在
heurisch()
中实现:- sympy.integrals.heurisch.heurisch(
- f,
- x,
- rewrite=False,
- hints=None,
- mappings=None,
- retries=3,
- degree_offset=0,
- unnecessary_permutations=None,
- _try_heurisch=None,
使用启发式Risch算法计算不定积分。
参见
参考文献
有关所实现算法的更多信息,请参阅:
[2]K. Geddes, L. Stefanus, On the Risch-Norman Integration Method and its Implementation in Maple, Proceedings of ISSAC’89, ACM Press, 212-217.
[3]J. H. Davenport, On the Parallel Risch Algorithm (I), Proceedings of EUROCAM’82, LNCS 144, Springer, 144-157.
[4]J. H. Davenport, On the Parallel Risch Algorithm (III): Use of Tangents, SIGSAM Bulletin 16 (1982), 3-6.
[5]J. H. Davenport, B. M. Trager, On the Parallel Risch Algorithm (II), ACM Transactions on Mathematical Software 11 (1985), 356-362.
示例
>>> from sympy import tan >>> from sympy.integrals.heurisch import heurisch >>> from sympy.abc import x, y
>>> heurisch(y*tan(x), x) y*log(tan(x)**2 + 1)/2
参见 Manuel Bronstein 的 “Poor Man’s Integrator”:
API 参考¶
- sympy.integrals.integrals.integrate(f, var, ...)[源代码][源代码]¶
自 1.6 版本弃用: 使用
integrate()
与Poly
已被弃用。请改用Poly.integrate()
。参见 使用 integrate 与 Poly。示例
>>> from sympy import integrate, log, exp, oo >>> from sympy.abc import a, x, y
>>> integrate(x*y, x) x**2*y/2
>>> integrate(log(x), x) x*log(x) - x
>>> integrate(log(x), (x, 1, a)) a*log(a) - a + 1
>>> integrate(x) x**2/2
与 x 无关的项在不定积分中被舍弃:
>>> from sympy import sqrt >>> integrate(sqrt(1 + x), (x, 0, x)) 2*(x + 1)**(3/2)/3 - 2/3 >>> integrate(sqrt(1 + x), x) 2*(x + 1)**(3/2)/3
>>> integrate(x*y) Traceback (most recent call last): ... ValueError: specify integration variables to integrate x*y
请注意,
integrate(x)
语法仅用于交互式会话中的便利,在库代码中应避免使用。>>> integrate(x**a*exp(-x), (x, 0, oo)) # same as conds='piecewise' Piecewise((gamma(a + 1), re(a) > -1), (Integral(x**a*exp(-x), (x, 0, oo)), True))
>>> integrate(x**a*exp(-x), (x, 0, oo), conds='none') gamma(a + 1)
>>> integrate(x**a*exp(-x), (x, 0, oo), conds='separate') (gamma(a + 1), re(a) > -1)
- sympy.integrals.integrals.line_integrate(field, Curve, variables)[源代码][源代码]¶
计算线积分。
示例
>>> from sympy import Curve, line_integrate, E, ln >>> from sympy.abc import x, y, t >>> C = Curve([E**t + 1, E**t - 1], (t, 0, ln(2))) >>> line_integrate(x + y, C, [x, y]) 3*sqrt(2)
类 Integral
表示一个未求值的积分,并且有一些方法可以帮助对表达式进行积分。
- class sympy.integrals.integrals.Integral(function, *symbols, **assumptions)[源代码][源代码]¶
表示未求值的积分。
- 属性:
args
返回 ‘self’ 的参数元组。
assumptions0
返回对象 \(type\) 假设。
bound_symbols
只返回虚拟变量。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。free_symbols
此方法返回积分求值时将存在的符号。
func
表达式中的顶级函数。
function
返回函数在极限范围内的应用。
has_finite_limits
如果通过显式边界、边界假设或变量假设得知边界是有限的,则返回 True。
has_reversed_limits
如果界限已知是反向顺序,无论是通过明确的界限、对界限的假设,还是对变量的假设,则返回 True。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果 Sum 没有自由符号,则返回 True,否则返回 False。
- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
- 种类
limits
返回表达式的限制。
variables
返回一个限制变量的列表。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_sum
([n, method, evaluate])通过求和近似计算定积分。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()类的好顺序。
coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)使用给出的任何提示进行积分。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
principal_value
(**kwargs)计算实轴上给定区间内实函数的定积分的柯西主值。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
transform
(x, u)执行从 \(x\) 到 \(u\) 的变量变换,使用由 \(x\) 和 \(u\) 给出的关系来定义变换 \(f\) 和 `F`(它们互为逆变换),如下所示:
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(rule)替换表达式中对象的出现。
伴随
as_base_exp
复制
差异
目录
is_hypergeometric
转置
- is_commutative¶
返回积分中的所有自由符号是否都是可交换的。
- as_sum(
- n=None,
- method='midpoint',
- evaluate=True,
通过求和近似计算定积分。
- 参数:
- n
要使用的子区间数量,可选。
- 方法
其中之一:’左’,’右’,’中点’,’梯形’。
- 评估布尔
如果为 False,则返回一个未求值的 Sum 表达式。默认值为 True,求和。
参见
Integral.doit
使用任何提示进行积分
注释
这些近似积分方法在 [1] 中有所描述。
参考文献
示例
>>> from sympy import Integral, sin, sqrt >>> from sympy.abc import x, n >>> e = Integral(sin(x), (x, 3, 7)) >>> e Integral(sin(x), (x, 3, 7))
为了演示目的,这个区间将仅被分割成两个区域,由 [3, 5] 和 [5, 7] 界定。
左手法则使用每个区间左端点的函数评估:
>>> e.as_sum(2, 'left') 2*sin(5) + 2*sin(3)
中点法则使用每个区间中心的评估:
>>> e.as_sum(2, 'midpoint') 2*sin(4) + 2*sin(6)
右手规则在每个区间的右侧使用函数评估:
>>> e.as_sum(2, 'right') 2*sin(5) + 2*sin(7)
梯形法则在区间的两侧都使用函数评估。这相当于取左手法则和右手法则结果的平均值:
>>> s = e.as_sum(2, 'trapezoid') >>> s 2*sin(5) + sin(3) + sin(7) >>> (e.as_sum(2, 'left') + e.as_sum(2, 'right'))/2 == s True
在这里,可以通过使用中点法或右手法来避免 x = 0 处的间断:
>>> e = Integral(1/sqrt(x), (x, 0, 1)) >>> e.as_sum(5).n(4) 1.730 >>> e.as_sum(10).n(4) 1.809 >>> e.doit().n(4) # the actual value is 2 2.000
左矩形法或梯形法将遇到不连续性并返回无穷大:
>>> e.as_sum(5, 'left') zoo
间隔的数量可以是符号化的。如果省略,将使用一个虚拟符号。
>>> e = Integral(x**2, (x, 0, 2)) >>> e.as_sum(n, 'right').expand() 8/3 + 4/n + 4/(3*n**2)
这表明中点规则更精确,因为其误差项随 n 的平方衰减:
>>> e.as_sum(method='midpoint').expand() 8/3 - 2/(3*_n**2)
返回一个带有 evaluate=False 的符号和:
>>> e.as_sum(n, 'midpoint', evaluate=False) 2*Sum((2*_k/n - 1/n)**2, (_k, 1, n))/n
- doit(**hints)[源代码][源代码]¶
使用给出的任何提示进行积分。
参见
示例
>>> from sympy import Piecewise, S >>> from sympy.abc import x, t >>> p = x**2 + Piecewise((0, x/t < 0), (1, True)) >>> p.integrate((t, S(4)/5, 1), (x, -1, 1)) 1/3
- property free_symbols¶
此方法返回在积分求值时将存在的符号。如果试图确定积分是否依赖于某个特定符号,这非常有用。
参见
示例
>>> from sympy import Integral >>> from sympy.abc import x, y >>> Integral(x, (x, y, 1)).free_symbols {y}
- principal_value(**kwargs)[源代码][源代码]¶
计算实轴上给定区间内实函数的定积分的柯西主值。
参考文献
示例
>>> from sympy import Integral, oo >>> from sympy.abc import x >>> Integral(x+1, (x, -oo, oo)).principal_value() oo >>> f = 1 / (x**3) >>> Integral(f, (x, -oo, oo)).principal_value() 0 >>> Integral(f, (x, -10, 10)).principal_value() 0 >>> Integral(f, (x, -10, oo)).principal_value() + Integral(f, (x, -oo, 10)).principal_value() 0
- transform(x, u)[源代码][源代码]¶
执行从 \(x\) 到 \(u\) 的变量变换,使用由 \(x\) 和 \(u\) 给出的关系来定义变换 \(f\) 和 `F`(它们互为逆变换),如下所示:
如果 \(x\) 是一个符号(即积分变量),那么 \(u\) 将被解释为某个函数 f(u),其反函数为 F(u)。实际上,这只是将 x 替换为 f(x)。
如果 \(u\) 是一个符号,那么 \(x\) 将被解释为某个函数 F(x),其反函数为 f(u)。这通常被称为 u-替换。
一旦确定了 f 和 F,转换将如下进行:
\[\int_a^b x \mathrm{d}x \rightarrow \int_{F(a)}^{F(b)} f(x) \frac{\mathrm{d}}{\mathrm{d}x}\]其中 \(F(x)\) 是 \(f(x)\) 的反函数,并且积分限和被积函数已调整,以确保积分后保持相同的值。
参见
sympy.concrete.expr_with_limits.ExprWithLimits.variables
列出集成变量
as_dummy
将集成变量替换为虚拟变量
注释
映射,F(x) 或 f(u),必须导致一个唯一的积分。线性或线性有理表达式,如
2*x
、1/x
和sqrt(x)
,总是有效;二次表达式如x**2 - 1
也是可以接受的,只要结果的被积函数不依赖于解的符号(参见示例)。如果
x
不是积分变量,积分将原样返回。x
必须(或包含)仅一个积分变量。如果u
有多个自由符号,则应将其作为元组 (u
,uvar
) 发送,其中uvar
标识哪个变量正在替换积分变量。XXX 它能否包含另一个积分变量?示例
>>> from sympy.abc import a, x, u >>> from sympy import Integral, cos, sqrt
>>> i = Integral(x*cos(x**2 - 1), (x, 0, 1))
transform 可以改变积分的变量
>>> i.transform(x, u) Integral(u*cos(u**2 - 1), (u, 0, 1))
只要能得到唯一的被积函数,变换就可以执行u-替换:
>>> ui = i.transform(x**2 - 1, u) >>> ui Integral(cos(u)/2, (u, -1, 0))
这次尝试失败了,因为 x = +/-sqrt(u + 1),并且符号不会从被积函数中消去:
>>> Integral(cos(x**2 - 1), (x, 0, 1)).transform(x**2 - 1, u) Traceback (most recent call last): ... ValueError: The mapping between F(x) and f(u) did not give a unique integrand.
transform 可以进行替换。这里,使用“u-替换”将前一个结果转换回原始表达式:
>>> ui.transform(sqrt(u + 1), x) == i True
我们可以通过常规的替换实现相同的效果:
>>> ui.transform(u, x**2 - 1) == i True
如果 \(x\) 不包含积分符号,则积分将保持不变。积分 \(i\) 没有积分变量 \(a\),因此没有进行任何更改:
>>> i.transform(a, x) == i True
当 \(u\) 有多个自由符号时,替换 \(x\) 的符号必须通过将 \(u\) 作为元组传递来标识:
>>> Integral(x, (x, 0, 1)).transform(x, (u + a, u)) Integral(a + u, (u, -a, 1 - a)) >>> Integral(x, (x, 0, 1)).transform(x, (u + a, a)) Integral(a + u, (a, -u, 1 - u))
Integral
继承自 ExprWithLimits
,这是 Integral
和 Sum
的共同超类。
- class sympy.concrete.expr_with_limits.ExprWithLimits(function, *symbols, **assumptions)[源代码][源代码]¶
- 属性:
args
返回 ‘self’ 的参数元组。
assumptions0
返回对象 \(type\) 假设。
bound_symbols
只返回虚拟变量。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。expr_free_symbols
类似于
free_symbols
,但仅在自由符号包含在表达式节点中时返回它们。free_symbols
此方法返回对象中的符号,排除那些具有特定值的符号(即
func
表达式中的顶级函数。
function
返回函数在极限范围内的应用。
has_finite_limits
如果通过显式边界、边界假设或变量假设得知边界是有限的,则返回 True。
has_reversed_limits
如果界限已知是反向顺序,无论是通过明确的界限、对界限的假设,还是对变量的假设,则返回 True。
- is_algebraic
- is_antihermitian
- is_commutative
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_number
如果 Sum 没有自由符号,则返回 True,否则返回 False。
- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
- 种类
limits
返回表达式的限制。
variables
返回一个限制变量的列表。
方法
apart
([x])请参阅 sympy.polys 中的 apart 函数。
args_cnc
([cset, warn, split_1])返回 [交换因子, 非交换因子] 的自身。
as_coeff_Add
([rational])高效地提取求和的系数。
as_coeff_Mul
([rational])高效地提取乘积的系数。
as_coeff_add
(*deps)返回元组 (c, args),其中 self 被写成一个 Add,
a
。as_coeff_exponent
(x)c*x**e -> c,e
其中 x 可以是任何符号表达式。as_coeff_mul
(*deps, **kwargs)返回元组 (c, args),其中 self 被写成一个 Mul,
m
。as_coefficient
(expr)提取给定表达式中的符号系数。
as_coefficients_dict
(*syms)返回一个字典,将术语映射到它们的 Rational 系数。
as_content_primitive
([radical, clear])此方法应递归地从所有参数中移除一个 Rational,并返回该内容和新的 self(原始类型)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
as_expr
(*gens)将多项式转换为 SymPy 表达式。
as_independent
(*deps, **hint)将 Mul 或 Add 的大部分天真分离为不依赖于 deps 的参数。
as_leading_term
(*symbols[, logx, cdir])返回自身级数展开的主导(非零)项。
as_numer_denom
()返回一个表达式的分子和分母。
as_ordered_factors
([order])返回有序因子列表(如果是 Mul),否则返回 [self]。
as_ordered_terms
([order, data])将表达式转换为有序的项列表。
as_poly
(*gens, **args)将
self
转换为多项式,或返回None
。as_powers_dict
()将自身作为一个因子的字典返回,每个因子都被视为一个幂。
as_real_imag
([deep])对 'self' 执行复杂的扩展,并返回一个包含收集到的实部和虚部的元组。
as_terms
()将一个表达式转换为项的列表。
aseries
([x, n, bound, hir])自变量的渐近级数展开
atoms
(*types)返回构成当前对象的原子。
cancel
(*gens, **args)参见 sympy.polys 中的取消函数
class_key
()类的好顺序。
coeff
(x[, n, right, _first])返回包含
x**n
的项中的系数。collect
(syms[, func, evaluate, exact, ...])请参阅 sympy.simplify 中的 collect 函数。
combsimp
()请参阅 sympy.simplify 中的 combsimp 函数。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
compute_leading_term
(x[, logx])已弃用的函数,用于计算级数的首项。
conjugate
()返回 'self' 的复数共轭。
could_extract_minus_sign
()如果 self 以 -1 作为前导因子,或在求和中有比正号更多的负号,则返回 True,否则返回 False。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])doit
(**hints)评估默认情况下不评估的对象,如极限、积分、求和和乘积。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
equals
(other[, failing_expression])如果 self == other 则返回 True,如果不相等则返回 False,或者返回 None。
evalf
([n, subs, maxn, chop, strict, quad, ...])将给定的公式计算到 n 位精度。
expand
([deep, modulus, power_base, ...])使用提示扩展表达式。
extract_additively
(c)如果可以从自身减去 c 并且使所有匹配的系数趋向于零,则返回 self - c,否则返回 None。
extract_branch_factor
([allow_half])尝试以
exp_polar(2*pi*I*n)*z
的方式优雅地表达自身。extract_multiplicatively
(c)如果无法以一种良好的方式将 self 表示为 c * something,即保留 self 参数的属性,则返回 None。
factor
(*gens, **args)参见 sympy.polys.polytools 中的 factor() 函数
find
(query[, group])查找所有匹配查询的子表达式。
fourier_series
([limits])计算自身的傅里叶正弦/余弦级数。
fps
([x, x0, dir, hyper, order, rational, full])计算自身的形式幂级数。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
gammasimp
()参见 sympy.simplify 中的 gammasimp 函数
getO
()如果有加法 O(..) 符号,则返回该符号,否则返回 None。
getn
()返回表达式的顺序。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
integrate
(*args, **kwargs)请参阅 sympy.integrals 中的 integrate 函数。
invert
(g, *gens, **args)返回
self
对g
的乘法逆元,其中self``(和 ``g
)可以是符号表达式。is_algebraic_expr
(*syms)此测试给定的表达式是否在给定的符号 syms 中是代数的。
is_constant
(*wrt, **flags)如果 self 是常量则返回 True,如果不是则返回 False,如果无法明确确定常量性则返回 None。
is_meromorphic
(x, a)此测试表达式是否作为给定符号
x
的函数在点a
处是亚纯的。is_polynomial
(*syms)如果 self 是 syms 中的多项式,则返回 True,否则返回 False。
is_rational_function
(*syms)测试函数是否是给定符号 syms 中的两个多项式的比率。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
leadterm
(x[, logx, cdir])返回前导项 a*x**b 作为元组 (a, b)。
limit
(x, xlim[, dir])计算极限 x->xlim。
lseries
([x, x0, dir, logx, cdir])用于生成序列项的迭代器的包装器。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
n
([n, subs, maxn, chop, strict, quad, verbose])将给定的公式计算到 n 位精度。
normal
()返回表达式为分数形式。
nseries
([x, x0, n, dir, logx, cdir])如果假设允许,则包装到 _eval_nseries,否则包装到 series。
nsimplify
([constants, tolerance, full])参见 sympy.simplify 中的 nsimplify 函数
powsimp
(*args, **kwargs)请参阅 sympy.simplify 中的 powsimp 函数
primitive
()返回可以从自身每个项中非递归提取的正有理数(即,将自身视为一个加法)。
radsimp
(**kwargs)参见 sympy.simplify 中的 radsimp 函数
ratsimp
()参见 sympy.simplify 中的 ratsimp 函数。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
removeO
()如果存在,移除加性的 O(..) 符号
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。rewrite
(*args[, deep])使用定义的规则重写 self。
round
([n])返回 x 四舍五入到给定的十进制位数。
separate
([deep, force])参见 sympy.simplify 中的单独函数
series
([x, x0, n, dir, logx, cdir])在
x = x0
附近对 "self" 进行级数展开,当 n=None 时逐项给出级数项(即惰性级数),否则当 n != None 时一次性给出所有项。simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
taylor_term
(n, x, *previous_terms)泰勒项的一般方法。
together
(*args, **kwargs)请参阅 sympy.polys 中的 together 函数。
trigsimp
(**args)参见 sympy.simplify 中的 trigsimp 函数
xreplace
(rule)替换表达式中对象的出现。
伴随
as_base_exp
复制
差异
目录
is_hypergeometric
转置
- property bound_symbols¶
只返回虚拟变量。
参见
function
,limits
,free_symbols
as_dummy
重命名虚拟变量
sympy.integrals.integrals.Integral.transform
对虚拟变量执行映射
示例
>>> from sympy import Integral >>> from sympy.abc import x, i, j, k >>> Integral(x**i, (i, 1, 3), (j, 2), k).bound_symbols [i, j]
- property free_symbols¶
此方法返回对象中的符号,排除那些具有特定值的符号(即虚拟符号)。
示例
>>> from sympy import Sum >>> from sympy.abc import x, y >>> Sum(x, (x, y, 1)).free_symbols {y}
- property function¶
返回函数在极限范围内的应用。
参见
示例
>>> from sympy import Integral >>> from sympy.abc import x >>> Integral(x**2, (x,)).function x**2
- property has_finite_limits¶
如果通过显式边界、边界假设或变量假设得知边界是有限的,则返回 True。如果根据边界得知是无限的,则返回 False。如果没有足够的信息来确定,则返回 None。
示例
>>> from sympy import Sum, Integral, Product, oo, Symbol >>> x = Symbol('x') >>> Sum(x, (x, 1, 8)).has_finite_limits True
>>> Integral(x, (x, 1, oo)).has_finite_limits False
>>> M = Symbol('M') >>> Sum(x, (x, 1, M)).has_finite_limits
>>> N = Symbol('N', integer=True) >>> Product(x, (x, 1, N)).has_finite_limits True
- property has_reversed_limits¶
如果边界已知是反向顺序,无论是通过显式边界、对边界的假设,还是对变量的假设,则返回 True。如果已知是正常顺序,则返回 False,基于边界。如果没有足够的信息来确定,则返回 None。
示例
>>> from sympy import Sum, Integral, Product, oo, Symbol >>> x = Symbol('x') >>> Sum(x, (x, 8, 1)).has_reversed_limits True
>>> Sum(x, (x, 1, oo)).has_reversed_limits False
>>> M = Symbol('M') >>> Integral(x, (x, 1, M)).has_reversed_limits
>>> N = Symbol('N', integer=True, positive=True) >>> Sum(x, (x, 1, N)).has_reversed_limits False
>>> Product(x, (x, 2, N)).has_reversed_limits
>>> Product(x, (x, 2, N)).subs(N, N + 2).has_reversed_limits False
- property is_number¶
如果 Sum 没有自由符号,则返回 True,否则返回 False。
- property limits¶
返回表达式的限制。
示例
>>> from sympy import Integral >>> from sympy.abc import x, i >>> Integral(x**i, (i, 1, 3)).limits ((i, 1, 3),)
- property variables¶
返回一个限制变量的列表。
>>> from sympy import Sum >>> from sympy.abc import x, i >>> Sum(x**i, (i, 1, 3)).variables [i]
参见
function
,limits
,free_symbols
as_dummy
重命名虚拟变量
sympy.integrals.integrals.Integral.transform
对虚拟变量执行映射
TODO 和 Bugs¶
SymPy 还有很多函数不知道如何积分。有关此模块的错误,请参见 https://github.com/sympy/sympy/issues?q=is%3Aissue+is%3Aopen+label%3Aintegrals
数值积分¶
SymPy 有函数可以计算任意阶和任意精度的高斯积分的点和权重:
- sympy.integrals.quadrature.gauss_legendre(n, n_digits)[源代码][源代码]¶
计算 Gauss-Legendre 积分 [1] 的点和权重。
- 参数:
- n
积分顺序。
- n_digits
返回的点和权重的有效位数。
- 返回:
- (x, w) :
x
和w
是作为浮点数的点和权重的列表。这 点 \(x_i\) 和权重 \(w_i\) 作为
(x, w)
元组列表返回。
- (x, w) :
参见
gauss_laguerre
,gauss_gen_laguerre
,gauss_hermite
,gauss_chebyshev_t
,gauss_chebyshev_u
,gauss_jacobi
,gauss_lobatto
参考文献
[1]示例
>>> from sympy.integrals.quadrature import gauss_legendre >>> x, w = gauss_legendre(3, 5) >>> x [-0.7746, 0, 0.7746] >>> w [0.55556, 0.88889, 0.55556] >>> x, w = gauss_legendre(4, 5) >>> x [-0.86114, -0.33998, 0.33998, 0.86114] >>> w [0.34785, 0.65215, 0.65215, 0.34785]
- sympy.integrals.quadrature.gauss_laguerre(n, n_digits)[源代码][源代码]¶
计算 Gauss-Laguerre 积分 [1] 的点和权重。
- 参数:
- n
积分顺序。
- n_digits
返回的点和权重的有效位数。
- 返回:
- (x, w) :
x
和w
是作为浮点数的点和权重的列表。Thex
andw
are lists of points and weights as Floats. 点 \(x_i\) 和权重 \(w_i\) 作为
(x, w)
元组列表返回。
- (x, w) :
参见
gauss_legendre
,gauss_gen_laguerre
,gauss_hermite
,gauss_chebyshev_t
,gauss_chebyshev_u
,gauss_jacobi
,gauss_lobatto
参考文献
[1]https://en.wikipedia.org/wiki/高斯-拉盖尔积分
示例
>>> from sympy.integrals.quadrature import gauss_laguerre >>> x, w = gauss_laguerre(3, 5) >>> x [0.41577, 2.2943, 6.2899] >>> w [0.71109, 0.27852, 0.010389] >>> x, w = gauss_laguerre(6, 5) >>> x [0.22285, 1.1889, 2.9927, 5.7751, 9.8375, 15.983] >>> w [0.45896, 0.417, 0.11337, 0.010399, 0.00026102, 8.9855e-7]
- sympy.integrals.quadrature.gauss_hermite(n, n_digits)[源代码][源代码]¶
计算 Gauss-Hermite 积分 [1] 点和权重。
- 参数:
- n
积分顺序。
- n_digits
返回的点和权重的有效位数。
- 返回:
- (x, w) :
x
和w
是作为浮点数的点和权重的列表。Thex
andw
are lists of points and weights as Floats. 点 \(x_i\) 和权重 \(w_i\) 作为
(x, w)
元组列表返回。
- (x, w) :
参见
gauss_legendre
,gauss_laguerre
,gauss_gen_laguerre
,gauss_chebyshev_t
,gauss_chebyshev_u
,gauss_jacobi
,gauss_lobatto
参考文献
[1]https://en.wikipedia.org/wiki/高斯-埃尔米特求积
示例
>>> from sympy.integrals.quadrature import gauss_hermite >>> x, w = gauss_hermite(3, 5) >>> x [-1.2247, 0, 1.2247] >>> w [0.29541, 1.1816, 0.29541]
>>> x, w = gauss_hermite(6, 5) >>> x [-2.3506, -1.3358, -0.43608, 0.43608, 1.3358, 2.3506] >>> w [0.00453, 0.15707, 0.72463, 0.72463, 0.15707, 0.00453]
- sympy.integrals.quadrature.gauss_gen_laguerre(n, alpha, n_digits)[源代码][源代码]¶
计算广义 Gauss-Laguerre 正交 [1] 点和权重。
- 参数:
- n
积分顺序。
- alpha
奇点指数,\(\alpha > -1\)。
- n_digits
返回的点和权重的有效位数。
- 返回:
- (x, w) :
x
和w
是作为浮点数的点和权重的列表。这 点 \(x_i\) 和权重 \(w_i\) 作为
(x, w)
元组列表返回。
- (x, w) :
参见
gauss_legendre
,gauss_laguerre
,gauss_hermite
,gauss_chebyshev_t
,gauss_chebyshev_u
,gauss_jacobi
,gauss_lobatto
参考文献
[1]https://en.wikipedia.org/wiki/高斯-拉盖尔积分
示例
>>> from sympy import S >>> from sympy.integrals.quadrature import gauss_gen_laguerre >>> x, w = gauss_gen_laguerre(3, -S.Half, 5) >>> x [0.19016, 1.7845, 5.5253] >>> w [1.4493, 0.31413, 0.00906]
>>> x, w = gauss_gen_laguerre(4, 3*S.Half, 5) >>> x [0.97851, 2.9904, 6.3193, 11.712] >>> w [0.53087, 0.67721, 0.11895, 0.0023152]
- sympy.integrals.quadrature.gauss_chebyshev_t(n, n_digits)[源代码][源代码]¶
计算第一类高斯-切比雪夫积分 [1] 的点和权重。
- 参数:
- n
积分顺序。
- n_digits
返回的点和权重的有效位数。
- 返回:
- (x, w) :
x
和w
是作为浮点数的点和权重的列表。这 点 \(x_i\) 和权重 \(w_i\) 作为
(x, w)
元组列表返回。
- (x, w) :
参见
gauss_legendre
,gauss_laguerre
,gauss_hermite
,gauss_gen_laguerre
,gauss_chebyshev_u
,gauss_jacobi
,gauss_lobatto
参考文献
示例
>>> from sympy.integrals.quadrature import gauss_chebyshev_t >>> x, w = gauss_chebyshev_t(3, 5) >>> x [0.86602, 0, -0.86602] >>> w [1.0472, 1.0472, 1.0472]
>>> x, w = gauss_chebyshev_t(6, 5) >>> x [0.96593, 0.70711, 0.25882, -0.25882, -0.70711, -0.96593] >>> w [0.5236, 0.5236, 0.5236, 0.5236, 0.5236, 0.5236]
- sympy.integrals.quadrature.gauss_chebyshev_u(n, n_digits)[源代码][源代码]¶
计算第二类高斯-切比雪夫积分 [1] 的点和权重。
- 参数:
- n积分顺序
- n_digits返回的点和权重的有效位数
- 返回:
- (x, w) :
x
和w
是作为浮点数的点和权重的列表。这 点 \(x_i\) 和权重 \(w_i\) 作为
(x, w)
元组列表返回。
- (x, w) :
参见
gauss_legendre
,gauss_laguerre
,gauss_hermite
,gauss_gen_laguerre
,gauss_chebyshev_t
,gauss_jacobi
,gauss_lobatto
参考文献
示例
>>> from sympy.integrals.quadrature import gauss_chebyshev_u >>> x, w = gauss_chebyshev_u(3, 5) >>> x [0.70711, 0, -0.70711] >>> w [0.3927, 0.7854, 0.3927]
>>> x, w = gauss_chebyshev_u(6, 5) >>> x [0.90097, 0.62349, 0.22252, -0.22252, -0.62349, -0.90097] >>> w [0.084489, 0.27433, 0.42658, 0.42658, 0.27433, 0.084489]
- sympy.integrals.quadrature.gauss_jacobi(n, alpha, beta, n_digits)[源代码][源代码]¶
计算 Gauss-Jacobi 积分 [1] 点和权重。
- 参数:
- n积分顺序
- alpha : Jacobi 多项式的第一个参数,\(\alpha > -1\)Jacobi 多项式的第一个参数,
- beta : Jacobi 多项式的第二个参数,\(\beta > -1\)Jacobi 多项式的第二个参数
- n_digits返回的点和权重的有效位数
- 返回:
- (x, w) :
x
和w
是作为浮点数的点和权重的列表。这 点 \(x_i\) 和权重 \(w_i\) 作为
(x, w)
元组列表返回。
- (x, w) :
参见
gauss_legendre
,gauss_laguerre
,gauss_hermite
,gauss_gen_laguerre
gauss_chebyshev_t
,gauss_chebyshev_u
,gauss_lobatto
参考文献
[1]https://en.wikipedia.org/wiki/高斯-雅可比积分
示例
>>> from sympy import S >>> from sympy.integrals.quadrature import gauss_jacobi >>> x, w = gauss_jacobi(3, S.Half, -S.Half, 5) >>> x [-0.90097, -0.22252, 0.62349] >>> w [1.7063, 1.0973, 0.33795]
>>> x, w = gauss_jacobi(6, 1, 1, 5) >>> x [-0.87174, -0.5917, -0.2093, 0.2093, 0.5917, 0.87174] >>> w [0.050584, 0.22169, 0.39439, 0.39439, 0.22169, 0.050584]
多面体的积分¶
SymPy 中的 intpoly
模块实现了计算多项式在 2/3-多面体上积分的算法。使用了 Chin 等人 (2015) [1] 描述的评估技术。
2-Polytope 或 Polygon 的输入使用 SymPy 中已有的 Polygon
数据结构。关于如何创建多边形,请参见 sympy.geometry.polygon
。
对于3-多面体或多面体,最经济的表示方法是指定一个顶点列表,然后为每个构成的面(多边形)提供一个顶点索引列表。
例如,考虑单位立方体。以下是它的表示方式。
unit_cube = [[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0),(1, 0, 1), (1, 1, 0), (1, 1, 1)],
[3, 7, 6, 2], [1, 5, 7, 3], [5, 4, 6, 7], [0, 4, 5, 1], [2, 0, 1, 3], [2, 6, 4, 0]]
这里,第一个子列表是顶点列表。其他较小的列表,如 [3, 7, 6, 2]
表示多面体的一个二维面,其顶点在第一个子列表中的索引为 ``3, 7, 6 和 2``(按此顺序)。
本模块中的主要方法是 polytope_integrate()
polytope_integrate(Polygon((0, 0), (0, 1), (1, 0)), x)
返回顶点为 (0, 0), (0, 1) 和 (1, 0) 的三角形上 \(x\) 的积分
polytope_integrate(unit_cube, x + y + z)
返回 \(x + y + z\) 在单位立方体上的积分。
参考文献¶
[1] : Chin, Eric B., Jean B. Lasserre, 和 N. Sukumar. “凸多边形和非凸多边形及多面体上齐次函数的数值积分.” 计算力学 56.6 (2015): 967-981
PDF 链接 : http://dilbert.engr.ucdavis.edu/~suku/quadrature/cls-integration.pdf
示例¶
对于2D多边形¶
单项多项式:
>>> from sympy.integrals.intpoly import *
>>> init_printing(use_unicode=False)
>>> polytope_integrate(Polygon((0, 0), (0, 1), (1, 0)), x)
1/6
>>> polytope_integrate(Polygon((0, 0), (0, 1), (1, 0)), x + x*y + y**2)
7/24
指定多项式列表:
>>> polytope_integrate(Polygon((0, 0), (0, 1), (1, 0)), [3, x*y + y**2, x**4], max_degree=4)
4 2
{3: 3/2, x : 1/30, x*y + y : 1/8}
>>> polytope_integrate(Polygon((0, 0), (0, 1), (1, 0)), [1.125, x, x**2, 6.89*x**3, x*y + y**2, x**4], max_degree=4)
2 3 689 4 2
{1.125: 9/16, x: 1/6, x : 1/12, 6.89*x : ----, x : 1/30, x*y + y : 1/8}
2000
计算所有最高次不超过指定次数的单项式:
>>> polytope_integrate(Polygon((0, 0), (0, 1), (1, 0)),max_degree=3)
2 3 2 3 2 2
{0: 0, 1: 1/2, x: 1/6, x : 1/12, x : 1/20, y: 1/6, y : 1/12, y : 1/20, x*y: 1/24, x*y : 1/60, x *y: 1/60}
对于 3-多面体/多面体¶
单项多项式:
>>> from sympy.integrals.intpoly import *
>>> cube = [[(0, 0, 0), (0, 0, 5), (0, 5, 0), (0, 5, 5), (5, 0, 0), (5, 0, 5), (5, 5, 0), (5, 5, 5)], [2, 6, 7, 3], [3, 7, 5, 1], [7, 6, 4, 5], [1, 5, 4, 0], [3, 1, 0, 2], [0, 4, 6, 2]]
>>> polytope_integrate(cube, x**2 + y**2 + z**2 + x*y + y*z + x*z)
-21875/4
>>> octahedron = [[(S(-1) / sqrt(2), 0, 0), (0, S(1) / sqrt(2), 0), (0, 0, S(-1) / sqrt(2)), (0, 0, S(1) / sqrt(2)), (0, S(-1) / sqrt(2), 0), (S(1) / sqrt(2), 0, 0)], [3, 4, 5], [3, 5, 1], [3, 1, 0], [3, 0, 4], [4, 0, 2], [4, 2, 5], [2, 0, 1], [5, 2, 1]]
>>> polytope_integrate(octahedron, x**2 + y**2 + z**2 + x*y + y*z + x*z)
___
\/ 2
-----
20
指定多项式列表:
>>> polytope_integrate(Polygon((0, 0), (0, 1), (1, 0)), [3, x*y + y**2, x**4], max_degree=4)
4 2
{3: 3/2, x : 1/30, x*y + y : 1/8}
>>> polytope_integrate(Polygon((0, 0), (0, 1), (1, 0)), [1.125, x, x**2, 6.89*x**3, x*y + y**2, x**4], max_degree=4)
2 3 689 4 2
{1.125: 9/16, x: 1/6, x : 1/12, 6.89*x : ----, x : 1/30, x*y + y : 1/8}
2000
计算所有最高次不超过指定次数的单项式:
>>> polytope_integrate(Polygon((0, 0), (0, 1), (1, 0)),max_degree=3)
2 3 2 3 2 2
{0: 0, 1: 1/2, x: 1/6, x : 1/12, x : 1/20, y: 1/6, y : 1/12, y : 1/20, x*y: 1/24, x*y : 1/60, x *y: 1/60}
API 参考¶
- sympy.integrals.intpoly.polytope_integrate(
- poly,
- expr=None,
- *,
- clockwise=False,
- max_degree=None,
在2/3-多面体上积分多项式。
- 参数:
- 多边形输入的多边形。
- 表达式输入的多项式。
- 顺时针二进制值按顺时针顺序排序2-多面体的输入点。(可选)
- 最大度数输入多项式中任何单项式的最大次数。(可选)
示例
>>> from sympy.abc import x, y >>> from sympy import Point, Polygon >>> from sympy.integrals.intpoly import polytope_integrate >>> polygon = Polygon(Point(0, 0), Point(0, 1), Point(1, 1), Point(1, 0)) >>> polys = [1, x, y, x*y, x**2*y, x*y**2] >>> expr = x*y >>> polytope_integrate(polygon, expr) 1/4 >>> polytope_integrate(polygon, polys, max_degree=3) {1: 1, x: 1/2, y: 1/2, x*y: 1/4, x*y**2: 1/6, x**2*y: 1/6}