Python有一个包来解决使用递归关系定义的序列吗?

问题描述 投票:0回答:2

Python有一个包来解决使用递归关系定义的序列吗?

例如“Maxima”可以直接使用包“solve_rec”解决递归关系。

Python 有类似的东西吗?

千里马代码:

kill(all);

load("solve_rec")$ 

a[n]-a[n-1]-a[n-2]=0;

solve_rec(%, a[n],a[1]=2,a[2]=3);

输出:

a[n]-a[n-1]-a[n-2]=0

 a[n]=((sqrt(5)+1)^n*(3*sqrt(5)+5)*2^(-n-1))/5-((sqrt(5)-1)^n*(3*sqrt(5)-5)*2^(-n-1)*(-1)^n)/5
python package recurrence
2个回答
1
投票

这种类型的递推关系是线性且齐次的。线性齐次递推关系是一类特殊的递推关系,相对容易求解(至少手动求解)。然而,并非所有递归关系都有闭合形式,并且在具有闭合形式的递归关系中,并非所有关系都属于计算机可以常规解决的特殊类别。 Python 没有内置的递归关系求解器,并且 Python 中无法编写可以求解任意递归关系的模块。


0
投票

我制作了一个名为 resolvepy 的包,它可以解决同质递归关系。下载后,你可以像这样解决递归关系:

from sympy import *
from resolvepy import *

n = Symbol('n')

# create the sequence
f = Recurrence('f')
f.index = n

# input the starting items
f[0] = 1
f[1] = 2

# provide a recursive formula
f[n] = f[n-1] + f[n-2]

explicit = f.resolve()
© www.soinside.com 2019 - 2024. All rights reserved.