我正在写一个应用程序,它必须解决一些递归关系,但是有一些关系不能用rsolve
方法来解析求解。它只返回None
。有没有一种方法可以强迫sympy用数值来求解它们?在
我有这样的东西:
from sympy import *
ctx = {
"f": Function("f"),
"x": var("x",integer=True)
}
initial_conditions = {
0: 1,
1: 1,
2: 1,
3: 1
}
f = sympify("-2*f(x-1)+11*f(x-2)+12*f(x-3)-36*f(x-4) +41**(x-4)+3 -f(x)", ctx)
# calculate f(10) here without creating a closed from
# The code below will not work rsolve returns None
solve_for = sympify("f(x)", ctx)
solved = rsolve(f, solve_for, initial_conditions)
我希望有人能帮助我!在
这是我用数值计算递归关系的方法。 当您将递归关系指定为要简化的输入时,请确保 值
f(x)
不是字符串的一部分。也就是说,如果你的递归关系是您的输入字符串应该是:
^{pr2}$此外,这个解仅限于线性递归关系,尽管它也可以扩展到其他情况。在
代码所做的是遍历递归关系的语法树,并通过数值计算或查找已知的f(x)值来计算每个节点。在
如果这个问题没有解析解(见下文),我会考虑采用线性代数方法here:
退货:
^{pr2}$相关问题 更多 >
编程相关推荐