# Diaspora

## Chapter 17: Partition of Unity

### Mathematical details

The surface of a hypersphere in 5 dimensions can be described by the equation:

 x2 + y2 + z2 + u2 + w2 = R2 (1)

where x, y, z, u, w are the 5 spatial coordinates, and the origin of the coordinate system lies at the centre of the hypersphere.

Suppose this hypersphere is rotating as a rigid body. In general (in any number of dimensions) the velocity v of any point of a rotating body is given by the product of the body’s angular velocity matrix, Ω, with the vector for the point in question, r.

 v = Ω r (2)

The angular velocity matrix must be antisymmetric: Ωij = –Ωji. To see this, note that Ω is the derivative with respect to time of the linear transformation that takes any point from its original position at t = 0 to its rotated position; let’s call the matrix for this transformation M(t). Since the motion is rigid, if we take two basis vectors, ei and ej, and rotate them with M(t), the dot product of the resulting vectors (which measures the angle between them) must remain constant, and so the rate of change of this with respect to time must be zero.

 d/dt [(M(t) ei) · (M(t) ej)] = 0 (3a) d/dt [(M(t)kiek) · (M(t)rjer)] = 0 (3b) d/dt [M(t)kiM(t)kj] = 0 (3c) M(t)kiΩ(t)kj + Ω(t)kiM(t)kj = 0 (3d) Ω(0)ij + Ω(0)ji = 0 (3e) Ωij = –Ωji (3f)

Here we’ve used the Einstein summation convention of summing over all values of repeated indices, such as k and r. To get from (3d) to (3e), note that M(0) is just the identity matrix. In writing (3f) we’ve dropped any dependence on time from the angular velocity matrix, since we’re assuming that the body isn’t subject to external forces, leaving Ω constant.

In 5 dimensions, a completely general 5×5 antisymmetric matrix Ω will have 10 independent parameters, but it’s always possible to choose a basis that reduces it to the “canonical form”:

Ω =
 0 ω1 0 0 0 –ω1 0 0 0 0 0 0 0 ω2 0 0 0 –ω2 0 0 0 0 0 0 0
(4)

Here, the x and y coordinates have been chosen to lie in one plane of rotation, the z and u coordinates in the other, and the w coordinate lies perpendicular to both planes. To see why it’s always possible to choose a basis that puts the matrix in this form, first note that the determinant of any antisymmetric N × N matrix where N is odd must be zero. This is because det Ω = det ΩT, and the determinant is a sum of products of N terms which all change sign in the transpose for an antisymmetric matrix, yielding det Ω = –(det Ω) for N odd. This means that there must be at least one non-zero vector in the null space of Ω. Choosing this as the direction for the w coordinate, the axis of rotation, makes the last row and the last column of Ω all zeros, and reduces the problem to 4 dimensions. The 4-dimensional case is described in detail below.

Multiplying the vector for a general point, r = (x,y,z,u,w), by this canonical matrix for Ω yields a velocity vector of:

 v = (ω1y, –ω1x, ω2u, –ω2z, 0) (5)

So, for any point with x = y = z = u = 0, the velocity is zero. The set of points that meet this condition is just the w axis, the body’s axis of rotation. This intersects the surface of the hypersphere at w = ±R, giving two poles.

In the physically possible (but cosmologically unlikely) case that ω2 = 0, merely setting x = y = 0 is enough to make the velocity zero, and since the other three coordinates are free to take any values, they trace out a 3-dimensional volume. This volume intersects the hypersphere to form a single connected “pole”, the 2-sphere z2 + u2 + w2 = R2.

The two equatorial circles are {z = u = w = 0; x2 + y2 = R2}, where the speed at which the surface is moving is ω1R, and {x = y = w = 0; z2 + u2 = R2}, where the speed is ω2R.

### Mathematical details

In 4 dimensions, a completely general angular velocity matrix is described by 6 parameters:

A =
 0 a b c –a 0 d e –b –d 0 f –c –e –f 0
(6)

