1

I have a point, P on an n-sphere (n=300) and I want to sample from a uniform distribution of points a given distance, d, from P. This distance is not critical. For example, if my sphere was the globe and my point was the north pole, then I want to create a uniform distribution of points along one of the lines of latitude - but for an n-sphere

Creating a uniform distribution of points on the n-sphere is straightforward using this method: https://mathoverflow.net/questions/24688/efficiently-sampling-points-uniformly-from-the-surface-of-an-n-sphere or How to generate uniformly distributed points on the surface of the 3-d unit sphere? - and I had considered just sampling a large number of points and rejecting anything that is not ~d from P - however I suspect this will be woefully inefficient.

Any suggestions welcome

seane999
  • 43
  • 4

1 Answers1

2

Here would be my general strategy:

  • Determine an orthogonal transformation $O$ that maps your given point $p$ to the "north pole" $(1, 0, 0, \ldots)$. The collection of points a distance $d$ from $p$ maps to the collection of points a distance $d$ from $Op$ (because $O$ is orthogonal). This collection is the longitude given by the equation $x_1 = \cos(d)$.
  • Identify the given longitude with the standard $n-1$ sphere $S^{n-1} = \{(x_2, x_3, \ldots, x_n) : x_2^2 + \cdots + x_n^2 = 1 \}$.
  • Sample a point $q'$ uniformly from $S^{n-1}$, and map it to the specified longitude. You mention you can already do this.
  • Set $q = O^{t}q'$, this your final sample point.
Matthew Drury
  • 33,314
  • 2
  • 101
  • 132