For n>3, the spiral can be further improved in terms of its potential
energy by ensuring a greater spacing between the two polar points and
their immediate neighbors, and then squeezing the remaining points
closer together.
In the original algorithm (2), the point index k is used to calculate
h as follows:
h(k) = -1 + 2 (k-1)/(n-1)
Here we propose using instead:
h(k) = -1 + 2 (k'-1)/(n-1)
where k' is defined as a linear function of k so that for:
  k = 2  :  k' = 2+p
  k = n-1:  k' = n-1-p
where p is a number for which the value 1/2 seems to be a good choice.
Summarizing, the modified algorithm, also including the radius
adjustment described in (1), may be stated like this:
Initialize:
  p = 1/2
  a = 1 - 2*p/(n-3)
  b = p*(n+1)/(n-3)
  r(1)     = 0
  theta(1) = pi
  phi(1))  = 0
Then for k stepping by 1 from 2 to n-1:
  k'       = a*k + b
  h(k)     = -1 + 2*(k'-1)/(n-1)
  r(k)     = sqrt(1-h(k)^2)
  theta(k) = arccos(h(k))
  phi(k)   = [phi(k-1) + 3.6/sqrt(n)*2/(r(k-1)+r(k))] (mod 2*pi)
Finally:
  theta(n) = 0
  phi(n)   = 0
Referring to the fractional improvement of the potential energy
defined in (1), but now letting E'(s,n) denote the measured energy of
the modified algorithm described here, these results were obtained:
    n    dE(-1,n)  dE( 0,n)  dE(+1,n)
    ---------------------------------
    4    0.258807  0.118277 -0.055751
    5    0.514698  0.383236  0.159281
    6    0.681686  0.641615  0.587628
    7    0.558039  0.510670  0.454153
    8    0.524154  0.410367  0.177721
    9    0.454853  0.298777 -0.062143
   10    0.418512  0.259737 -0.144682
   11    0.457363  0.321711 -0.029813
   12    0.490264  0.396416  0.197726
   13    0.479298  0.420625  0.360777
   14    0.469588  0.418675  0.388954
   15    0.480994  0.416766  0.331010
   16    0.480059  0.396306  0.225399
   17    0.458787  0.364193  0.125613
   20    0.468736  0.391200  0.194450
   25    0.467504  0.425176  0.380207
   30    0.447911  0.396361  0.246581
   50    0.429747  0.430728  0.491198
  100    0.394210  0.424880  0.506148
  200    0.352513  0.417850  0.583238
  500    0.223441  0.319617  0.617322
 1000    0.142754  0.236479  0.599659
 2000    0.086171  0.163851  0.564971
 5000    0.041311  0.092192  0.497960
10000    0.022382  0.055459  0.433520
20000    0.011245  0.030566  0.353323
The improvement can be illustrated in a very direct way by calculating
the smallest nearest neighbor Euclidean point-to-point distance
divided by the largest such distance:
-----------------------------------------
    n              dmin/dmax
         Ref. 2    Ref. 1    This posting
-----------------------------------------
    4    1.0000    1.0000    1.0000
    5    0.7071    0.7071    0.8660
    6    0.7071    0.7071    0.8321
    7    0.6442    0.6298    0.7814
    8    0.6192    0.6221    0.7680
    9    0.6042    0.6124    0.7551
   10    0.5939    0.6074    0.7475
   11    0.5865    0.6016    0.7399
   12    0.5807    0.5982    0.7373
   13    0.5774    0.5943    0.7310
   14    0.5793    0.5918    0.7273
   15    0.5758    0.5890    0.7252
   16    0.5728    0.5871    0.7212
   17    0.5703    0.5850    0.7183
   20    0.5686    0.5806    0.7123
   25    0.5626    0.5755    0.7057
   30    0.5583    0.5722    0.7021
   50    0.5562    0.5655    0.6947
  100    0.5509    0.5605    0.6865
  200    0.5530    0.5580    0.6834
  500    0.5488    0.5566    0.6816
 1000    0.5504    0.5561    0.6810
 2000    0.5465    0.5558    0.6807
 5000    0.5463    0.5557    0.6805
10000    0.5463    0.5556    0.6805
20000    0.5463    0.5556    0.6804
Actually, the ratio dmin/dmax can be brought closer to unity by
increasing the value of p; however, this causes an increase in the
potential energy.
1. Knud Thomsen: 'Generalized spiral points': a slight adjustment,
sci.math, Feb. 6, 2007.
http://groups.google.com/group/sci.math/browse_thread/thread/327a68f46940226e
2. Rakhmanov, Saff and Zhou: Minimal Discrete Energy on the Sphere,
Mathematical Research Letters, Vol. 1 (1994), pp. 647-662.
www.math.vanderbilt.edu/~esaff/texts/155.pdf
Best regards,
Knud Thomsen
Geologist
So, you put a point at the south and north poles and then space the other points along the spiral that connects the south and north poles. I have found that it works out nicely if you space the points along the sprial starting "half a step" from the south pole and ending "half a step" from the north pole. The slope of the spiral is set so that the distance (on the sphere) between turns of the spiral equals (approximately) the distance between points along the spiral. To wit:
h(k) = -1 + (2*k - 1)/n, k = 1, 2, ..., n
phi(k) = arccos(h(k))
theta(k) = sqrt(n*pi)*phi(k)
I have not calculated the potential energy for this set of points, but using some ad hoc measures I found it worked better than that of Rakhmanov, Saff, and Zhou.
- MO
Congratulations, Michael, the performance of your spiral is wonderful!
Below I have listed the fractional improvement in the potential
energies.
As you can see, there may be convergence problems; however, up to
n=1000 or so, it's a clear winner!
    n    dE(-1,n)  dE( 0,n)  dE(+1,n)
    ---------------------------------
    4    1.016003  0.998061  0.978941
    5    0.994863  0.983104  0.965851
    6    0.997821  0.987821  0.968939
    7    0.956292  0.954012  0.953839
    8    0.972033  0.970475  0.971314
    9    0.951089  0.950849  0.955824
   10    0.929004  0.931678  0.940895
   11    0.944520  0.944802  0.946556
   12    0.943331  0.942960  0.943346
   13    0.917583  0.921043  0.930969
   14    0.912444  0.917758  0.933775
   15    0.927196  0.932321  0.948033
   16    0.922047  0.927721  0.944901
   17    0.898189  0.906725  0.929243
   20    0.905544  0.912757  0.928173
   25    0.887739  0.900195  0.929920
   30    0.864829  0.880159  0.911971
   50    0.797741  0.828353  0.890343
  100    0.723661  0.773931  0.869622
  200    0.516838  0.616602  0.809971
  500    0.388356  0.498151  0.766601
 1000    0.181868  0.298455  0.672691
 2000    0.053534  0.151897  0.587207
 5000   -0.073779 -0.008272  0.459292
10000   -0.159125 -0.116398  0.339511
20000   -0.094132 -0.071488  0.289332
Best regards
Knud Thomsen
Clarification:
1. For n=4, one may get the impression that Michael's spiral points
perform better than the ideal configuration!
This is an artefact due to the fact that I have, as a matter of
convenience, used the smooth, approximate function from (2) for the
minimum energy.
2. I'm sure Michael's algorithm converges for n->infinity; however, it
may do so at a slower rate than mine or the original one of Rakhmanov
et. al.
Knud Thomsen
Knud,
Glad you liked the algorithm, but I must credit to
Bauer, Robert, "Distribution of Points on a Sphere with Application to Star Catalogs ", Journal of Guidance, Control, and Dynamics, January-February 2000, vol.23 no.1 (130-137).
What I particularly like about Bauer's algorithm is that it is deterministic (is there a better word?) rather than iterative. Bauer also defines some nice measures of uniformity based on the Voronoi diagram.
What does dE(-1,n), dE(0,n), and dE(+1,n) mean? I do not understand what the first argument represents.
- MO
First sorry about the late reply!
Correction: congratulations to Bob Bauer about his accomplishment and
thanks to Michael for making me aware of it!
Yes, the algorithm is not just being effective, it is beautifully
simple, too, the positioning of a particular point not depending on
that of its predecessor.
Michael, dE(s,n) is the improvement in potential energy (of type s)
obtained for our particular spiral over the one devised by Rakhmanov
et al., divided by the maximum possible such improvement, namely the
one provided by the theoretically optimal point configuration.
Regarding the definition of the energy types please see my original
posting:
http://groups.google.com/group/sci.math/browse_thread/thread/327a68f46940226e
Best regards,
Knud Thomsen
Let us denote the longitude as phi.
1. Rakmanov et al.:
dphi(h)/dh = 3.6/sqrt(n)/r (n/2)
           = 1.8 sqrt(n)/r
where the factor n/2 corrects for the non-infinitisimal step size.
2. Bauer:
dphi(h)/dh = sqrt(pi n) darccos(h)/dh
           = sqrt(pi n)/sqrt(1-h^2)
           = sqrt(pi n)/r
           = 1.772(..) sqrt(n)/r
Best regards,
Knud Thomsen
    n    dE(-1,n)  dE( 0,n)  dE(+1,n)
    ---------------------------------
    4    1.029355  1.008939  0.984461
    5    0.995598  0.983682  0.965456
    6    1.013700  1.003542  0.983430
    7    0.963860  0.961153  0.960249
    8    0.978428  0.975673  0.973855
    9    0.966625  0.964493  0.963916
   10    0.934881  0.936988  0.943605
   11    0.946011  0.945805  0.946071
   12    0.958207  0.956867  0.954656
   13    0.933802  0.935948  0.943261
   14    0.917211  0.921943  0.937058
   15    0.932295  0.936422  0.950096
   16    0.940226  0.943116  0.953898
   17    0.919972  0.925354  0.940490
   20    0.915948  0.921589  0.933867
   25    0.894147  0.905444  0.932603
   30    0.863723  0.878911  0.910160
   50    0.801400  0.830938  0.891700
  100    0.716472  0.767679  0.865553
  200    0.626588  0.702990  0.851920
  500    0.391312  0.500397  0.767565
 1000    0.247882  0.355191  0.699457
 2000    0.148632  0.237709  0.629668
 5000    0.070795  0.128808  0.534353
10000    0.038232  0.075659  0.455589
20000    0.019176  0.040852  0.365825
Best regards,
Knud Thomsen
Not sure what you mean by "problems with convergence". Bauer's points showed slightly greater "p=-1" and "p=0" potential than RSZ's for n > 5000, but Bauer's potential certainly did not diverge. Also, Bauer's "p=1" potential was better even for n=10000.
Which brings out a good point to consider further. What is the best measure for the distribution of points? Many have used potential energy as a measure of uniformity of points on a sphere, lower energy implying better uniformity. But there are other measures. For example, consider the variance in the area of the Voronoi cells surrounding each point. Lower variance implies better uniformity. Or the difference between the max and min Voronoi area. Using a measure based on the Voronoi diagram represents a more localized measure. Only the closest points to a given point play a role in the measure.
Of course, which measure is best depends on what you plan to do with the points. So how do you plan to use the set of points that you generate?
One final point, if I recall correctly RSZ put a point at the south and north poles, whereas Bauer puts points half a step away from the poles. Not sure that this is any better. Just pointing out the difference.
- MO
Many thanks for your comments, Michael.
As pointed out earlier in this thread, I do not doubt that the Bauer
spiral converges; its convergence just seemed a bit slow considering
its impressive performance for even relatively big values of n.
The main reason for my using the energy measure here is that my
discussion started in the context of the RSZ spiral, which was
specifically designed by the authors to have a low potential energy.
One reason I'm interested in a good point spiral is that I have found
it to be a very valuable component in an algorithm that generates
approximately uniformly distributed points on the surface of a 4D unit
hypersphere (these points can then be utilized as appr. uniformly
distributed orientation/rotations). Using the spiral repeatedly this
way is an interesting alternative to (for example) the recursive zonal
equal area method devised by Paul Leopardi (1).
It's correct that the RSZ spiral puts a point at each pole and then
spaces the remaining points evenly in between. I actually started this
thread because the RSZ spiral could be improved considerably by
increasing the distance between the polar points and their immediate
neighbors.
1. Paul Leopardi, "A partition of the unit sphere into regions of
equal area and small diameter", Electronic Transactions on Numerical
Analysis, Volume 25, 2006, pp. 309-327.
Best regards,
Knud Thomsen
Knud,
I am still not understanding what you mean by convergence. Could you try to explain more fully. You are comparing the energy of RSK to the energy of Bauer, seeing that Bauer's energy converges more slowly to RSK's than other algorithms and then are implying that Bauer's slow convergence to RSK is an undesirable trait.
Is convergence, fast or slow, to RSK a desirable feature?
Also, if what you want is uniformly distributed points, then I would indeed argue that that are better measures of uniformity than potential energy.
- MO
1. In my tables, I list: the difference in the energy of a particular
spiral from the optimum energy, as a fraction of the difference in the
energy of the original RSZ spiral from that same optimum energy.
More precisely, if
  E(s,n)    is the energy of original RSZ spiral
  E'(s,n)   is the energy of the particular spiral under discussion
(e.g. Bauer's spiral)
  f(s,n)    is the optimum energy, i.e. the energy of the optimal
point configuration, as approximated
            in the RSZ paper.
then my table lists the value:
dE(s,n) = (E(s,n)-E'(s,n)) / (E(s,n)-f(s,n))
Consequently, we have the following special cases:
  dE<0: The spiral under discussion is wose energy-wise than the RSZ
spiral
  dE=0: The spiral under discussion has the same energy as the RSZ
spiral
  dE=1: The spiral under discussion has the optimum energy.
2. I'm fully aware that there may be better criteria than potential
energy, depending on the exact application.
Best regards,
Knud Thomsen
Robert Bauer: Uniform Sampling of SO3. Presented at the Flight
Mechanics Symposium, 2001 June, Goddard Space Flight Center,
Greenbelt, Maryland.
Best regards,
Knud Thomsen