Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to solve the Thomson Problem, i.e we have $N$ repelling point charges on a (hyper)sphere of dimension $m$ and we want to determine which configuration gives the lowest energy.

We thus want to minimize $E=\sum_{i<j} ||x_i-x_j||^{-s} $ where $s$ is an integer, (generally taken to be equal to 1), and $x_i$ is the $i$th point.

I want to apply gradient descent to it (as part of a local optimization routien in a genetic algorithm), so I need the gradient of $E$, however $E$ depends on $N$ points, and each point has $m-1$ (hyper)spherical components. How could I calculate $\nabla E$ ?

share|cite|improve this question
Why $m-1$ components? The expression "a (hyper)sphere of dimension $m$" is slightly ambiguous; it might refer to $S^m\subset\mathbb R^{m+1}$ or to $S^{m-1}\subset\mathbb R^m$, but in neither case are there $m-1$ components. Or do you mean $m-1$ (hyper)spherical coordinates? – joriki Dec 23 '12 at 14:57
Considering how messy the computation in hyperspherical coordinates is likely to be, I would do the following: at each step, move each $x_i$ by a small multiple of Euclidean gradient and then project them back onto the sphere. Should be about the same thing. – user53153 Dec 23 '12 at 21:40

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.