Line search algorithm for optimization on Stiefel manifold based on Wen and Yin (2013). Used in 1D-algorithm for estimating the envelope subspace.
OptManiMulitBallGBB(X, opts=NULL, fun, ...)n by k matrix such that \(X'X = I\)
Option structure with fields:
"record = 0" -- no print out.
"maxiter" -- max number of iterations.
"xtol" -- stop control for \(||X_k - X_{k-1}||\).
"gtol" -- stop control for the projected gradient.
"ftol" -- stop control for \(\frac{|F_k - F_{k-1}|}{(1+|F_{k-1}|)}\) usually with max{xtol, gtol} > ftol.
Objective function and its gradient:
fun(X, data1, data2)
data1, data2 are additional data.
Additional input for fun, Calling syntax:
OptManiMulitBallGBB(X0, fun, opts, data1, data2).
Solution.
Gradient of X.
Output information, include estimation error, function value, iteration times etc.
Wen, Z., & Yin, W. (2013). A feasible method for optimization with orthogonality constraints. Mathematical Programming, 142(1-2), 397-434.