Посмотрите в эту сторону:
scipy.optimizefrom scipy.optimize import minimize
import numpy as np
def func(x):
return np.abs(np.sin(x)-x)
minimize(func, -1)
Результат:
fun: 1.3390927663600727e-08
hess_inv: array([[ 109.41685172]])
jac: array([ -9.30984970e-06])
message: 'Optimization terminated successfully.'
nfev: 36
nit: 11
njev: 12
status: 0
success: True
x: array([-0.00431507])
Извлечение значений:
result = minimize(func, -1)
print(result.fun) # => 1.3390927663600727e-08
print(result.x[0]) # => -0.0043150659686
То есть найдено приблизительное решение x=-0.00431507. Проверка:
x = -0.00431507
sin(x) - x # => 1.3390965196077853e-08
Методы можно
менять, это влияет на точность:
result = minimize(func, -1, method='Nelder-Mead')
Там ещё есть куча интересных аргументов, изучайте.
P.S. Но вообще странно искать очевидное решение программно.