How do I find a set of unit vectors with a given angle between each other?

70 Views Asked by At

I am coming from a biology/chemistry background and trying to make some math connections.

How would I go about solving for $n$ unit vectors (same magnitude) which are all equally spaced from each-other in a given space? Such that the angle between all $n$ vectors is maximized?

For example, say I wanted to find $4$ unit vectors which have equal angle from each-other in $\mathbb{R}^{3}$.

I know the angle here would be $\approx 109.5$ degrees per the bond angle of a tetrahedron (https://en.wikipedia.org/wiki/Tetrahedral_molecular_geometry) and understand a bit about the math involved in this case (vectors are the vertices on a cube centered at 0,0,0). But would someone be able to guide me toward how this can be generalized?

If anyone could also point me to relevant topics and sources, that would be great.

Thank you in advance.

1

There are 1 best solutions below

2
On

If you want all angles between 'adjacent' vectors to be the same and also maximized, it turns out that the number of vectors must be 2,3,4,6,8,12,or 20 (where two vectors are adjacent if there are no other vectors strictly closer to either). The vectors will end up representing the vertices of a platonic solid (like the tetrahedron you mentioned), except in the cases for 2 and 3.

In the slightly more general case where you just want the maximum angle between any pair of 'adjacent' vectors to be minimized, I'm fairly certain that this is not usually solvable. You can approximate solutions, though.

One resource I've found is here: (http://neilsloane.com/packings/index.html#I). You'll find a chart that gives the maximal angle for n points, up to 130 points in 3 dimensions. The first line in the chart shows that the maximal angle for 4 points is approximately 109.5 degrees, as you've already found.