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

如何在SymPy中定义递归形式的等差数列和等比数列

在SymPy中可以使用recurrence_sequence函数直接通过递推关系定义数列,不需要先推导闭式表达式。

等差数列(递推式 $U_{n+1}=U_n + r$)定义示例

对应你给出的$u_0=2$、公差$r=5$的场景,代码如下:

from sympy import *
n = symbols('n', integer=True)
u0 = 2
r = 5
# 递推关系写成标准形式:u(n) - u(n-1) = r
# 四个参数依次为:齐次项系数列表、初始项列表、变量、非齐次项常数
ari_seq_rec = recurrence_sequence([1, -1], [u0], n, r)

等比数列(递推式 $U_{n+1}=qU_n$)定义示例

以$u_0=2$、公比$q=3$为例,代码如下:

q =3
# 递推关系标准形式:u(n) - q*u(n-1) = 0,无非齐次项
geo_seq_rec = recurrence_sequence([1, -q], [u0], n)

验证生成的数列项

可以调用coeff方法获取指定下标的项,示例:

# 输出等差数列n从0到5的所有项
print([ari_seq_rec.coeff(i) for i in range(6)])
# 输出结果:[2, 7, 12, 17, 22, 27]

# 输出等比数列n从0到5的所有项
print([geo_seq_rec.coeff(i) for i in range(6)])
# 输出结果:[2, 6, 18, 54, 162, 486]

如果仅需要小范围使用递归数列,也可以直接用Python原生递归函数实现,无需依赖SymPy:

# 原生Python实现等差数列递归定义
def ari_rec(n):
    if n ==0:
        return 2
    return ari_rec(n-1)+5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 18:57:03