Python:在python中替换brentq和fsolve,它找到给定函数的所有零

时间:2013-05-14 17:11:46

标签: python optimization solver

是否有一个模块可以找到函数的所有零而不是它遇到超出指定起点的第一个零点?

使用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)

0 个答案:

没有答案