It’s always possible to re-orient the coordinate system in such a way that A is converted to the canonical form. One method of doing this is to find the eigenvectors of AA, the matrix product of A with itself. This is a real symmetric matrix, and hence it must have 4 orthogonal eigenvectors; it turns out that they come in two pairs, with eigenvalues –ω12 and –ω22. This makes sense geometrically: applying A to any vector that lies in one of the planes of rotation simply rotates that vector by 90° and multiples it by the appropriate ω, so applying A twice reverses the vector’s direction and multiplies it by ω2. So each of these pairs of eigenvectors spans one of the planes of rotation.

Another way to find the planes of rotation involves a linear operator called the Hodge dual; the Hodge dual of a matrix M is usually written as *M. In general, this operator takes an algebraic description of a geometrical object, such as a plane, and produces the corresponding description of the perpendicular object; in the context of 4-dimensional Euclidean geometry, it maps planes to other planes. For example, if the 4 coordinates we’re using are called x, y, z and u, the Hodge dual of the xy plane is the zu plane, and similarly the dual of the plane spanned by any two coordinates is the plane spanned by the other two. With the small added complication that you need to stick to a consistent orientation scheme (to decide between the two possible directions of rotation within each plane) this is enough for us to write the Hodge dual of the matrix A. We just treat A as a sum of rotations in all 6 coordinate planes, and take the duals of each of them; this amounts to swapping the xy coordinate of A with the zu coordinate, etc., and changing a few signs to keep the orientation consistent.

*A =
 0 f –e d –f 0 c –b e –c 0 a –d b –a 0
(7)

Now, what we want to do is write A as a sum of rotations in just two planes: one plane whose matrix we’ll call S, and the plane perpendicular to it, whose matrix will be *S. In other words, we want to find S, ω1, and ω2 such that:

 A = ω1S + ω2*S (8)

Taking the dual of this, and noting that applying the dual twice to anything just gives you back the original matrix, yields:

 *A = ω1* S + ω2S (9)

Multiplying Eqn (8) by ω1 and Eqn (9) by ω2 and taking the difference allows us to find S in terms of A, ω1 and ω2:

 S = (ω1A – ω2*A) / (ω12 – ω22) (10)

To find the values of ω1 and ω2, note that if S is applied to a vector perpendicular to its plane, the result must be zero, and this is only possible if the determinant of S is zero. Writing out S in full, and then computing its determinant, gives:

S =
1/(ω12 – ω22)
 0 ω1a–ω2f ω1b+ω2e ω1c–ω2d –ω1a+ω2f 0 ω1d–ω2c ω1e+ω2b –ω1b–ω2e –ω1d+ω2c 0 ω1f–ω2a –ω1c+ω2d –ω1e–ω2b –ω1f+ω2a 0
(11)
 det S = [ω2/(ω12 – ω22)]4  [D(ω1/ω2)2 + |A|2(ω1/ω2) + D]2 (12)

where |A|2 = (a2+b2+c2+d2+e2+f2), the square of the magnitude of A, and D = (b ec da f) is the square root of the determinant of A. Eqn (12) can be solved to find the value of ω12 that makes det S equal to zero; call this value r.

 r = [±√(|A|4 – 4 D2) – |A|2] / 2 D (13a) 1+r2 = |A|2 [|A|2 – √(|A|4 – 4 D2)] / 2 D2 (13b)

Then if S is normalised by requiring that |S|2 = |*S|2 = 1, ω1 and ω2 can be found individually. There’s a nice Pythagorean relationship between the squares of the magnitudes of the matrices involved, once A is split into dual parts, which makes it easy to find the individual rates of rotation.

 |A|2 = ω12|S|2 + ω22|*S|2 = ω12 + ω22 (14a) ω12 = |A|2 r2 / (1+r2) = [|A|2 – √(|A|4 – 4 D2)] / 2 (14b) ω22 = |A|2 / (1+r2) = 2 D2 / [|A|2 – √(|A|4 – 4 D2)] = [|A|2 + √(|A|4 – 4 D2)] / 2 (14c)

Choosing new coordinates that put A into canonical form then requires picking one pair of orthogonal vectors spanning the plane defined by S, and then another pair spanning the plane defined by *S. There are standard linear algebra techniques for doing this, starting with a pair of row or column vectors from each matrix.

Diaspora / Chapter 17: Partition of Unity (detailed) / created Monday, 3 August 1998
{"found_math": false, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0}