penalty.m

From Spinach Documentation Wiki
Jump to: navigation, search

Penalty terms for the Optimal Control module. Returns the penalty function and its gradient for the waveform, which should be supplied as row vector or a horizontal stack thereof.

Syntax

    [pen_term,pen_grad,pen_hess]=penalty(wf,type,fb,cb)

Arguments

   wf                          -  control sequence waveform

   type='NS'                   -  norm square, designed to favour
                                  low-power waveforms over high-
                                  power ones.

   type='DNS'                  -  derivative norm square, desig-
                                  ned to favour smooth waveforms
                                  over jagged ones.

   type='SNS'                  -  spillout norm square, NS appli-
                                  ed to the part of the waveform
                                  with values outside the floor
                                  and ceiling bounds.

   fb                          -  floor bound, the lower bound on
                                  waveform used in the SNS penal-
                                  ty function.
                                   
   cb                          -  ceiling bound, the upper bound
                                  on waveform used in the SNS pe-
                                  nalty function.

Outputs

   pen_term                    -  value of the penalty term

   pen_grad                    -  gradient of the penalty term with
                                  respect to the waveform vector

   pen_hess                    -  Hessian of the penalty term with
                                  respect to the waveform vector 

Notes

The waveforms on different channels are assumed to be stored in the rows of the input array. The Hessian elements correspond to the elements of the waveform array ordered as:

   [X1 Y1 Z1 X2 Y2 Z2 ... Xn Yn Zn]

where X,Y,Z are different control channels and the index enumerates the time discretization points. Gradient dimensions and element order are the same as the input waveform dimensions and element order.

See also

grape.m, grape_xy.m, grape_phase.m, ensemble.m


Version 2.2, authors: Ilya Kuprov, David Goodwin