adelie.bcd.root#
- adelie.bcd.root(*, quad: ndarray, linear: ndarray, l1: float, tol: float = 1e-12, max_iters: int = 1000, solver: str = 'newton_abs')[source]#
Solves the non-negative root of the BCD root function.
The BCD root function is given in
adelie.bcd.root_function(). The non-negative root only exists when \(\|v_S\|_2 < \lambda_1 < \|v\|_2\) where \(S\) is the subset of indices such that \(\Sigma_{ii} = 0\).- Parameters:
- quad(p,) ndarray
- linear(p,) ndarray
- l1float
- tolfloat, optional
Convergence tolerance. Default is
1e-12.- max_itersint, optional
Max number of iterations. Default is
1000.- solverstr, optional
Solver type must be one of the following:
"brent": Brent method."newton": Newton method."newton_brent": Newton method combined with Brent method for initialization."newton_abs": Newton method combined with Adaptive Bisection Starts for initialization."ista": ISTA method."fista": FISTA method."fista_adares": FISTA with Adaptive Restarts method.
Default is
"newton_abs".Warning
The following methods are known to have poor convergence:
"brent""ista""fista""fista_adares"
- Returns:
- resultDict[str, Any]
A dictionary containing the output:
"root": the non-negative root."iters": number of iterations taken.
See also