hess_reorder.m
A utility to reorder a Hessian for use in GRAPE optimal control problems. Swaps the Hessian ordering between control channel and time step variables being first or second. The Hessian elements correspond to the elements of a control waveform array ordered as:
\(\begin{bmatrix}X_1 & X_2 & \cdots & X_N\\ Y_1 & Y_2 & \cdots & Y_N\\ Z_1 & Z_2 & \cdots & Z_N\end{bmatrix}\)
where X,Y,Z are different control channels and the index enumerates the time discretization points. A re-ordered Hessian will correspond to a waveform ordered as:
\(\begin{bmatrix}X_1 & Y_1 & Z_1\\ X_2 & Y_2 & Z_2\\ \vdots & \vdots & \vdots\\ X_N & Y_N & Z_N\end{bmatrix}\)
Syntax
hess=hess_reorder(hess,K,N)
Parameters
hess - Hessian matrix,
K - number of control channels.
N - number of time steps.
Outputs
new_hess - Re-ordered Hessian, with N first and K second
(a KxK block matrix with blocks of size NxN).
See also
alpha_conds.m, aux_mat.m, bfgs.m, cubic_interp.m, dirdiff.m, drifts.m, ensemble.m, objeval.m, optimcon.m, trapdiff.m, Optimal control module
Version 1.9, authors: David Goodwin