# hess_reorder.m

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

A utility to reorder a Hessian for use in GRAPE optimal control problems.

## Syntax

    hess_new=hess_reorder(hess,K,N)


## Description

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}$

## Arguments

    hess         - Hessian matrix,

K            - number of control channels.

N            - number of time steps.



## Returns

    new_hess     - Re-ordered Hessian, with N first and K second
(a KxK block matrix with blocks of size NxN).