是否有一个模块可以找到函数的所有零而不是它在指定起点之外遇到的第一个零?
使用brentq
,我们将指定函数更改符号的位置,并且只选择该位置,除非使用 这样做n
。同样,使用fsolve
,我们选择一个起点,然后它会找到该点之外的第一个零,我们将不得不再次这样做n
。当然,我怎么能n
在一个呼叫中找到所有位置n < infinity
。
我想到的功能是 3 个零,如下所示:
import numpy as np
import pylab
from scipy.optimize import brentq
mm = 7.3477e22 # mass moon
me = 5.9736e24 # mass Earth
r12 = 384400.0 # distance between the Earth and the moon
pi2 = mm / (me + mm)
def f(xi):
return ((1.0 - pi2) / np.absolute(xi - pi2) ** 3.0 * (xi + pi2) +
pi2 / np.absolute(xi + pi2 - 1.0) ** 3.0 * (xi + pi2 - 1.0) - xi)