View on GitHub

Gram Schmidt Derivatives

Repository for computing the derivatives of Gram-Schmidt vectors

Differentiating Gram Schmidt

Gram-Schmidt orthogonalization is a well-known technique where an non-orthogonal set of column vectors equation is made orthogonal via

equation

We have developed a simple recurrence relation to compute the derivatives of equation with respect to equation:

equation

Gram-Schmidt vectors are often normalized in practice, to obtain the set:

equation

The derivatives of these normalized vectors are obtained by premultiplying the unnormalized derivative with a matrix that only depends upon equation:

equation

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 of gram_schmidt_derivatives.py. Also acts as a tutorial for the Python3 class.

Development was funded by the EU Horizon 2020 project VECMA.