Nearest neighbour distances between random points

5 views (last 30 days)
I am trying to model an experiment where molecules are randomly distributed on a 2D surface. What I want to know is:
  1. How are the nearest neighbour distances between the molecules distributed?
  2. How does the distribution vary with the areal density of molecules?
In other words, for a range of densities (molecules/μm²) how do I calculate the mean/median distance between each molecule and its nearest neighbour? I thought this should be a trivial problem, but from what I have found so far it looks to be more involved than I thought. I'm an experienced MATLAB user but not a mathematician…

Accepted Answer

Walter Roberson
Walter Roberson on 8 Apr 2014
This sounds like a job for Monte Carlo methods.
repeat over the range of densities
repeat a number of times
use the current density to generate a random set of particle locations
find the nearest neighbour distances
measure the mean and median NN distances, probably the standard deviation, and record
end loop
create some kind of ensemble representation for the current density
end loop
You will need to pay attention to whether the locations are uniformly distributed or normally distributed or power law or whatever.
Doing a theoretical modeling is probably possible, but I do not know how to do it.
  2 Comments
Image Analyst
Image Analyst on 8 Apr 2014
Yep. 2D Poisson process, like here. We went through the math in graduate school but the exact formulas and properties are a bit much to memorize. But there's always wikipedia for those with imperfect memory (I guess that's most of us).
Alex Knight
Alex Knight on 9 Apr 2014
Edited: Alex Knight on 9 Apr 2014

Thanks Walter. I already have most of the code for the Monte Carlo modelling. I guess I don't need to model at different densities; more efficient to calculate distances for the same number of points in a unit square and then scale accordingly.

Image Analyst - I can see that the number of points in a given area will follow a Poisson distribution. But how do I get from that to a nearest neighbour distance?

Edit: this might be the answer: "The probability of locating the N th neighbor of any given point, at some radial distance r is:

Thanks for all the pointers!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!