Take the 2-minute tour ×
MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.

A determinantal process on the line is a random collection of points on $\mathbb{R}$ such that the probability of $x_1, \dots, x_n$ lying on the random set is $\det (K(x_i, x_j))_{(i,j)}$. Examples of determinantal processes include the eigenvalues of random Hermitean matrices with Gaussian entries and non-intersecting random walks. I'm interested in sampling random points on the line according to the sine kernel $k(x,y) = \frac{\sin(x-y)}{\pi(x-y)}$ or the Airy Kernel (see p 6 of the slides) which are related to the Gaussian Unitary Ensemble.

I thought there are algorithms for sampling from general discrete and continuous determinantal processes. Maybe it's be better to sample a processes directly using Coupling from the Past and other procedures.

Mainly,

  • how does one sample points on the real line with respect to the sine kernel?
  • is there a general way of sampling determinantal processes based or arbitrary kernel?

It is known these types of processes demonstrate repulsion (compared to the Poisson process) and I would like to demonstrate this in the classroom.

share|improve this question
add comment

1 Answer

For a general algorithm for simulating points from a determinantal process, see Algorithm 18 in the paper "Determinantal Processes and Independence" by Hough, Krishnapur, Peres and Virag:

arXiv link

This algorithm was actually implemented by some physicists at Princeton (I believe) but I am not sure if their code is publicly available.

For the sine kernel, depending on how many points you want to sample, Matlab is pretty good at computing eigenvalues of a large GUE matrix in a decently short amount of time. That would require much less work than implementing the algorithm above.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.