# pylops.optimization.basic.cg¶

pylops.optimization.basic.cg(Op, y, x0=None, niter=10, tol=0.0001, show=False, itershow=[10, 10, 10], callback=None)[source]

Solve a square system of equations given an operator Op and data y using conjugate gradient iterations.
Parameters: Op : pylops.LinearOperator Operator to invert of size $$[N \times N]$$ y : np.ndarray Data of size $$[N \times 1]$$ x0 : np.ndarray, optional Initial guess niter : int, optional Number of iterations tol : float, optional Tolerance on residual norm show : bool, optional Display iterations log itershow : list, optional Display set log for the first N1 steps, last N2 steps, and every N3 steps in between where N1, N2, N3 are the three element of the list. callback : callable, optional Function with signature (callback(x)) to call after each iteration where x is the current model vector x : np.ndarray Estimated model of size $$[N \times 1]$$ iit : int Number of executed iterations cost : numpy.ndarray, optional History of the L2 norm of the residual