hess_reorder.m

From Spinach Documentation Wiki
Jump to: navigation, search

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