A MATLAB implementation of the Hager–Zhang line-search technique [1, 2], which uses the approximate Wolfe conditions.
This MATLAB version of the Hager–Zhang bracketing has been implemented following an existing Julia code.
The script linesch_ww, which implements a line search enforcing the weak Wolfe conditions, comes from the HANSO software written by Michael L. Overton.
If there are any problems or bugs, feel free to email me at msutti (at) ncts.tw
This code was originally included in the RMGLS package, released in June 2020. We decided to make this new version available independently of the RMGLS code.
- Ver 2, November 2022.
- Ver 1, June 2020. See here.
Driver_HZ2005_Figure_41reproduces Figure 4.1 from [1].Driver_HZLS_quarticillustrates how to use steepest descent with the Hager–Zhang line search to minimize a simple quadratic function.Driver_SD_WW_vs_HZLScompares steepest descent with classical weak Wolfe conditions against steepest descent using the Hager–Zhang line search technique. This script can be used to reproduce the figures from Chapter 5.3 of [3].
Code written by me is GPL licensed.
- [1] W. W. Hager and H. Zhang, "A new conjugate gradient method with guaranteed descent and an efficient line search", SIAM J. Optim., 16 (2005), pp. 170–192.
- [2] W. W. Hager and H. Zhang, "Algorithm 851: CG DESCENT, a Conjugate Gradient Method with Guaranteed Descent", ACM Trans. Math. Softw., 32 (2006), pp. 113–137.
- [3] M. Sutti, "Riemannian Algorithms on the Stiefel and the Fixed-Rank Manifold", Ph.D. thesis, University of Geneva, December 2020.