Loading [MathJax]/jax/output/HTML-CSS/jax.js

Wednesday, November 25, 2015

Illustration of Dyson Brownian Motion

The Dyson Brownian motion is defined as Xt+dt=Xt+Hdt with H a random matrix from the Gaussian Unitary Ensemble of n×n Hermitian matrices. It is then well-known that the dynamics of the eigenvalues λi(t) of Xt is described by the process dλi=ji1λiλjdt+dBi where B1,,Bn are independent Brownian processes. In this post I illustrate the process (2) numerically.
I illustrate (2) in the case n=5. The Mathematica code I use is
Clear[RandomMatrixGUE] 
(* This code calculates a random matrix from the GUE *) 
RandomMatrixGUE[NN_] := Module[{A, B, H}, 
A = RandomVariate[NormalDistribution[], {NN, NN}]; 
B = RandomVariate[NormalDistribution[], {NN, NN}]; 
H = 1/2 (A + Transpose[A]) + I / 2 (B - Transpose[B]); 
H]

(* Simulates a path of the Dyson Brownian motion 
in: 
The dimension of the matrices is size x size. 
T is the maximum time to simulate. 
NSteps is in how many steps you simulate. 
out: a list of matrices X_t *)
SimulateOnePath[Size_, T_, NSteps_] := Module[{dt = T/NSteps , path}, 
path = Table[RandomMatrixGUE[Size] Sqrt[dt], {NSteps}]; 
path = Accumulate[path]; 
path = Prepend[path, ConstantArray[0, {Size, Size}]]; 
path]

(* plot all eigenvalues of the path X_t *) 
(* the code contains an ugly double loop *) 
PlotEigenValues[X_, dt_] := Module[{t = 0 , i, j, lambdapath, eig, NSteps = Length[X], n = Length[X[[1]]]}, 
lambdapath = ConstantArray[{}, n]; 
For[i = 1, i <= NSteps, i++, 
eig = Eigenvalues[X[[i]]]; 
eig = Sort[eig]; 
For[ j = 1, j <= n, j++, lambdapath[[j]] = Append[lambdapath[[j]], {t, eig[[j]]}]]; 
t = t + dt]; 
ListPlot[lambdapath, Joined -> True]] 

T = 1; 
NSteps = 1000; 
X = SimulateOnePath[5, T, NSteps]; 
PlotEigenValues[X, T/NSteps] 

This produces the following graph.
Dyson Brownian Motion
The eigenvalues λ1,λ2,,λ5 as function of time
One can see in the above graph that the paths for λ1,λ2,,λ5 never cross. This is because the drift 1λiλj becomes very large if the eigenvalues λi and λj become close. In the random matrix literature, the phenomenon is called eigenvalue repulsion. Some physicists say that the eigenvalues behave as fermions. In contrast, independent Brownian motions Bi often cross, see graph below.
Brownian motion
5 paths of the Brownian motion


Further reading
  1. A proof of (2) follows quite easily if one uses 1st and 2nd order perturbation formulas from quantum mechanics on the expansion λi(Xt+Hdt). Details can for example be found in this blog post by Terence Tao.
  2. In the next post I perform a similar simulation for the Ornstein-Uhlenbeck process dXt=αXtdt+Hdt There the repulsive effect is even more striking because the process tries to move Xt back to 0 if α>0 .

No comments:

Post a Comment