Library
RandomMatrixDistributions.EigvalDist
RandomMatrixDistributions.Jacobi
RandomMatrixDistributions.MarchenkoPastur
RandomMatrixDistributions.SpikedWigner
RandomMatrixDistributions.SpikedWishart
RandomMatrixDistributions.TracyWidom
RandomMatrixDistributions.Wachter
RandomMatrixDistributions.bulk_dist
RandomMatrixDistributions.randeigstat
RandomMatrixDistributions.randeigvals
RandomMatrixDistributions.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(γ₁, γ₂)
.