Ball point picking is the selection of points randomly placed inside a ball. random points can be picked in a unit
ball in the Wolfram Language using
the function RandomPoint[Ball[], n].
Pick variates ,
...,
independently from a standard normal distribution
and variate
independently from an exponential distribution
with parameter
.
Then the distribution of points
(1)
|
is uniform over the unit -ball. Note however that in practice, computation of
points inside a unit
-ball may still be slower using this technique than computing
additional points (e.g., by a factor of
for
and
for
) inside an
-cube of edge length 2 and discarding the ones with norm greater
than 1.
This result is a special case of a beautiful general result described by Barthe (et al. 2005) which may be stated as follows. For and a sequence of real numbers
, define the
-norm as
(2)
|
The space of all infinite sequences with is then denoted
, and the space
equipped with quasi-norm
is denoted
. Finally, the unit ball of
is defined as
.
Now, pick ,
...,
independently with probability density given by
(3)
|
where
is the gamma function, and
an independent random variate from an exponential
distribution with mean 1. Then the random vector
(4)
|
is uniformly distributed over the unit ball of (Barthe et al. 2005).