形式幂级数#

形式幂级数的计算和操作方法。

class sympy.series.formal.FormalPowerSeries(*args)[源代码]#

表示函数的形式幂级数。

解释

不执行计算。此类只能用于表示序列。不执行任何检查。

用于计算系列用途 fps() .

coeff_bell(n)[源代码]#

赛尔夫·贝尔(n) 返回第二类贝尔多项式的序列。请注意 n 应该是整数。

第二类贝尔多项式(有时称为“部分”贝尔多项式或不完全贝尔多项式)定义为

\[B{n,k}(x_1,x_2,\dotsc x{n-k+1})=\]
  • bell(n, k, (x1, x2, ...)) 给出第二类贝尔多项式, \(B_{{n,k}}(x_1, x_2, \dotsc, x_{{n-k+1}})\) .

compose(other, x=None, n=6)[源代码]#

Returns the truncated terms of the formal power series of the composed function, up to specified n.

参数:

n :数字,可选

指定多项式的截断顺序。

解释

If f and g are two formal power series of two different functions, then the coefficient sequence ak of the composed formal power series \(fp\) will be as follows.

\[\{ux,u}u{u,u}极限\]

实例

>>> from sympy import fps, sin, exp
>>> from sympy.abc import x
>>> f1 = fps(exp(x))
>>> f2 = fps(sin(x))
>>> f1.compose(f2, x).truncate()
1 + x + x**2/2 - x**4/8 - x**5/15 + O(x**6)
>>> f1.compose(f2, x).truncate(8)
1 + x + x**2/2 - x**4/8 - x**5/15 - x**6/240 + x**7/90 + O(x**8)

工具书类

[R824]

康泰特,路易斯:先进的组合学;有限和无限展开的艺术。里德尔,1974年。

property infinite#

返回序列的无限表示形式

integrate(x=None, **kwargs)[源代码]#

整合形式幂级数。

实例

>>> from sympy import fps, sin, integrate
>>> from sympy.abc import x
>>> f = fps(sin(x))
>>> f.integrate(x).truncate()
-1 + x**2/2 - x**4/24 + O(x**6)
>>> integrate(f, (x, 0, 1))
1 - cos(1)
inverse(x=None, n=6)[源代码]#

Returns the truncated terms of the inverse of the formal power series, up to specified n.

参数:

n :数字,可选

指定多项式的截断顺序。

解释

If f and g are two formal power series of two different functions, then the coefficient sequence ak of the composed formal power series fp will be as follows.

\[\求和\极限{k=0}^{n}(-1)^{k}x}0^{-k-1}B{n,k}(x_1,x_2,\dotsc,x{n-k+1})\]

实例

>>> from sympy import fps, exp, cos
>>> from sympy.abc import x
>>> f1 = fps(exp(x))
>>> f2 = fps(cos(x))
>>> f1.inverse(x).truncate()
1 - x + x**2/2 - x**3/6 + x**4/24 - x**5/120 + O(x**6)
>>> f2.inverse(x).truncate(8)
1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + O(x**8)

工具书类

[R825]

康泰特,路易斯:先进的组合学;有限和无限展开的艺术。里德尔,1974年。

polynomial(n=6)[源代码]#

多项式截尾级数。

解释

返回的级数展开 f 按顺序 O(x**n) 作为多项式(没有 O 期限)。

product(other, x=None, n=6)[源代码]#

使用离散卷积将两个形式幂级数相乘,并将截断项返回到指定的顺序。

参数:

n :数字,可选

指定多项式的截断顺序。

实例

>>> from sympy import fps, sin, exp
>>> from sympy.abc import x
>>> f1 = fps(sin(x))
>>> f2 = fps(exp(x))
>>> f1.product(f2, x).truncate(4)
x + x**2 + x**3/3 + O(x**4)
truncate(n=6)[源代码]#

截断序列。

解释

返回f的截断级数展开式,最高可达次 O(x**n) .

