Differentiating Gram Schmidt
Gram-Schmidt orthogonalization is a well-known technique where an non-orthogonal set of column vectors is made orthogonal via
We have developed a simple recurrence relation to compute the derivatives of with respect to
:
Gram-Schmidt vectors are often normalized in practice, to obtain the set:
The derivatives of these normalized vectors are obtained by premultiplying the unnormalized derivative with a matrix that only depends upon :
Contents repository
The following files are present in the repository:
gram_schmidt_derivatives.py
: a Python3 class for computing Gram-Schmidt vectors and the derivatives.derivation.pdf
: a document which details the derivation of the derivative expressions.check_derivatives.ipynb
: a Jupyter notebook which verifies the validity of the derivative expressions, and which verifies the Python3 implementation ofgram_schmidt_derivatives.py
. Also acts as a tutorial for the Python3 class.
Development was funded by the EU Horizon 2020 project VECMA.