Hi again,
I'm recovering this problem with preconditioning where I left it and I'm facing the following subproblem:
The preconditioning finally amounts to solving a linear system Q*U+N=T,
where U in T_xM (tangent space of a manifold) and N in N_xM (normal space of the manifold) are my unknowns.
The dimensions are (dn)x(dn) for the (psd) block matrix Q, and (dn)x(d) for the block vectors U,N and T.
The conditions that U and N lie in the tangent and normal space at a certain point X in the manifold are linear,
so I have been able so far (after vectorization) to build a complete linear system yielding the correct solution.
The approach above, however, is not using several available powerful tools:
- A previously computed Cholesky decomposition of Q=LL'
- The cheap closed-form projections from any point Y (dn)x(d) to the tangent and normal spaces where U and N lie
I wondered if there might be some alternative approach using optimization in the manifold
that provides a more efficient way to solve the linear system above.
I was considering a reformulation as the constrained minimization of a quadratic objective as
min ||Q*U+N-T||_F^2 s.t. U in T_xM, N in N_xM.
The quadratic form in this objective has infinitely many solutions reaching the minimum value 0,
but as proved by the prior approach when restricted to the search space for U and N, there is a unique global minimum.
I'm not sure if this workaround is really promising or not, or if it will converge fast, but it may be interesting to try.
Looking at how to solve this problem using Manopt I saw there are already the *tangentspacefactory* which I could use,
and also a similar example given by *preconhessiansolve*. These are a great reference to begin with,
but I would appreciate your feedback with any additional materials or comments wrt this approach.
I assume e.g. that I should define a factory for the normal space (only the projector function changes?).
Is that all to be done? Am I missing anything else?
Remark: I'm specially interested in exploiting the fact that I can readily invert the matrix Q.
Note: If you need further details on any part of the explanation above or a more readable document, just say it!
Best regards!
Jesus