LM#

class cuqi.solver.LM(A, x0, jacfun, maxit=10000.0, tol=1e-06, gradtol=1e-08, nu0=0.001, sparse=True)#

Levenberg-Marquardt algorithm for nonlinear least-squares problems. This is a translation of LevMaq.m from bardsleyj/SIAMBookCodes Used in Bardsley (2019) - Computational UQ for inverse problems. SIAM.

Based Algorithm 3.3.5 from: Kelley (1999) - Iterative Methods for Optimization. SIAM.

Parameters:
  • A (callable f(x,*args).)

  • x0 (ndarray. Initial guess.)

  • jacfun (callable Jac(x). Jacobian of func.)

  • maxit (The maximum number of iterations.)

  • tol (The numerical tolerance for convergence checks.)

  • gradtol (The numerical tolerance for gradient.)

  • nu0 (default value for nu parameter in the algorithm.)

  • sparse (True: if 'jacfun' is defined as a sparse matrix, or as a function that) – supports sparse operations. False: if ‘jacfun’ is dense.

__init__(A, x0, jacfun, maxit=10000.0, tol=1e-06, gradtol=1e-08, nu0=0.001, sparse=True)#

Methods

__init__(A, x0, jacfun[, maxit, tol, ...])

solve()