繁体   English   中英

使用scipy.optimize.brentq查找两个函数的根

[英]Finding root of two functions with scipy.optimize.brentq

我试图找到函数的根(即它们的曲线相交的地方):

def f1(x):
    return np.cos(2 * np.pi * x) * np.exp(-x ** 2)

def f2(x):
    return np.log(x + 2.2)

通过查看两个函数的图,我知道有两个根,其中-2 <x <2,但是我希望根为0.5> x> 0(另一个根出现在x <0)

我已经进行了一些研究,似乎scipy.optimize.brentq用于查找函数的根,但是我不知道如何为两个函数的根执行此操作。

有什么建议么?

在我看来,最简单的方法是定义新功能,例如:

def difference(x):
   return f1(x)-f2(x)

然后使用scipy.optimize.brentq

使用lambda创建一个新函数,该函数将值(x)传递到两个函数中减去它们并返回结果

scipy.optimize.brentq(lambda x: f1(x)-f2(x), a, b)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM