Owl_maths_rootRoot finding algorithms for nonlinear functions
val fzero : 
  ?solver:solver ->
  ?max_iter:int ->
  ?xtol:float ->
  (float -> float) ->
  float ->
  float ->
  floatfzero ~solver f a b tries to find the root of univariate function f in the bracket [a, b] using method solver. This is the hub function of the individual root finding algorithms in the following sections. You can certainly call each individual ones.
Parameters: * solver: solver, default one is Brent method. * max_iter: maximum number of iterations, default value is 1000. * xtol: the tolerance of x on abscissa, default value is 1e-6. * f: the univariate scalar function to find root. * a: boundary of bracket. * b: boundary of bracket.
bisec f a b tries to find the root of univariate function f in the bracket defined by [a, b].
Parameters: * max_iter: maximum number of iterations. * xtol: the tolerance of x on abscissa. * f: the univariate scalar function to find root. * a: boundary of bracket. * b: boundary of bracket.
false_pos f a b tries to find the root of univariate function f in the bracket defined by [a, b].
Parameters: * max_iter: maximum number of iterations. * xtol: the tolerance of x on abscissa. * f: the univariate scalar function to find root. * a: boundary of bracket. * b: boundary of bracket.
ridder f a b tries to find the root of univariate function f in the bracket defined by [a, b].
Parameters: * max_iter: maximum number of iterations. * xtol: the tolerance of x on abscissa. * f: the univariate scalar function to find root. * a: boundary of bracket. * b: boundary of bracket.
brent f a b tries to find the root of univariate function f in the bracket defined by [a, b].
Parameters: * max_iter: maximum number of iterations. * xtol: the tolerance of x on abscissa. * f: the univariate scalar function to find root. * a: boundary of bracket. * b: boundary of bracket.
Refer to :cite:`brent2013algorithms`
val bracket_expand : 
  ?rate:float ->
  ?max_iter:int ->
  (float -> float) ->
  float ->
  float ->
  (float * float) optionbracket_expand f a b expands the bracket [a, b] for a given function f until it finds f a and f b have different signs.
Parameters: * max_iter: maximum number of iterations, the default is 100 * rate: rate of growth, the default is 1.6 * f: the univariate scalar function to find root. * a: initial boundary of bracket. * b: initial boundary of bracket.