dirdiff.m

From Spinach Documentation Wiki
Jump to: navigation, search

Directional derivatives of the matrix exponential. Implements Equation 11 of Najfeld and Havel (https://doi.org/10.1006/aama.1995.1017) and Equation 16 of Goodwin and Kuprov (http://dx.doi.org/10.1063/1.4928978)

Syntax

    D=dirdiff(spin_system,A,B,T,N)

Arguments

    A - a matrix

    B - a matrix or a cell array of matrices

    T - the time parameter in exp(A*T) that is being differentiated

    N - derivative order

If A an B are matrices, computes the N-th derivative of the matrix exponential exp(A*T) in the direction B. If B is a cell array, computes the mixed derivative of exp(A*T) in directions B{1}, B{2}, etc.

Returns

    D  - the directional derivative

Examples

This function is used by grape.m to compute propagator derivatives and by intrep.m to perform numeical rotating frame transformations.

Notes

The auxiliary matrix method is massively faster than either commutator series or diagonalisation.

See also

expmint.m, rotframe.m, intrep.m, grape.m


Version 2.0, authors: Ilya Kuprov, David Goodwin