lib5c.util.optimization module¶
Module containing utility functions for curve optimization and root finding.
-
lib5c.util.optimization.array_newton(func, x0, fprime=None, args=(), tol=1.48e-08, maxiter=50, fprime2=None, failure_idx_flag=None)[source]¶ This function is deprecated, with
scipy>=1.2.0, you can callscipy.optimize.newton()instead.Finds roots of a scalar function
funcgiven a vector of initial guessesx0and parallel vectors of additional arguments tofunc(passed inargs) in a vectorized fashion. Similar to callingscipy.optimize.newton()in a for loop, but more performant and more legible. Bootlegged from https://github.com/scipy/scipy/pull/8357 preceeding its official release.- Parameters
func (function) – The scalar function to minimize. Should be vectorized (when a vector of independent inputs is passed it should return a vector of independent outputs). Signature should be
func(x, *args)wherex0contains initial guesses forxandargsrepresents the additional arguments.x0 (np.ndarray) – Initial guesses.
fprime (function, optional) – The derivative of
func. If not passed, this will be estimated with the secant method.args (tuple) – Extra arguments to be passed to
func.tol (float) – The allowable error of the zero value.
maxiter (int) – Maximal number of iterations.
fprime2 (function, optional) – The second derivative of
func. If passed, Halley’s method will be used. If not passed, the normal Newton-Raphson method or the secant method is used.failure_idx_flag (bool, optional) – Pass True to return two extra boolean arrays specifying which optimizations failed or encountered zero derivatives, respectively.
- Returns
root (np.ndarray) – The identified zeros of
func.failures (np.ndarray of bool, optional) – Only returned if
failure_idx_flagis True. Indicates which elements failed to converge.zero_der (np.ndarray of bool, optional) – Only returned if
failure_idx_flagis True. Indicates which elements had a zero derivative.
-
lib5c.util.optimization.quadratic_log_log_fit(x, y)[source]¶ Fit a pure-quadratic function
y = a * x**2using a loss function in log-log space.- Parameters
x (np.ndarray) – Flat vector of
xvalues to fit.y (np.ndarray) – Flat vector of
yvalues to fit.
- Returns
The fitted function.
- Return type
np.poly1d