使用sympy可以找到以下复发关系的关闭形式解决方案吗?
问题描述:
实施例1使用sympy可以找到以下复发关系的关闭形式解决方案吗?
F(0,t)=t
F(n+1,t)=F(n,2*t)
实施例2
F(0,y,t)=t
F(n+1,y,t)=F(n,y+1,t*y)
当我试图手动解决上述方程对于接近形式溶液和我的结果如下(指正如果米错)
F(n,t)=2**n*t
F(n,y,t)=t*y*(y+1)*....*(y+n)
当我在sympy中试过时,我得到以下结果
>>> from sympy import *
>>> F=Function('F')
>>> t=symbol('t')
>>> n=Symbol('n')
>>> f=F(n+1,t)-F(n,2*t)
>>> rsolve(f,F(n,t),{F(0,t):t})
t
>>> y=Symbol('y')
>>> f=F(n+1,y,t)-F(n,y+1,y*t)
>>> rsolve(f,F(n,y,t),{F(0,y,t):t})
t
任何其他方式来获得预期的结果?
期待为建议和校正..
答
在SymPy rsolve
(如1.0)目前仅支持线性递推关系,并且特别地,一个变量的函数只(见http://docs.sympy.org/latest/modules/solvers/solvers.html#sympy.solvers.recurr.rsolve)。我不知道是否有可能解决这个问题,如果没有SymPy实现一些更多的算法,除了使用SymPy来帮助解决它。
In [23]: f=F(n+1)*t-F(n)*2*t
In [24]: rsolve(f,F(n),{F(0):t})
Out[24]:
n
2 ⋅t
这不是明显,我该怎么做了类似的事情与第二个公式:
对于第一个,你可以,如果你使用的知识F(n, t) = G(n)*t
解决它。
这些错误的答案是错误。我打开了https://github.com/sympy/sympy/issues/11063。 – asmeurer