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 dF.m
code
supplied in the subdirectory finitediff
to check derivations
before proceeding.
The software needs a function called ddF.m
, which returns
for
. 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 ddF.m
costs much more than two evaluations of with dF.m
, the
reader may just consider employing the finite difference function for
ddF.m
found in finitediff
(or simply use ddF.m
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 ().