# Is this a legit way to sample a random matrix spectrum?

In order to undergird a theoretical model concerning many body physics, I want to have exponentially large eigenvalue spectra from the random matrix GOE ensemble. its properties are mainly

(i) a semicircle distribution,

(ii) a level repulsion between the eigenvalues.

These are met in some physical systems, so it is natural to test a model using those random matrices.

However, my PC can diagonalize only 40000x40000 matrices before reaching RAM limitations so I tried to come up with a clever way of creating larger spectra by means of the corresponding PDF and CDF. I want to make use of the inverse transform sampling method which transforms uniformly distributed numers into eg semicircular ones, which then matched the (i) condition, but obvioulsy had rather a Poissoinian level attraction, because the uniform input was uncorrelated in the first place. So my idea was to sample random numbers which inherit the desired level spacing from the (ii) property by means of the corresponding CDF and feed these numbers into the inverse sampling described above. Here you can see the side by side comparison of the two method in the case of a 10000x10000 matrix, left being a diagonalized matrix spectrum, and right following from the algorithm described. is this a proper method to generate arbitrarily large "spectra"? I found that for larger N the right semicircular histogram becomes much smoother, maybe it converges only for asymptomatical N?

can I by chance incorporate another feature of random matrix theory, the Tracy-Widom distribution?

can I perform a suitable test to judge the quality of this method?

or am I doing a horribly naive mistake in my wish of finding a neat and clever RAM-workaround?

• Is there any structure in your system that allows for a sparse representation of the matrices? Oct 3, 2021 at 22:30
• At this point, I just want to know how to mimic a random matrix spectrum in general. Oct 4, 2021 at 11:35