【发布时间】:2019-02-01 23:39:23
【问题描述】:
scipy.optimize.fsolve 似乎不适用于调用自身的函数。这是一个MWE
from scipy.optimize import fsolve
def f(x):
if f.n==0:
return x
f.n -= 1
return 1+f(x)
# Consider n=2 i.e. f(x) = 1 + 1 + x = 2 + x
f.n=2
soln = fsolve(f, -1.5) # Expect [-2]
print(soln) # [0.]
比较
def g(x):
return 1 + 1 + x
soln = fsolve(g, -1.5)
print(soln) # [-2.]
是否有解决方法可以将 fsolve 与此类功能一起使用?我的用例是我有一个由递归公式定义的函数,该函数需要很长时间才能手动输入大号n。
【问题讨论】: