This section serves as a sample guide on the manipulation of objective functions of matrices with orthonormal columns. We have found a few common tricks worth emphasizing.
Once one has a formula for the objective function , we define the formula for implicitly by , where (or any curve for which ). The reader may recall that , so it functions just like the real inner product for vectors, and the implicit definition of is actually the directional derivative interpretation of the gradient of as an unconstrained function in a Euclidean space.
For most of the functions we have used in our examples, the easiest way to obtain the formula for is to actually use the implicit definition.
For example, if
one then has
The process we recommend is:
As a check, we recommend using the finite difference
supplied in the subdirectory
finitediff to check derivations
The software needs a function called
ddF.m, which returns
. The sort of second
derivative information required by the software is easier to derive
than the first. If one has an analytic expression for , then
one need only differentiate.
If, for some reason, the computation for
costs much more than two evaluations of with
reader may just consider employing the finite difference function for
ddF.m found in
finitediff (or simply use
as a check).
It is, however, strongly suggested that one use an analytic expression for computing , as the finite difference code for it requires a large number of function evaluations ().