但是,当我尝试使用scipy fsolve解决它时,它会收敛于无穷大,而不是给我解决方案。
它趋于无穷大的原因是,当x趋于无穷大时,函数趋于0:
这里有示例代码:
def f(x, r): return -e ** (-r * x)
def h(r): return 2 * f(4, r) - f(2, r) - f(10, r)
x0 = np.array([1])
print(optimize.fsolve(h, x0))
使用其他一些参数可以找到解决方案。但是,我希望代码使用不同的参数,而不仅仅是示例中的参数。我也想避免零解决方案。
非常感谢
答案 0 :(得分:1)
如果让t = exp(-2x)
那么方程就是多项式,所以可以用numpy.roots
import numpy as np
roots = np.roots([[-1, 0, 0, 2, -1, 0])
solutions = map(lambda x: -log(x)/2, roots)
为您提供3种实际解决方案和2种复杂解决方案。