You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何实现Tricomi合流超几何函数U的展开?

手动实现Tricomi合流超几何函数U的级数展开

嘿,我懂你的痛点——SymPy确实没有内置Tricomi合流超几何函数U,但咱们完全可以利用它的级数展开式手动实现,轻松拿到你需要的前5-10项展开。下面分两种常见的展开场景给你方案:

1. x→0时的收敛幂级数展开

当|arg x| < π且b ≠ 0, -1, -2, ...时,Tricomi函数U(a,b,x)有如下收敛级数表示:

U(a,b,x) = x^(1-b) * Γ(b-1)/Γ(a) * Σₙ=₀^∞ [(a - b + 1)ₙ (1 - a)ₙ] / [n! (2 - b)ₙ] xⁿ + Γ(1-b)/Γ(a - b + 1) * Σₙ=₀^∞ [(a)ₙ (b - a)ₙ] / [n! (b)ₙ] xⁿ

其中(c)ₙ是Pochhammer符号(上升阶乘),SymPy已经内置了这个符号的实现。

实现代码

from sympy import symbols, gamma, pochhammer, summation, expand

# 定义符号变量
a, b, x = symbols('a b x')

def tricomi_u_series(a, b, x, num_terms=5):
    """计算Tricomi函数U(a,b,x)在x→0处的前num_terms项幂级数展开"""
    # 第一部分级数
    coeff1 = x**(1 - b) * gamma(b - 1) / gamma(a)
    sum1 = summation(
        pochhammer(a - b + 1, n) * pochhammer(1 - a, n) / 
        (pochhammer(1, n) * pochhammer(2 - b, n)) * x**n,
        (n, 0, num_terms - 1)
    )
    # 第二部分级数
    coeff2 = gamma(1 - b) / gamma(a - b + 1)
    sum2 = summation(
        pochhammer(a, n) * pochhammer(b - a, n) / 
        (pochhammer(1, n) * pochhammer(b, n)) * x**n,
        (n, 0, num_terms - 1)
    )
    # 合并并展开表达式
    return expand(coeff1 * sum1 + coeff2 * sum2)

# 测试:获取前5项展开
print("前5项展开式:")
print(tricomi_u_series(a, b, x, num_terms=5))

运行后就能得到展开后的多项式形式,你可以调整num_terms参数来获取前10项。

2. x→∞时的渐近展开(可选)

如果需要x趋向无穷大时的渐近展开,当|x|→∞且|arg x| < 3π/2时,U(a,b,x)的渐近级数为:

U(a,b,x) ~ x^(-a) * Σₙ=₀^∞ [(a)ₙ (a - b + 1)ₙ] / [n! xⁿ]

对应的实现代码如下:

def tricomi_u_asymptotic(a, b, x, num_terms=5):
    """计算Tricomi函数U(a,b,x)在x→∞处的前num_terms项渐近展开"""
    sum_series = summation(
        pochhammer(a, n) * pochhammer(a - b + 1, n) / 
        (pochhammer(1, n) * x**n),
        (n, 0, num_terms - 1)
    )
    return expand(x**(-a) * sum_series)

# 测试:获取前5项渐近展开
print("\n前5项渐近展开式:")
print(tricomi_u_asymptotic(a, b, x, num_terms=5))

注意事项

  • 当b为整数时,上面的收敛级数会因为gamma函数的奇点失效,这时候需要引入对数项修正,如果你需要处理这种特殊情况,可以告诉我,我再补充对应的实现。
  • SymPy的expand()函数会自动简化展开后的表达式,方便你查看每一项的系数。

内容的提问来源于stack exchange,提问作者honeybadger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:16:52