pulse2percept.utils.optimize

bisect

Functions

bisect(y_target, func[, args, kwargs, x_lo, ...])

Binary search (bisection method) to find x value that gives y_target

pulse2percept.utils.optimize.bisect(y_target, func, args=None, kwargs=None, x_lo=0, x_hi=1, x_tol=1e-06, y_tol=0.001, max_iter=100)[source]

Binary search (bisection method) to find x value that gives y_target

For a function y = func(x, *args, **kwargs), returns x_opt for which func(x_opt, *args, **kwargs) is approximately equal to y_target.

Added in version 0.7.

Parameters:
  • y_target (float) – Target y value

  • func (optional) – The function to call along with its positional and keyword arguments

  • args (optional) – The function to call along with its positional and keyword arguments

  • kwargs (optional) – The function to call along with its positional and keyword arguments

  • x_lo (float, optional) – Lower and upper bounds on x

  • x_hi (float, optional) – Lower and upper bounds on x

  • x_tol (float, optional) – Search will stop if the range of candidate x values is smaller than x_tol

  • y_tol (float, optional) – Search will stop if y is within y_tol of y_target

  • max_iter (int, optional) – Maximum number of iterations to run

Returns:

x_opt – The x value such that func(x_opt) $approx$ y_target

Return type:

float

Notes

  • Assumes func is a monotonously increasing function of x.

  • Does not require x_lo and x_hi to have opposite signs as in the conventional bisection method.