# Matrices with IID Entries

## Diagonal Matrices

RandomMatrix.randDiagonalFunction
randDiagonal(d, n)

randDiagonal(n) 
• d : default Normal(0，1), entry distribution
• n : dimension

Examples

Generates a 3 by 3 diagonal matrix, with non-zero elements from Normal(0,1)

randDiagonal(3)

3×3 Diagonal{Float64, Vector{Float64}}:
0.440359   ⋅         ⋅
⋅        1.94832    ⋅
⋅         ⋅       -0.52536

Generates a 5 by 5 diagonal matrix, with non-zero elements from Poisson(2)

randDiagonal(Poisson(2),5)

5×5 Diagonal{Int64, Vector{Int64}}:
1  ⋅  ⋅  ⋅  ⋅
⋅  0  ⋅  ⋅  ⋅
⋅  ⋅  0  ⋅  ⋅
⋅  ⋅  ⋅  3  ⋅
⋅  ⋅  ⋅  ⋅  3
source

## Triangular Matrices

RandomMatrix.randTriangularFunction
randTriangular(d , n ;  diag , Diag, upper )

randTriangular(n;diag, upper)
• d : entry distribution
• n : dimension
• diag : default diag = d, diagonal entry distribution
• Diag : default Diag = true, true includes diagonal, false with diagonal entries 0
• upper : default upper = true, true gives upper triangular, false gives lower triangular

Examples

Generate an upper triangular matrix with entries Standard Normal

randTriangular(3)

3×3 UpperTriangular{Float64, Matrix{Float64}}:
-0.572757  -0.459518   -1.60622
⋅         0.0216834  -0.416529
⋅          ⋅         -1.00807

Generate a 3 by 3 strictly lower triangular matrix, with nonzero entries uniform from $\{1,2,3\}$

randTriangular(1:3,3,upper=false,Diag=false)

3×3 LowerTriangular{Int64, Transpose{Int64, Matrix{Int64}}}:
0  ⋅  ⋅
3  0  ⋅
3  2  0
source

## Full Matrices

RandomMatrix.randMatrixFunction
randMatrix(d::D, n::Int, m = n::Int; norm = false::Bool) where D<:S

randMatrix(n::Int, m = n::Int; norm = false::Bool)
• d : entry distribution
• n,m : default m = n , dimensions
• norm : default false, if norm set to true, then the matrix will be normlaized with $\operatorname{min}(n,m)^{-1/2}$.

Examples

Generates a 2 by 2 random matrix with entries from the Standard Gaussian.

randMatrix(2)

2×2 Matrix{Float64}:
1.74043  -1.30317
0.72765   0.639943

Generates a 3 by 2 random matrix with entries uniformly from {1,2,3,...,10}.

randMatrix(1:10,3,2)

3×2 Matrix{Int64}:
1  3
6  4
10  1

Generate a normalized random 2 by 2 Matrix with entries Poisson(2) rvs. Need to import the Distributions package for Poisson(2)

using Distributions
randMatrix(Poisson(2),2,norm = true)

2×2 Matrix{Float64}:
1.41421   0.0
0.707107  1.41421
source

## RMT: Circular Law

Let $\left(X_{n}\right)_{n=1}^{\infty}$ be a sequence of $n \times n$ matrix ensembles whose entries are i.i.d. copies of a complex random variable $x$ with mean $0$ and variance $1$. Let $\lambda_{1}, \ldots, \lambda_{n}, 1 \leq j \leq n$ denote the eigenvalues of $\frac{1}{\sqrt{n}} X_{n}$. Define the empirical spectral measure of $\frac{1}{\sqrt{n}} X_{n}$ as

$$$\mu_{\frac{1}{\sqrt{n}} X_{n}}(A)=n^{-1} \#\left\{j \leq n: \lambda_{j} \in A\right\}, \quad A \in \mathcal{B}(\mathbb{C})$$$

The circular law asserts that almost surely (i.e. with probability one), the sequence of measures $\mu \frac{1}{\sqrt{n}} X_{n}$ converges in distribution to the uniform measure on the unit disk.

For reference, see for example the paper by Terence Tao and Van Vu: RANDOM MATRICES: THE CIRCULAR LAW