You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add linesearch and nonpositive curvature detection to MINRES-QLP
Introduces a 'linesearch' option to MINRES-QLP for inexact Newton methods, enabling detection and handling of nonpositive curvature directions. Updates workspace and statistics to support this feature, adds related documentation, and includes new tests for linesearch behavior and error handling.(not yet working )
* Improve nonpositive curvature detection in MINRES-QLP
Refactored and enabled nonpositive curvature checks in MINRES-QLP with linesearch, correcting the logic for first iteration and updating residual computation.
For Minres, Need to divide by β, since v has not been normalized yet.
@@ -60,6 +64,9 @@ For an in-place variant that reuses memory across solves, see [`minres_qlp!`](@r
60
64
* `atol`: absolute stopping tolerance based on the residual norm;
61
65
* `rtol`: relative stopping tolerance based on the residual norm;
62
66
* `Artol`: relative stopping tolerance based on the Aᴴ-residual norm;
67
+
* `linesearch`: if `true`, indicate that the solution is to be used in an inexact Newton method with linesearch. If `true` and nonpositive curvature is detected, the behavior depends on the iteration:
68
+
– at iteration k = 1, the solver takes the right-hand side (i.e., the preconditioned negative gradient) as the current solution. The same search direction is returned in `workspace.npc_dir`, and `stats.npcCount` is set to 1;
69
+
– at iteration k > 1, the solver returns the solution from iteration k – 1, the residual from iteration k is a nonpositive curvature direction stored in `stats.npc_dir` and `stats.npcCount` is set to 1;
63
70
* `itmax`: the maximum number of iterations. If `itmax=0`, the default number of iterations is set to `2n`;
64
71
* `timemax`: the time limit in seconds;
65
72
* `verbose`: additional details can be displayed if verbose mode is enabled (verbose > 0). Information will be displayed every `verbose` iterations;
@@ -77,6 +84,8 @@ For an in-place variant that reuses memory across solves, see [`minres_qlp!`](@r
77
84
* S.-C. T. Choi, *Iterative methods for singular linear equations and least-squares problems*, Ph.D. thesis, ICME, Stanford University, 2006.
78
85
* S.-C. T. Choi, C. C. Paige and M. A. Saunders, [*MINRES-QLP: A Krylov subspace method for indefinite or singular symmetric systems*](https://doi.org/10.1137/100787921), SIAM Journal on Scientific Computing, Vol. 33(4), pp. 1810--1836, 2011.
79
86
* S.-C. T. Choi and M. A. Saunders, [*Algorithm 937: MINRES-QLP for symmetric and Hermitian linear equations and least-squares problems*](https://doi.org/10.1145/2527267), ACM Transactions on Mathematical Software, 40(2), pp. 1--12, 2014.
87
+
* Y. Liu and F. Roosta, [*MINRES: From Negative Curvature Detection to Monotonicity Properties*](https://doi.org/10.1137/21M143666X), SIAM Journal on Optimization, 32(4), pp. 2636--2661, 2022.
functionminres_qlp!(workspace ::MinresQlpWorkspace{T,FC,S}, $(def_args_minres_qlp...); $(def_kwargs_minres_qlp...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}, S <:AbstractVector{FC}}
0 commit comments