Uniform Distribution of Random Points on a SphereDate: 07/14/2005 at 12:54:23 From: Pradip Subject: random points on a sphere with uniform distribution Is there a method to pick random points on a sphere which are uniformly distributed on the sphere? I've tried it by selecting theta between 0 and pi and phi between 0 and 2*pi, but I get a higher density of points near the poles. Date: 07/15/2005 at 07:05:05 From: Doctor George Subject: Re: random points on a sphere with uniform distribution Hi Pradip, Thanks for writing to Doctor Math. You are on the right track with wanting to select angles. I may be using different angle conventions than you are, so check carefully. The surface area of a sphere is 4*pi*r^2, so the probability density function for uniform density over a sphere is 1 / (4*pi*r^2) This does not really help us generate a random variable because it does not tell us what to do with x, y and z. We know that we want x^2 + y^2 + z^2 = r^2, so transforming to spherical coordinates (rho, phi, theta) looks like a helpful thing to do. Letting 0 <= phi < pi, 0 <= theta < 2*pi, we have x = rho sin(phi) cos(theta) y = rho sin(phi) sin(theta) z = rho cos(phi) We need to use standard transformation techniques on the cummulative density function, like this. Int{Int{Int{1/(4*pi*r^2) dxdydz}}} Int{Int{Int{1/(4*pi*r^2) rho^2 sin(phi) d(rho)d(phi)d(theta)}}} Now factor the integrand to generate independent densities Int{Int{Int{[1/(2*pi)][sin(phi)/2][rho^2/r^2]d(rho)d(phi)d(theta)}}} This leaves us with f(theta) = 1/(2*pi) f(phi) = sin(phi)/2 f(rho) = rho^2 / r^2 Since we are integrating over the surface rho = r f(rho) = 1 Now we just need to randomly generate theta and phi from their cumulative densities. F(theta) = theta / (2*pi) F(phi) = [1 - cos(phi)] / 2 Let u1 = F(theta) and u2 = F(phi) be independent uniform random variates on [0,1). If we solve for theta and phi we get theta = 2*pi*u1 phi = acos(1 - 2*u2) Now use these random variates to generate x, y and z. Does that make sense? Please let me know how this works for you. Write again if you need more help. - Doctor George, The Math Forum http://mathforum.org/dr.math/ |
Search the Dr. Math Library: |
[Privacy Policy] [Terms of Use]
Ask Dr. Math^{TM}
© 1994-2013 The Math Forum
http://mathforum.org/dr.math/