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