如果n是 None ,返回无限迭代器。

sympy.series.formal.fps(f, x=None, x0=0, dir=1, hyper=True, order=4, rational=True, full=False)[源代码]#

Generates Formal Power Series of f.

参数:

x :符号,可选

如果x为无且 f 为单变量时,将提供单变量符号,否则将引发错误。

x0 :数字,可选

指向执行有关的系列扩展。默认值为0。

dir : {1, -1, '+', '-'}, optional

如果dir为1或'+',则从右侧计算序列;对于-1或'-',则从左侧计算序列。对于平滑函数,此标志不会改变结果。默认值为1。

hyper : {True, False}, optional

将hyper设置为False可跳过超几何算法。默认设置为False。

秩序 :int,可选

导数的阶 f ,默认值为4。

rational : {True, False}, optional

将rational设置为False可跳过rational算法。默认设置为True。

full : {True, False}, optional

将full设置为True以增加有理算法的范围。看到了吗 rational_algorithm() 了解详情。默认设置为False。

解释

返回的形式级数展开 f 围绕 x = x0 关于 x 以A的形式 FormalPowerSeries 对象。

形式幂级数是用一个显式公式表示的,该公式使用不同的算法计算。

compute_fps() 关于公式计算的更多细节。

实例

>>> from sympy import fps, ln, atan, sin
>>> from sympy.abc import x, n

有理函数

>>> fps(ln(1 + x)).truncate()
x - x**2/2 + x**3/3 - x**4/4 + x**5/5 + O(x**6)
>>> fps(atan(x), full=True).truncate()
x - x**3/3 + x**5/5 + O(x**6)

符号函数

>>> fps(x**n*sin(x**2), x).truncate(8)
-x**(n + 6)/6 + x**(n + 2) + O(x**(n + 8))
sympy.series.formal.compute_fps(f, x, x0=0, dir=1, hyper=True, order=4, rational=True, full=False)[源代码]#

计算函数的形式幂级数的公式。

参数:

x :符号

x0 :数字,可选

指向执行有关的系列扩展。默认值为0。

dir : {1, -1, '+', '-'}, optional

如果dir为1或'+',则从右侧计算序列;对于-1或'-',则从左侧计算序列。对于平滑函数,此标志不会改变结果。默认值为1。

hyper : {True, False}, optional

将hyper设置为False可跳过超几何算法。默认设置为False。

秩序 :int,可选

导数的阶 f ,默认值为4。

rational : {True, False}, optional

将rational设置为False可跳过rational算法。默认设置为True。

full : {True, False}, optional

将full设置为True以增加有理算法的范围。看到了吗 rational_algorithm() 了解详情。默认设置为False。

返回:

ak :顺序

序列系数。

xk :顺序

x的幂级数。

ind :表达式

独立条款。

mul :功率

通用术语。

解释

尝试应用以下技术(按顺序)计算公式:

  • rational_algorithm

  • 超几何算法

class sympy.series.formal.FormalPowerSeriesCompose(*args)[源代码]#

表示两个函数的组合形式幂级数。

解释

不执行计算。术语是使用逐项逻辑计算的,而不是逐点逻辑。

FormalPowerSeries 对象与A FormalPowerSeriesCompose 对象。第一个参数包含了构成所涉及的外部函数和内部函数。此外,系数序列包含要乘以自定义值的泛型序列 bell_seq 有限序列。然后将有限项相加得到最终项。

property function#

Function for the composed formal power series.

class sympy.series.formal.FormalPowerSeriesInverse(*args)[源代码]#

表示形式幂级数的逆。

解释

不执行计算。术语是使用逐项逻辑计算的,而不是逐点逻辑。

只有一个区别 FormalPowerSeries 对象与A FormalPowerSeriesInverse 对象。系数序列包含要乘以自定义值的泛型序列 bell_seq 有限序列。然后将有限项相加得到最终项。

