One question organizes everything on this page: where do the eigenvalues of a large random matrix go? For a single random variable, the law of large numbers and the central limit theorem describe the limit of averages and fluctuations. For a random matrix, the eigenvalues themselves form a random cloud, and the cloud has a deterministic limit shape that depends on the symmetry of the ensemble — but, remarkably, not on the fine details of the entry distribution. That independence is universality, and the limit shapes are the subject of this page: the semicircle for symmetric matrices, the circular law for non-Hermitian ones, the same semicircle again inside random graphs, and the Marčenko–Pastur law for covariance matrices. Each law comes with a live demo: increase the matrix size and watch the empirical cloud settle onto its limit.
Let $\lambda_{1} \leq \lambda_{2} \leq \cdots \leq \lambda_{n}$ denote the eigenvalues of an $n \times n$ matrix $H_{n}$ (real, when $H_{n}$ is symmetric). The empirical spectral distribution of $H_{n}$ is the probability measure on $\mathbb{R}$ (on $\mathbb{C}$ in the non-Hermitian case) $$ \mu_{H_{n}} := \frac{1}{n} \sum_{i=1}^{n} \delta_{\lambda_{i}} $$
If $H_{n}$ is a random matrix, then $\mu_{H_{n}}$ is a random probability measure. The limit laws below are statements that this random measure converges — weakly, almost surely — to a deterministic one. Concretely: a matrix with eigenvalues $[-0.72, -0.14, 0.46, 0.87, 1.42]$ has $\mu_{H} = \frac{1}{5}(\delta_{-0.72} + \delta_{-0.14} + \delta_{0.46} + \delta_{0.87} + \delta_{1.42})$ — a histogram with five equal spikes. The limit laws describe what the spikes merge into as $n$ grows.Three limit laws, one for each classical ensemble: Wigner matrices, non-Hermitian matrices, and sample covariance matrices.
Take a large $n \times n$ real symmetric (or complex Hermitian) matrix $H$ whose entries are random variables with mean $0$ and variance $1/n$. Its eigenvalues are real, by the spectral theorem, and their histogram has the shape of a semicircle.
The semicircle distribution is the probability measure with density
$$ \mu_{sc}(x) = \frac{1}{2\pi} \sqrt{4 - x^{2}}\; \mathbf{1}_{|x| \leq 2}, $$plotted in red over the histogram above. It plays, for matrices, the role the Gaussian plays for scalars:
Eugene Wigner proved the first version in 1958, by the method of moments: one computes the limiting moments of $\mu_{H_{n}}$ and shows they determine a unique measure. The moments of the semicircle law are $$ \int x^{m}\, d\mu_{sc} = \begin{cases} 0 & m \text{ odd} \\[2pt] \dfrac{1}{\frac{m}{2} + 1} \dbinom{m}{m/2} & m \text{ even} \end{cases} $$ — the even moments are the Catalan numbers, the same integers that count Dyck paths and non-crossing pairings. In the moment computation for $\mu_{H_{n}}$, only non-crossing pairings survive the $n \to \infty$ limit, which is the combinatorial heart of the proof. The version stated above, requiring only a finite second moment, is due to Zhidong Bai. The semicircle law is also the central limit theorem of free probability: $\mu_{sc}$ is the free analogue of the Gaussian, and free independence is the non-commutative independence that large random matrices exhibit asymptotically.
Drop the symmetry assumption. If $G$ is a large $n \times n$ matrix with iid entries of mean $0$ and variance $1/n$, its eigenvalues are in general complex, and they spread uniformly over the unit disk — not the unit circle, a distinction the picture makes obvious as $n$ grows.
For Gaussian entries — the Ginibre ensembles — the law was established by Jean Ginibre in 1965. The general iid case resisted for decades: Vyacheslav Girko announced a proof strategy in 1984, and the full theorem was completed in 2010 by Terence Tao, Van Vu and Manjunath Krishnapur. Two obstacles explain the delay. First, non-Hermitian spectra are unstable: the nilpotent shift matrix $M$ (ones on the subdiagonal) has all eigenvalues at $0$, but adding a single $\epsilon$ in the top-right corner moves every eigenvalue onto the circle of radius $\epsilon^{1/n} \approx 1$ — a perturbation of size $\epsilon$ moves the spectrum by $O(1)$. Second, the Hermitian toolkit fails: moments no longer determine the spectral measure (the same $M$ and $M_{\epsilon}$ have identical limiting moments), and the Stieltjes transform must be replaced by Girko's hermitization — studying the singular values of $G_{n} - z$ through the logarithmic potential $\frac{1}{n} \log \left| \det(G_{n} - z) \right|$.
Statistics supplies the fourth ensemble. Let $X$ be an $n \times p$ data matrix with iid entries of mean $0$ and variance $1$, and form the sample covariance matrix $W = \frac{1}{p} X X^{*}$. When both dimensions grow with a fixed aspect ratio $c = n/p \in (0, 1]$, the eigenvalues of $W$ do not pile up at $1$ — sampling noise smears them over an interval, and the smearing has an exact shape.
The practical moral: even for pure noise, sample eigenvalues spread over $[(1-\sqrt{c})^{2}, (1+\sqrt{c})^{2}]$ — at $c = 0.5$ that is $[0.09, 2.91]$. Any eigenvalue inside the bulk is consistent with noise, which is what makes the Marčenko–Pastur law the baseline for covariance estimation, PCA significance, and the cleaning procedures of the next section. The law was proved in 1967 by Vladimir Marčenko and Leonid Pastur.
The spectra above treat a graph as a matrix and ask where its eigenvalues live. The same objects are also networks — nodes, edges, and the question of which nodes matter. Three interactive pieces close the page: centralities measured on a live network, the Erdős–Rényi and stochastic block models that generate networks, and the surprisingly delicate problem of generating a random regular graph. (This material lived, until October 2026, on its own page, “Complex Networks”.)
The semicircle reappears in combinatorics. In the Erdős–Rényi model $G(n, p)$, each pair of vertices is joined by an edge independently with probability $p$; let $A(n, p)$ denote its (symmetric) adjacency matrix. The centered and rescaled matrix $$ \underline{A(n, p)} := \frac{A(n, p) - \mathbb{E}[A(n, p)]}{\sqrt{np(1-p)}} $$ has entries of mean $0$ and variance $1/n$ off the diagonal — almost a Wigner matrix — so its eigenvalues again follow the semicircle law.
Two things are worth watching in the demo. The convergence to the semicircle is much faster for moderate $p$ than for very sparse graphs: when $np$ is small the graph is mostly a forest, and its spectrum has atoms and ragged edges that only smooth out as the average degree grows. And the largest eigenvalue of the unnormalized $A(n, p)$ is not in this picture at all: it sits near $np$, far to the right of the bulk edge $2\sqrt{np(1-p)}$, carrying the Perron eigenvector. A signal eigenvalue escaping the bulk is exactly the phenomenon of the next section. The graphs themselves — drawings, centralities, and the stochastic block model — fill the rest of this part, beginning with Centralities.
Let $G(n,p)$ denote the Erdős–Rényi random graph. Then:
The adjacency matrix of $G(n,p)$, once centered and rescaled, is almost a Wigner matrix, and its eigenvalues follow the semicircle law. That story — with the live spectrum demo — now lives on the Random Matrices page.
The limit laws describe the bulk. Two refinements govern what happens at the boundary and above it. At the edge, the largest eigenvalue of a Wigner matrix fluctuates on the scale $n^{-2/3}$ around $2$, $$ n^{2/3}\left(\lambda_{\max} - 2\right) \rightharpoonup TW_{1}, $$ where $TW_{1}$ is the Tracy–Widom law (with $TW_{2}$, $TW_{4}$ for the Hermitian symmetry classes) — a universal distribution built from the Painlevé II equation.
Above the bulk, plant a signal: for a spiked Wigner matrix $H + \theta\, u u^{*}$, the top eigenvalue separates from the semicircle exactly when $\theta > 1$, landing at $\theta + \theta^{-1}$. For a spiked covariance matrix with population spike $\ell$ (relative to identity noise) and aspect ratio $c$, the sample eigenvalue pops out of the Marčenko–Pastur bulk exactly when $\ell > 1 + \sqrt{c}$, landing at $\ell\left(1 + \frac{c}{\ell - 1}\right)$. This phase transition is the BBP transition (Baik–Ben Arous–Péché, 2005): below the threshold the signal is present but undetectable from the spectrum; above it, both the eigenvalue and its eigenvector carry information about the spike.
These are also the working parts of the companion Julia package RandomMatrix.jl, which implements the spiked-covariance (BBP) module, Marčenko–Pastur covariance cleaning (eigenvalue clipping and the Bun–Bouchaud–Potters rotationally invariant estimator), Tracy–Widom laws for $\beta = 1, 2, 4$, and free additive and multiplicative convolutions.