Interlaced eigenvalues

An engineering colleague asked me recently to investigate the relationship between the eigenvalues of a matrix and the eigenvalues of its principal submatrices. This is not an area I know much about, so I started off doing a web search. And I learned about a remarkable fact which goes back to Cauchy:

Suppose is an Hermitian matrix, with eigenvalues

and suppose that is obtained from by removing row and column for some . Then the eigenvalues of

satisfy the interlacing

.

The shortest proof of this result is due to the late Steve Fisk of Bowdoin College, who is probably best known in the wider mathematical world for his “proof from the book” of Chvátal’s art gallery theorem. His proof (of Cauchy’s interlacing theorem, not the art gallery theorem) can be found here. Fisk’s proof, as you can see, is based on a result of Hermite, which claims that the roots of two polynomials and interlace if and only if all the roots of are real, for all . For a complete proof of this result, from which the eigenvalues result is deduced as a corollary, see Fisk’s “Polynomials, roots, and interlacing“.

Another proof uses the min-max theorem, of which a full account is given by Terry Tao.

A little experiment

We shall use Matlab/Octave here, and instead of general Hermitian matrices we shall restrict ourselves to real symmetric matrices.

If is a diagonal matrix, then its entries will be its eigenvalues, and if is an orthogonal matrix of the same size as then

will be a symmetric matrix with the same eigenvalues as . We can construct an orthogonal matrix using this result of Cayley: if is a skew-symmetric matrix, then

is orthogonal. The proof requires some elementary matrix algebra; see here. Here’s the experiment:

```&gt;&gt; n = 4;
&gt;&gt; D = diag(1:n);
&gt;&gt; R = rand(n);
&gt;&gt; S = R - R';
&gt;&gt; Q = inv(S-eye(n))*(S+eye(n));
&gt;&gt; M = Q*D*Q'
M =

2.1146941  -0.8411071  -0.5795664   0.1635006
-0.8411071   3.0320881  -0.7959547  -0.7357826
-0.5795664  -0.7959547   2.6104766  -0.0025486
0.1635006  -0.7357826  -0.0025486   2.2427411

&gt;&gt; sort(eig(full(M))')
ans =

1.0000   2.0000   3.0000   4.0000

&gt;&gt; i = ceil(n*rand);
&gt;&gt; N = M; N(i,:)=[]; N(:,i)=[];
&gt;&gt; sort(eig(full(N))')
ans =

1.5021   2.0328   3.8546
```

Note that each eigenvalue of is between two consecutive eigenvalues of .