property function#

Function for the inverse of a formal power series.

class sympy.series.formal.FormalPowerSeriesProduct(*args)[源代码]#

表示两个函数的两个形式幂级数的乘积。

解释

不执行计算。术语是使用逐项逻辑计算的,而不是逐点逻辑。

FormalPowerSeries 对象与A FormalPowerSeriesProduct 对象。第一个参数包含产品中涉及的两个函数。系数序列同时包含了所涉及函数形式幂级数的系数序列。

property function#

Function of the product of two formal power series.

class sympy.series.formal.FiniteFormalPowerSeries(*args)[源代码]#

乘积类、合成类和逆类的基类

有理算法#

sympy.series.formal.rational_independent(terms, x)[源代码]#

返回所有合理独立项的列表。

实例

>>> from sympy import sin, cos
>>> from sympy.series.formal import rational_independent
>>> from sympy.abc import x
>>> rational_independent([cos(x), sin(x)], x)
[cos(x), sin(x)]
>>> rational_independent([x**2, sin(x), x*sin(x), x**3], x)
[x**3 + x**2, x*sin(x) + sin(x)]
sympy.series.formal.rational_algorithm(f, x, k, order=4, full=False)[源代码]#

计算函数形式幂级数系数公式的有理算法。

参数:

x :符号

秩序 :int,可选

导数的阶 f ,默认值为4。

full : bool

返回:

公式 :表达式

ind :表达式

独立条款。

秩序 :内景

full : bool

解释

当f(x)或f(x)的某个导数是x中的有理函数时适用。

rational_algorithm() 使用 apart() 部分分数分解函数。 apart() 默认情况下使用“待定系数法”。通过设置 full=True ,可以使用“Bronstein算法”。

查找函数的四阶导数(默认情况下)。这可以使用order选项覆盖。

实例

>>> from sympy import log, atan
>>> from sympy.series.formal import rational_algorithm as ra
>>> from sympy.abc import x, k
>>> ra(1 / (1 - x), x, k)
(1, 0, 0)
>>> ra(log(1 + x), x, k)
(-1/((-1)**k*k), 0, 1)
>>> ra(atan(x), x, k, full=True)
((-I/(2*(-I)**k) + I/(2*I**k))/k, 0, 1)

笔记

通过设置 full=True ,可容许函数的范围 rational_algorithm 可以增加。应谨慎使用此选项,因为它会显著降低计算速度 doit 在上执行 RootSum 返回的对象 apart() 功能。使用 full=False 只要可能。

工具书类

[R826]

正式幂级数-DominikGruntz,WolframKoepf

[R827]

计算机代数中的幂级数

超几何算法#

sympy.series.formal.simpleDE(f, x, g, order=4)[源代码]#

生成简单的DE。

解释

DE的形式

\[f^k(x)+\sum\极限值{j=0}^{k-1}A_jf^j(x)=0\]

在哪里? \(A_j\) 应该是x中的有理函数。

生成不超过4阶的DE(默认)。DE也可以有自由参数。

通过增加阶数,可以找到高阶的DE。

生成(DE,order)的元组。

sympy.series.formal.exp_re(DE, r, k)[源代码]#

将常系数的DE(explike)转换为RE。

解释

执行替换:

\[f^j(x)\到r(k+j)\]

将项规范化,使项的最低阶始终为r(k)。

实例

>>> from sympy import Function, Derivative
>>> from sympy.series.formal import exp_re
>>> from sympy.abc import x, k
>>> f, r = Function('f'), Function('r')
>>> exp_re(-f(x) + Derivative(f(x)), r, k)
-r(k) + r(k + 1)
>>> exp_re(Derivative(f(x), x) + Derivative(f(x), (x, 2)), r, k)
r(k) + r(k + 1)
sympy.series.formal.hyper_re(DE, r, k)[源代码]#

将DE转换为RE。

解释

执行替换:

