假设我有f(x) := x^2-10,它与g(x) = 0相交两次。实现如下所示。
from scipy.optimize import fsolve
import pylab
import numpy
def function_a(x): # f(x)
return x**2-10
def function_b(x): # g(x)
return 0
result = fsolve(lambda x: function_a(x)-function_b(x), 0)
x = numpy.linspace(-10,10,100)
pylab.plot(x ,
[function_a(y) for y in x],
x,
[function_b(y) for y in x],
result,
function_a(result),
'ro'
)
pylab.show()scipy.optimize.fsolve返回第二个交集。然而,我想知道第一个十字路口在任何时候。我怎样才能做到这一点?
对于第一个交点,我指的是x值较低的交集。
发布于 2021-03-27 07:19:25
(按要求将我的评论作为答复发布。)
显然,这一功能,以及其他在枕木优化,只找到一个根,不一定所有的根。如果您将猜测设置为-1,它将给出左根。
另外,如果您有明确的、已知的方程,那么也许可以考虑sympy,因为我相信它可以找到所有的根。
https://stackoverflow.com/questions/66825894
复制相似问题