latqcdtools.math.optimize
minimize(func, jac=None, hess=None, start_params=None, tol=1e-12, maxiter=10000, algorithm=None)
Wrapper for scipy.optimize.minimize. Helps that all algorithms have common syntax.
Args:
func: to-be-minimized function
jac (func, optional): Explicit Jacobian. Defaults to None.
hess (func, optional): Explicit Hessian. Defaults to None.
start_params (array-like, optional): Starting guess. Defaults to None.
tol (float, optional): Solve tolerance. Defaults to 1e-12.
maxiter (int, optional): Maximum number of solve iterations. Defaults to 10000.
algorithm (str, optional): Solve algorithm. Defaults to Scipy default, usually BFGS.
Raises:
e: scipy.optimize exception
ValueError: minimizer fails to converge
Returns:
array-like: solution vector
persistentSolve(LHS, guess, tol=1e-08, maxiter=300)
Attempt to solve LHS==0 using, in this order, SciPy's newton_krylov, fsolve, and root.
Args:
LHS (func)
guess: initial guess for solution
tol (real, optional): Solve tolerance. Defaults to 1e-8.
maxiter (int, optional): Maximum iterations. Defaults to 300.
solve(LHS, guess, tol=1e-08, maxiter=300, method='newton_krylov')
Wrapper for various methods to solve LHS==0. This is to simplify the interface.
Args:
LHS (func)
guess: initial guess for solution
tol (real, optional): Solve tolerance. Defaults to 1e-8.
maxiter (int, optional): Maximum iterations. Defaults to 300.
method (str, optional): Defaults to 'newton_krylov'.