Banded matrix models¶
Computing the eigenvalues of a full \(N\times N\) random matrix is \(\mathcal{O}(N^3)\), and can thus become prohibitive for large \(N\). A way to circumvent the problem is to adopt the equivalent banded models i.e. diagonalize banded matrices.
The first tridiagonal models for the Hermite Ensemble and Laguerre Ensemble were revealed by [DE02], who left the Jacobi Ensemble as an open question, addressed by [KN04]. Such tridiagonal formulations made sampling possible at cost \(\mathcal{O}(N^2)\) but also unlocked sampling for generic \(\beta>0\)!
Note that [KN04] also derived a quindiagonal model for the Circular Ensemble.
Hermite Ensemble¶
Take for reference measure \(\mu=\mathcal{N}(\mu, \sigma)\)
Note
Recall that from the definition in (33)
The equivalent tridiagonal model reads
with
To recover the full matrix model for Hermite Ensemble, recall that \(\Gamma(\frac{k}{2}, 2)\equiv \chi_k^2\) and take
That is to say,
from dppy.beta_ensembles import HermiteEnsemble
hermite = HermiteEnsemble(beta=5.43) # beta can be >=0, default beta=2
# Reference measure is N(mu, sigma^2)
hermite.sample_banded_model(loc=0.0, scale=1.0, size_N=500)
# hermite.plot(normalization=True)
hermite.hist(normalization=True)
(Source code, png, hires.png, pdf)
See also
[DE02] II-C
Full matrix model for Hermite ensemble
HermiteEnsemble
in API
Laguerre Ensemble¶
Take for reference measure \(\mu=\Gamma(k,\theta)\)
Note
Recall that from the definition in (33)
The equivalent tridiagonal model reads
with
To recover the full matrix model for Laguerre Ensemble, recall that \(\Gamma(\frac{k}{2}, 2)\equiv \chi_k^2\) and take
That is to say,
from dppy.beta_ensembles import LaguerreEnsemble
laguerre = LaguerreEnsemble(beta=2.98) # beta can be >=0, default beta=2
# Reference measure is Gamma(k, theta)
laguerre.sample_banded_model(shape=600, scale=2.0, size_N=400)
# laguerre.plot(normalization=True)
laguerre.hist(normalization=True)
(Source code, png, hires.png, pdf)
See also
[DE02] III-B
Full matrix model for Laguerre ensemble
LaguerreEnsemble
in API
Jacobi Ensemble¶
Take for reference measure \(\mu=\operatorname{Beta}(a,b)\)
Note
Recall that from the definition in (33)
The equivalent tridiagonal model reads
with
To recover the full matrix model for Laguerre Ensemble, recall that \(\Gamma(\frac{k}{2}, 2)\equiv \chi_k^2\) and take
That is to say,
from dppy.beta_ensembles import JacobiEnsemble
jacobi = JacobiEnsemble(beta=3.14) # beta can be >=0, default beta=2
# Reference measure is Beta(a,b)
jacobi.sample_banded_model(a=500, b=300, size_N=400)
# jacobi.plot(normalization=True)
jacobi.hist(normalization=True)
(Source code, png, hires.png, pdf)
See also
[KN04] Theorem 2
Full matrix model for Jacobi ensemble
JacobiEnsemble
in APIMultivariateJacobiOPE
in API
Circular Ensemble¶
Note
Recall that from the definition in (33)
Important
Consider the distribution \(\Theta_{\nu}\) that for integers \(\nu\geq2\) is defined as follows:
Draw \(v\) uniformly at random from the unit sphere \(\mathbb{S}^{\nu} \in \mathbb{R}^{\nu+1}\), then \(v_1 + iv_2\sim \Theta_{\nu}\)
Now, given \(\beta\in \mathbb{N}^*\), let
\(\alpha_k\sim \Theta_{\beta(N-k-1)+1}\) independent variables
for \(0\leq k\leq N-1\) set \(\rho_k = \sqrt{1-|\alpha_k|^2}\).
Then, the equivalent quindiagonal model corresponds to the eigenvalues of either \(LM\) or \(ML\) with
and where
Hint
The effect of increasing the \(\beta\) parameter can be nicely visualized on this Circular Ensemble. Viewing \(\beta\) as the inverse temperature, the configuration of the eigenvalues crystallizes with \(\beta\), see the figure below.
from dppy.beta_ensembles import CircularEnsemble
circular = CircularEnsemble(beta=2) # beta must be >=0 integer, default beta=2
# See the cristallization of the configuration as beta increases
for b in [0, 1, 5, 10]:
circular.beta = b
circular.sample_banded_model(size_N=30)
circular.plot()
circular.beta = 2
circular.sample_banded_model(size_N=1000)
circular.hist()
See also
[KN04] Theorem 1
Full matrix model for Circular ensemble
CircularEnsemble
in API