fork download
  1. import math
  2.  
  3. # заданная унимодальная функция
  4. def f(x): return pow(x, 3) - x + pow(math.e, -x)
  5.  
  6. def passiveSearch():
  7. eps = 0.1 # заданная погрешность
  8. N = round((2 - eps) / eps) # узнаем с каким шагом дробить массив при заданной погрешности
  9. xmin = min((k / (N + 1) for k in range(1, N + 1)), key = lambda x: f(x))
  10. ymin = f(xmin)
  11.  
  12. return xmin, ymin
  13.  
  14. print (passiveSearch())
Success #stdin #stdout 0.02s 9392KB
stdin
Standard input is empty
stdout
(0.7, 0.13958530379140954)