Library
RandomMatrixDistributions.EigvalDistRandomMatrixDistributions.JacobiRandomMatrixDistributions.MarchenkoPasturRandomMatrixDistributions.SpikedWignerRandomMatrixDistributions.SpikedWishartRandomMatrixDistributions.TracyWidomRandomMatrixDistributions.WachterRandomMatrixDistributions.bulk_distRandomMatrixDistributions.randeigstatRandomMatrixDistributions.randeigvalsRandomMatrixDistributions.supercrit_dist
Distributions
RandomMatrixDistributions.EigvalDist — TypeEigvalDist(matrixdist::MatrixDistribution)The joint distribution of eigenvalues sampled from a random matrix with the distribution matrixdist.
RandomMatrixDistributions.Jacobi — TypeJacobi(β::Int, n₁::Int, n₂::Int, p::Int)Distribution of a p×p Jacobi matrix.
If E ~ Wishartₚ(I, n₁) and H ~ Wishartₚ(I, n₂) are independent with Dyson parameter β, then E(E + H)⁻¹ has Jacobi(β, n₁, n₂, p) distribution.
If λᵢ are the eigenvalues of EH⁻¹ and μᵢ are the Jacobi eigenvalues, then μᵢ = λᵢ/(1 + λᵢ) and λᵢ = μᵢ/(1 - μᵢ).
RandomMatrixDistributions.SpikedWigner — TypeSpikedWigner(β::Int, n::Int[, spikes::Vector{Float64}, scaled::Bool=false])Distribution on an n×n spiked Gaussian Wigner matrix.
Wigner matrices are Hermitian with independent real, complex or quaternion standard Gaussian entries depending on whether β = 1, 2 or 4.
A diagonal matrix with entries given by spikes multiplied by √n is added to produce the spiked Wigner matrix.
If scaled == true, then the resulting matrix is divided by √n so that its bulk distribution converges to the semicircle law supported on [-2, 2].
RandomMatrixDistributions.SpikedWishart — TypeSpikedWishart(β::Int, n::Int, p::Int[, spikes::Vector{Float64}, scaled::Bool=false)Distribution of a p×p spiked Wishart matrix.
If X is a p×n matrix with independent real, complex or quaternion standard Gaussian entries, depending on whether β = 1, 2 or 4, then XX† has a Wishart(β, n, p) distribution.
If Λ is a diagonal matrix whose entries are √(1 .+ spikes), then ΛXX†Λ has a SpikedWishart(β, n, p, spikes) distribution.
If scaled == true, then the resulting matrix is divided by p so that its bulk distribution converges to the Marchenko-Pastur law.
Methods for random matrix ensembles
RandomMatrixDistributions.bulk_dist — Functionbulk_dist(d::Union{MatrixDistribution, EigvalDist})Compute the limiting spectral distribution of d.
RandomMatrixDistributions.randeigvals — Functionrandeigvals([rng::AbstractRNG, ]d::MatrixDistribution)Sample a vector of eigenvalues of a matrix drawn from the matrix ensemble d.
RandomMatrixDistributions.randeigstat — Functionrandeigstat([rng::AbstractRNG, ]d::MatrixDistribution, eigstat::Function, n::Int)Sample n realisations of the eigenvalue statistic eigstat evaluated at a matrices drawn from the ensemble d.
eigstat is a function of a square matrix argument whose value depends only on the eigenvalues of that matrix.
Usage
rangeigstat(SpikedWigner(2, 50), eigmax, 100)RandomMatrixDistributions.supercrit_dist — Functionsupercrit_dist(d::Union{MatrixDistribution, EigvalDist})Compute the approximate joint distribution of the supercritical eigenvalues of the ensemble d.
Limiting eigenvalue densities
RandomMatrixDistributions.MarchenkoPastur — TypeMarchenkoPastur(γ::Real)Marchenko-Pastur distribution, where 0 < γ ≤ 1.
The limiting spectral distribution of a p×p covariance matrix of n standard normal observations, where p/n → γ.
RandomMatrixDistributions.TracyWidom — TypeTracyWidom(β::Int)Tracy-Widom distribution with Dyson parameter β.
The limiting distribution of the largest eigenvalue of a GOE (β = 1), GUE (β = 2) or GSE (β = 4) matrix.
RandomMatrixDistributions.Wachter — TypeWachter(γ₁::Real, γ₂::Real)Wachter distribution, where 0 ≤ γ₂ < 1.
Let Σ₁ and Σ₂ be p×p covariance matrices of n₁ and n₂ standard normal observations respectively.
If p/n₁ → γ₁ and p/n₂ → γ₂, then Σ₁ Σ₂⁻¹ has a limiting spectral distribution of Wachter(γ₁, γ₂).