A hole in the distribution of eigenvalues - is this real?

1.5k Views Asked by At

Plot the eigenvalues of many $n\times n$ real matrices in the complex plane, where the matrices are taken from a some distribution. For $n>7$, you can start to see a hole at the origin starting to form. From Girko's Circular Law I'd expect the distribution to tend toward a solid disc (with no hole in it). Below, the eigenvalue distributions of $10\times 10$ matrices taken from three distributions are seen, all with holes in them. The bigger $n$ is, the larger the hole is. The distributions are:

  1. All entries of all matrices are $\mathcal{N}(0,1)$
  2. All entries of all matrices are $\mathcal{U}(0,1)$
  3. The matrices are picked uniformly over the volume of a unit $n^2$-ball.

Is this real (and not a bug in my code)? If it is, what is this phenomenon called?

This seems to violate Girko's Circular Law, so what am I missing?

enter image description hereenter image description hereenter image description here

Edit: Here is my Matlab-code for generating these (without the scatterplot):

n = 10;
X = zeros(10^5,1);
Y = zeros(10^5,1);

for i = 1:10^5
    B = randn(n);
    C = eig(B);
    j = 1+4*(i-1);
    X(j:j+n-1) = real(C);
    Y(j:j+n-1) = imag(C);
end

Have I perhaps made some stupid mistake?

2nd edit: Here is a plot with the corrected code, as requested: enter image description here

3

There are 3 best solutions below

4
On BEST ANSWER

As far as I can tell, the problem is in how you're aggregating the eigenvalues into X and Y. j is incrementing by $4$ when it ought to be incrementing by $n = 10$, which has the effect of wiping out the smallest $6$ eigenvalues of almost every matrix, hence the hole. There's an easier way to do the aggregating that doesn't involve a j at all:

N = 10^4;
n = 10;
X = [];
Y = [];

for i = 1:N
    A = randn(n);
    E = eig(A);
    X = [X; real(E)];
    Y = [Y; imag(E)];
end

scatter(X, Y);
0
On

Because you are overwriting some of the eigenvalues by using the offset of 4 rather than 10, you are preferentially overwriting the smaller eigenvalues. This is confirmed in this SO selected answer, which states, for the Matlab algorithm:

The eigenvalues TEND to be in descending order, but this is not assured at all. They tend to be in order because the largest tend to trickle out of the algorithm on top. Eig has no sort at the end to ensure that fact.

So while it isn't purposely sorted in descending order, the algorithm has this effect.

3
On

Your plots instantly reminded me of something I'd seen before (click for a hi-res version):

Turns out that if your matrices have integer entries of bounded height, you do get holes, with the details depending on the distribution. What's more, there are all sorts of interesting and, to my knowledge, unsolved questions about this! More details here.

Given that real matrices can be approximated by rational ones, and bounded-height rationals can be multiplied by a sufficiently-large factor to give bounded-height integers, I wouldn't be surprised if there was some connection with the pattern you saw, even if it was only visible due to a bug.