# lineSearchBB: A curvilinear search on the Stiefel manifold with BB steps... In rstiefel: Random Orthonormal Matrix Generation and Optimization on the Stiefel Manifold

## Description

A curvilinear search on the Stiefel manifold with BB steps (Wen and Yin 2013, Algo 2) This is based on the line search algorithm described in (Zhang and Hager, 2004)

## Usage

 `1` ```lineSearchBB(F, X, Xprev, G_x, G_xprev, rho, C, maxIters = 20) ```

## Arguments

 `F` A function V(n, p) -> R `X` an n x p semi-orthogonal matrix (the current ) `Xprev` an n x p semi-orthogonal matrix (the previous) `G_x` an n x p matrix with (G_x)_ij = dF(X)/dX_ij `G_xprev` an n x p matrix with (G_xprev)_ij = dF(X_prev)/dX_prev_ij `rho` Convergence parameter, usually small (e.g. 0.1) `C` C_t+1 = (etaQ_t + F(X_t+1))/Q_t+1 See section 3.2 in Wen and Yin, 2013 `maxIters` Maximum number of iterations

## Value

A list containing Y: a semi-orthogonal matrix Ytau which satisfies convergence criteria (Eqn 29 in Wen & Yin '13), and tau: the stepsize satisfying these criteria

Alexander Franks

## References

(Wen and Yin, 2013) and (Zhang and Hager, 2004)

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```N <- 10 P <- 2 M <- diag(10:1) F <- function(V) { - sum(diag(t(V) %*% M %*% V)) } dF <- function(V) { - 2*M %*% V } Xprev <- rustiefel(N, P) G_xprev <- dF(Xprev) X <- rustiefel(N, P) G_x <- dF(X) Xprev <- dF(X) res <- lineSearchBB(F, X, Xprev, G_x, G_xprev, rho=0.1, C=F(X)) ```

rstiefel documentation built on June 12, 2018, 5:19 p.m.