Derivative of eigenvectors of a matrix with respect to its components

If $B$ depends on a single parameter $t$ then derivating with respect to $t$ the equality

$$ B n_i =\lambda_i n_i $$

we deduce

$$\dot{B} n_i +B\dot{n}_i=\dot{\lambda}_i n_i +\lambda_i\dot{n}_i. $$

Here we assume that $\Vert n_i\Vert =1$. Hence $\dot{n}_i\perp n_i$, $\forall i$. Taking the inner product of the above equality with $n_i$ and observing that

$$ (B\dot{n}_i, n_i)=(\dot{n}_i, Bn_i)=\lambda_i(\dot{n}_i,n_i)=0 \tag{1} $$

we deduce

$$\boxed{\dot{\lambda}_i=(\dot{B}n_i,n_i).} $$

This determines $\dot{\lambda}_i$ in terms of $\dot{B}$.

Next, we take the inner product of (1) with $n_j$, $j\neq i$. Using the fact that $B$ is symmetric we deduce

$$(\dot{B}n_i, n_j)+(\dot{n}_i, Bn_j)=\lambda_i (\dot{n}_i, n_j) $$

so that

$$(\dot{B}n_i, n_j)+\lambda_j(\dot{n}_i, n_j)=\lambda_i (\dot{n}_i, n_j) $$

This shows that

$$(\dot{n}_i, n_j)=\frac{1}{\lambda_i-\lambda_j}(\dot{B}n_i, n_j), $$

that is

$$\dot{n}_i=\sum_{j\neq i} \frac{1}{\lambda_i-\lambda_j}(\dot{B}n_i, n_j) n_j.\tag{2} $$

If we let the parameter $t$ to be entry $b_{k\ell}$, $k\leq \ell$, of $B$ with respect to some fixed orthonormal basis we deduce

$$\boxed{\frac{\partial n_i}{\partial b_{k\ell}}=\sum_{j\neq i} \frac{1}{\lambda_i-\lambda_j}\Biggl(\frac{\partial B}{\partial b_{k\ell}}n_i, n_j\Biggr) n_j.} $$

This is equivalent with the formula of Carlo Beenakker.


first order perturbation theory in $\epsilon$ on the matrix B with elements $B_{nm}+\epsilon \delta_{nk}\delta_{ml}$ tells you that

$$\frac{d\vec{n}_i}{dB_{kl}}=\sum_{j\neq i}\frac{(\vec{n}_j)_k (\vec{n}_i)_l}{\lambda_i-\lambda_j}\vec{n}_j$$

with $(\vec{n}_i)_l$ the $l$-th component of the vector $\vec{n}_i$.