是否有可能使用sympy找到以下递归关系的紧密形式解?

时间:2016-04-28 04:17:41

标签: sympy

示例1

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)

当我尝试见证时,我得到了以下结果

>>> 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 

获得预期结果的其他任何方式?

期待建议和纠正..

1 个答案:

答案 0 :(得分:1)

SymPy中的

WHERE fa.new_sitename IN (SELECT value FROM dbo.udf_Split(@Office, ',')) AND fs.skillname IN (SELECT value FROM dbo.udf_Split(@Servicetype, ',')) (从1.0开始)目前仅支持线性递归关系,特别是仅支持一个变量的函数(参见http://docs.sympy.org/latest/modules/solvers/solvers.html#sympy.solvers.recurr.rsolve)。我不知道是否有可能在没有SymPy实现更多算法的情况下解决这个问题,除了使用SymPy来帮助解决它。

对于第一个,如果您使用rsolve

的知识,您可以解决它
F(n, t) = G(n)*t

对我来说,如何用第二个等式做一个类似的事情并不明显。