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 normal distribution with
mean 0 and variance
,
and variate
independently from an exponential distribution
with parameter
.
Then the distribution of points
|
(1)
|
is uniform over the -dimensional
unit ball. Note however that in practice, computation
of
points inside a
-dimensional
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
function 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).