\[x^l f^j(x)\到(k+1-l)j。一个{k+j-l}\]

将项规范化,使项的最低阶始终为r(k)。

实例

>>> from sympy import Function, Derivative
>>> from sympy.series.formal import hyper_re
>>> from sympy.abc import x, k
>>> f, r = Function('f'), Function('r')
>>> hyper_re(-f(x) + Derivative(f(x)), r, k)
(k + 1)*r(k + 1) - r(k)
>>> hyper_re(-x*f(x) + Derivative(f(x), (x, 2)), r, k)
(k + 2)*(k + 3)*r(k + 3) - r(k)
sympy.series.formal.rsolve_hypergeometric(f, x, P, Q, k, m)[源代码]#

求解超几何类型的RE。

返回:

公式 :表达式

ind :表达式

独立条款。

秩序 :内景

解释

试图解决的形式

Q(k) a(k + m) - P(k) a(k)

保持超几何类型的变换:

  1. X **n* f(x):b(k+m)=R(k-n)*b(k)

  2. f(A) x): b(k + m) = A m R(k)*b(k)

  3. f(x) **n): b(k + n* m) =R(k/n)*b(k)

  4. f(x) **(1/m)): b(k + 1) = R(k* m) *b(k)

  5. f'(x):b(k+m)=((k+m+1)/(k+1)) R(k+1) b(k)

其中一些变换被用来求解RE。

实例

>>> from sympy import exp, ln, S
>>> from sympy.series.formal import rsolve_hypergeometric as rh
>>> from sympy.abc import x, k
>>> rh(exp(x), x, -S.One, (k + 1), k, 1)
(Piecewise((1/factorial(k), Eq(Mod(k, 1), 0)), (0, True)), 1, 1)
>>> rh(ln(1 + x), x, k**2, k*(k + 1), k, 1)
(Piecewise(((-1)**(k - 1)*factorial(k - 1)/RisingFactorial(2, k - 1),
 Eq(Mod(k, 1), 0)), (0, True)), x, 2)

工具书类

[R828]

正式幂级数-DominikGruntz,WolframKoepf

[R829]

计算机代数中的幂级数

sympy.series.formal.solve_de(f, x, DE, order, g, k)[源代码]#

求解DE。

返回:

公式 :表达式

ind :表达式

独立条款。

秩序 :内景

解释

试图通过转换为包含两个项的RE或转换为具有常数系数的DE来求解DE。

实例

>>> from sympy import Derivative as D, Function
>>> from sympy import exp, ln
>>> from sympy.series.formal import solve_de
>>> from sympy.abc import x, k
>>> f = Function('f')
>>> solve_de(exp(x), x, D(f(x), x) - f(x), 1, f, k)
(Piecewise((1/factorial(k), Eq(Mod(k, 1), 0)), (0, True)), 1, 1)
>>> solve_de(ln(1 + x), x, (x + 1)*D(f(x), x, 2) + D(f(x)), 2, f, k)
(Piecewise(((-1)**(k - 1)*factorial(k - 1)/RisingFactorial(2, k - 1),
 Eq(Mod(k, 1), 0)), (0, True)), x, 2)
sympy.series.formal.hyper_algorithm(f, x, k, order=4)[源代码]#

计算形式幂级数的超几何算法。

解释

步骤:
  • 生成DE

  • 将DE转换为RE

  • 解决RE

实例

>>> from sympy import exp, ln
>>> from sympy.series.formal import hyper_algorithm
>>> from sympy.abc import x, k
>>> hyper_algorithm(exp(x), x, k)
(Piecewise((1/factorial(k), Eq(Mod(k, 1), 0)), (0, True)), 1, 1)
>>> hyper_algorithm(ln(1 + x), x, k)
(Piecewise(((-1)**(k - 1)*factorial(k - 1)/RisingFactorial(2, k - 1),
 Eq(Mod(k, 1), 0)), (0, True)), x, 2)