Python: поиск нескольких корней нелинейного уравнения
Предположим, следующая функция:
f(x) = x * cos(x-4)
С участиемx = [-2.5, 2.5]
эта функция пересекает0
вf(0) = 0
а такжеf(-0.71238898) = 0
.
Это было определено с помощью следующего кода:
import math
from scipy.optimize import fsolve
def func(x):
return x*math.cos(x-4)
x0 = fsolve(func, 0.0)
# returns [0.]
x0 = fsolve(func, -0.75)
# returns [-0.71238898]
Как правильно использоватьfzero
(или любой другой искатель корней Python), чтобы найти оба корня в одном вызове? Есть ли другойscipy
функция, которая делает это?