• Welcome to the Internet Infidels Discussion Board.

The Math Thread

Now the affine Coxeter groups. I suspect that all of them are lattice groups, and I will try to prove that for all but E6', E7', and E8'.

A lattice group is a kind of space group, a group with elements (R,D), (rotoreflection, offset), where some point x gets acted on it as follows:
x' = R.x + D

For a lattice group, D = D(R) + (lattice)
where the lattice is sum over e of e*n(e)
for lattice unit vectors e.

A space group can be turned into a matrix group by adding a dimension: {{R, D}, {0, 1}}

Let us see how this works on I2(infinity).

First, consider i2(n). Its elements are:
Rotations: {{cos(a), -sin(a)}, {sin(a), cos(a)}}
Reflections: {{cos(a), sin(a)}, {sin(a), -cos(a)}}
where a = 2pi*k/n
This choice makes them orthogonal, but one can make non-orthogonal versions with diag({1,1/w}).element.diag({1,w})
That gives us
Rotations: {{cos(a), -w*sin(a)}, {sin(a)/w, cos(a)}}
Reflections: {{cos(a), w*sin(a)}, {sin(a)/w, -cos(a)}}

Set w = n/(2pi) and take n -> infinity. This gives us
Rotations: {{1, -k}, {0, 1}}
Reflections: {{-1, k}, {0, 1}
That is the space-group form, and it is the symmetry group of a 1D lattice.


Turning to G2', I find these root elements:
{{1, 0, 0}, {0, -1, 0}, {0, 0, 1}
{{1/2, sqrt(3)/2, 0}, {sqrt(3)/2, -1/2, 0}, {0, 0, 1}},
{{-1, 0, n}, {0, 1, 0}, {0, 0, 1}}

It has these lattice vectors
{1,0}
{1/2,sqrt(3)/2}

The group is for a triangular / hexagonal lattice.

For F4', I find these root elements:
{{0, 1, 0, 0, 0}, {1, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 0, 1}}
{{1, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 1, 0, 0, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 0, 1}}
{{1, 0, 0, 0, 0}, {0, 1, 0, 0, 0}, {0, 0, -1, 0, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 0, 1}}
{{1/2, -1/2, -1/2, -1/2, 0}, {-1/2, 1/2, -1/2, -1/2, 0}, {-1/2, -1/2, 1/2, -1/2, 0}, {-1/2, -1/2, -1/2, 1/2, 0}, {0, 0, 0, 0, 1}}
{{1, 0, 0, 0, 0}, {0, 1, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, -1, n}, {0, 0, 0, 0, 1}}

It has these lattice vectors
{1,0,0,0}
{0,1,0,0}
{0,0,1,0}
(1/2)*{1/2,1/2,1/2,1/2}
A sort of body-centered hypercube
 
Last edited:
Turning to C'(n), its root elements are (C(n) root elements, 0) with an extra one:
(diag({-1,1,1,1,...}), {m,0,0,0,...})

This makes a hypercube lattice:
{1,0,0,...}
{0,1,0,...}
{0,0,1,...}

For B'(n), its root elements are (B(n) root elements, 0) with an extra one:
({{0,-1,0,0,...},{-1,0,0,0,...},{0,0,1,0,...},{0,0,0,1,...},...}, {m,m,0,0,...})

This make a sort of face-centered hypercube lattice:
{1/2,1/2,0,0,...}
{0,1,0,0,...}
{0,0,1,0,...}
{0,0,0,1,...}

For D'(n), its root elements are (D(n) root elements, 0) with an extra one like for B'(n). Its lattice is the same as for B'(n).

I have found A'(n) to be rather difficult, but I have found a solution.
Its root elements are (A(n) root elements, 0) with an additional one for matrix size (n+1):
A reflection matrix with 1 for (2,2) to (n,n) and also (1,n+1) and (n+1,1), with all the rest zero, and an offset vector that is {m, 0, 0, ..., 0, -m}

This makes this rather odd lattice:
{1,-1,0,0,...}
{0,1,-1,0,...}
{0,0,1,-1,....}


So I end my tour of Coxeter groups.
 
And more lighter side of math. Zeta and eta function fractals produce organic shapes- they don't look like the fractals I'm familiar with, which look more discrete.

orchidian-19 small.jpgvines-11small.jpgmagiccactidemo1-6.0007small.jpgthingy small.jpgmagiccactidemo1-7 small.jpgmold-5.00225 small.jpgmold-6.00225 small.jpgorchidian-21 small.jpgmold-9.00225 small.jpg
 

Attachments

  • magiccactidemo1-7.jpg
    magiccactidemo1-7.jpg
    41.1 KB · Views: 3
  • magiccactidemo1-6.00075.jpeg
    magiccactidemo1-6.00075.jpeg
    43.2 KB · Views: 3
  • mold-5.00225.jpeg
    mold-5.00225.jpeg
    99.2 KB · Views: 3
  • mold-8.00225.jpeg
    mold-8.00225.jpeg
    39.6 KB · Views: 3
  • orchidian-19.jpg
    orchidian-19.jpg
    50 KB · Views: 3
  • orchidian-21.jpg
    orchidian-21.jpg
    61.5 KB · Views: 3
  • vines-11.jpeg
    vines-11.jpeg
    51.1 KB · Views: 3
  • mold-2.00225.jpeg
    mold-2.00225.jpeg
    11.6 KB · Views: 3
Having seen the term "semidirect product" in group theory, I've decided to work it out with the help of  Semidirect product.

A direct product is easy. Consider group G = G1 * G2. Every element of G is some combination (element of G1, element of G2), where:
(a1,b1)*(a2,b2) = (a1*a2,b1*b2)

Now to semidirect ones. Inner ones first. Consider group G with a subgroup H and a normal subgroup N that share only the identity. Then G is a semidirect product of the two, if every element of it has form (element of H)*(element of N) or else (element of N)*(element of G). This is equivalent to H being isomorphic to the quotient group G/N, with each element of H corresponding to some coset of N.

An outer one has form (element of H, element of N) with this multiplication law:
(ah,an) * (bh,bn) = (ah*bh, an*cjg(ah,bn))
where group-element conjugate operation cjg(y,x) = y*x*y-1

Multiply the two outer-product parts together: (an*ah*bn*ah-1)*(ah*bh) = (an*ah)*(bn*bh) -- like an inner one.

I'll illustrate with an example.

Sym(3) = Dih(3) is the semidirect product of Z2 and Z3. I'll illustrate with permutations. 231 * 213 = 132. Identity = 123, of course.

G = 123, 132, 213, 231, 312, 321
N = 123, 231, 312
H = 123, 213
G elements as H ones * N ones, N ones * H ones
123 = 123 * 123
132 = 213 * 312 = 231* 213
213 = 213 * 123 = 123 * 213
231 = 123 * 231 = 231 * 123
312 = 123 * 312 = 312 * 123
321 = 213 * 231 = 312 * 213

N 's cosets and corresponding H elements:
123, 231, 312 -- 123
132, 213, 321 -- 213
 
Now the affine Coxeter groups. I suspect that all of them are lattice groups, and I will try to prove that for all but E6', E7', and E8'.

A lattice group is a kind of space group, a group with elements (R,D), (rotoreflection, offset), where some point x gets acted on it as follows:
x' = R.x + D

For a lattice group, D = D(R) + (lattice)
where the lattice is sum over e of e*n(e)
for lattice unit vectors e.

A space group can be turned into a matrix group by adding a dimension: {{R, D}, {0, 1}}

Let us see how this works on I2(infinity).

First, consider i2(n). Its elements are:
Rotations: {{cos(a), -sin(a)}, {sin(a), cos(a)}}
Reflections: {{cos(a), sin(a)}, {sin(a), -cos(a)}}
where a = 2pi*k/n
This choice makes them orthogonal, but one can make non-orthogonal versions with diag({1,1/w}).element.diag({1,w})
That gives us
Rotations: {{cos(a), -w*sin(a)}, {sin(a)/w, cos(a)}}
Reflections: {{cos(a), w*sin(a)}, {sin(a)/w, -cos(a)}}

Set w = n/(2pi) and take n -> infinity. This gives us
Rotations: {{1, -k}, {0, 1}}
Reflections: {{-1, k}, {0, 1}
That is the space-group form, and it is the symmetry group of a 1D lattice.


Turning to G2', I find these root elements:
{{1, 0, 0}, {0, -1, 0}, {0, 0, 1}
{{1/2, sqrt(3)/2, 0}, {sqrt(3)/2, -1/2, 0}, {0, 0, 1}},
{{-1, 0, n}, {0, 1, 0}, {0, 0, 1}}

It has these lattice vectors
{1,0}
{1/2,sqrt(3)/2}

The group is for a triangular / hexagonal lattice.

For F4', I find these root elements:
{{0, 1, 0, 0, 0}, {1, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 0, 1}}
{{1, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 1, 0, 0, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 0, 1}}
{{1, 0, 0, 0, 0}, {0, 1, 0, 0, 0}, {0, 0, -1, 0, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 0, 1}}
{{1/2, -1/2, -1/2, -1/2, 0}, {-1/2, 1/2, -1/2, -1/2, 0}, {-1/2, -1/2, 1/2, -1/2, 0}, {-1/2, -1/2, -1/2, 1/2, 0}, {0, 0, 0, 0, 1}}
{{1, 0, 0, 0, 0}, {0, 1, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, -1, n}, {0, 0, 0, 0, 1}}

It has these lattice vectors
{1,0,0,0}
{0,1,0,0}
{0,0,1,0}
(1/2)*{1/2,1/2,1/2,1/2}
A sort of body-centered hypercube

You are well over my head...
 
Now for a  Wreath product. Consider a group G and its automophism group A = Aut(G). That group's wreath product is (a,g) where a is in A and g in G. It has this multiplication law:

(a1,g1) * (a2,g2) = (a1*a2, g1*a1(g2))

where a1(g2) is a1 acting on g2 to return another element of G.

Much like the outer form of the semidirect product:
(h1,n1) * (h2,n2) = (h1*h2, n1*cjg(h1,n2))

In fact, that's a subgroup of the group's wreath product, taking only the g's in N and the a's for inner automorphisms that use h's in H. Inner automorphism of a group: A(G), where A(g) = cjg(a,g) = a*g*a-1

-

The wreath product's identity is (e,e), and the inverse of (a,g) is (a-1,a-1(g-1) = (a-1,(a-1(g))-1)

Let us now try the conjugate operation. In general, it gives a rather complicated result, but let's try it on an element with an identity automorphism:
cjg( (ax,gx), (e,g) ) = (e, gx*ax(g)*gx-1)

So the subgroup (e,g) is a normal subgroup of the wreath product. Much the same is true of subgroups of the wreath product, where the g in (e,g) need not range over the whole group.

So the quotient group of the wreath product by the identity-automorphism subgroup is the group of automorphisms, and that is also true of its subgroups.

-

Here is a wreath product: the symmetry group of the n-dimensional cross-polytope. It is a matrix group whose elements are permutations of the rows of a diagonal matrix whose diagonal elements are +1's and -1's. Its order is thus 2n*n!.

It is the wreath product of the group (Z2)n, a group with its automorphisms being permutations of the individual Z2's in it. The Z2's are the {1,-1} sets under multiplication.
 
For what values of x>0 is the function log(floor(x))-floor(log(floor(x))) furthest from .5?

For what natural numbers x (x=1 or 2 or 3.....) is f(x)= log(x) - floor(log(x)) furthest from .5?

Is there a function that tells you the next x that is furthest from .5?
 
For what values of x>0 is the function log(floor(x))-floor(log(floor(x))) furthest from .5?

For what natural numbers x (x=1 or 2 or 3.....) is f(x)= log(x) - floor(log(x)) furthest from .5?

Is there a function that tells you the next x that is furthest from .5?

There is no 'furthest'. ln(n) is transcendental for integers n > 1, and for any epsilon > 0, there is an n such that ln(n) is within epsilon of an integer. Pick any integer M, and take n to be the nearest integer to eM. Then ln(n) - floor(log(n)) is approximately an integer, with an error less than around e-M.
 
I'd think it would be 1, but whatever. :cheeky: I am so immature.
 
Last edited:
I'll now find out how to construct a regular n-dimensional simplex. That is the general polytope with (n+1) points that are fully connected. The first ones are:

line segment, triangle, tetrahedron, ...

Let all the vertices have separation 1 from each other, and distance r(n) from the origin. The origin is also average of the vertices' positions. I construct the n-D simplex recursively. I take the (n-1)-D one, append the coordinate value -r(n)/n, and I add a vertex at 0's for the first n-1 dimensions and r(n) for the final one. The -r(n)/n is so that the average of the vertices' positions stays at the origin.

Then, 1 = ((n+1)/n*r(n))2 + r(n-1)2

giving us r(n) = n/(n+1) * sqrt( 1 - r(n-1)2 )

Starting at n = 2, the first few values are 1/2, sqrt(3)/3, sqrt(6)/4, sqrt(10)/5, ...

So in general, r(n) = sqrt( (n-1)/(2n) )
 
Now for simplexes' symmetry groups.

The n-simplex symmetry group is Sym(n+1), the group of all possible permutations of the vertices. Pure rotations are Alt(n+1), all possible even permutations, those that can be formed from even numbers of interchanges. These groups can be manifested as permutations of the columns of the (n+1)*(n+1) identity matrix, and here is how to get from (n+1)-D to n-D.

One uses n*n matrices D(P) with this form:
D(P)ij = - (2*sqrt(n+1) + n + 2) / n2 * (1 - Pxx) + (sqrt(n+1) + 1) / n * (Pix + Pxj) + Pij

where P is a (n+1)*(n+1) permutation matrix, with indices 1, 2, ..., n, x.
One can replace sqrt(n+1) with - sqrt(n+1).

I have tested it for 1D, 2D, and 3D, checking against 2D and 3D values found in other ways. For 1D, it was simple: two 1*1 matrices containing 1 and -1 respectively.

In general, det(P) = 1 for an even permutation and -1 for an odd one, and det(D(P)) = det(P).
 
Do you have a formula for coordinates (using orthogonal basis) of equidistant points on an nsphere, or do you just know the distance from the origin of the points? I should look at post 510...
 
Do you have a formula for coordinates (using orthogonal basis) of equidistant points on an nsphere, or do you just know the distance from the origin of the points? I should look at post 510...
Kharakov, I gave an algorithm in my post for finding the points' coordinates. It's a recursive one, finding each set of points from the previous-dimension set and an additional one.

For n points, a simplex has r(n) = sqrt(n*(n-1)/2)/n and b(n) = - r(n)/(n-1)

An n-simplex's points x can e worked out from an (n-1)-simplex's points as follows:

For each vertex location x in the (n-1)-simplex, the n-simplex gets a point (to x append b(n))
The n-simplex gets an additional point, (to ((n-2) zeros) append r(n))

For n = 1, the simplex has one zero-dimensional point: {}

For n = 2, r(n) = 1/2 and b(n) = -1/2.
For the first point, (to {} append -1/2) = {-1/2}
For the second point, (to (zero 0's = {}) append 1/2) = {1/2}

For n = 3, r(n) = sqrt(3)/3 and b(n) = - sqrt(3)/6
For the first point, (to {-1/2} append -sqrt(3)/6) = {-1/2, -sqrt(3)/6}
For the second point, (to {1/2} append -sqrt(3)/6) = {-1/2, -sqrt(3)/6}
For the third point, (to (one 0 = {0}) append sqrt(3)/3) = {0, sqrt(3)/3}

...

Kharakov, if you have not already done so, I suggest getting some computer-algebra software and writing a program that implements this algorithm.
 
An algorithm that gives the simplex points in different vertices is, for n vertices,

For (n-1) of the vertices: (identity matrix)(n-1) - 1/(n-1)*(1 + 1/sqrt(n))
For the remaining vertex: 1/sqrt(n)*(vector of (n-1) 1's)

This also works if one changes the sign of sqrt(n).
 
As an alternative to the recursive approach, you can note that there is an n-simplex laying really nicely in n+1 space. Specifically, the vertices are just the unit vectors in the coordinate directions e1, e2, ..., en+1 (corresponding to a slice of the hypercube).

If you wanted the n+1 simplex in n+1 space, you can include the point with all coordinates \(\frac{1 - \sqrt{n+1}}{n}\). To get the simplex vertices on the unit sphere, subtract the centroid and scale appropriately. Should work out to a nice explicit formula.
 
Thanks. I was actually wondering if there was a general formula for equidistant points on a 2sphere, and there isn't.

Here is Loren's code:
Code:
fpprintprec:4$
r(n):=sqrt((n-1.0)/(n*2));
b(n):=-1.0/(sqrt(2.0*n*(n-1)));
vert(n):=[k:n,declare(k,integer),
    array(rn,k),array(bn,k),
for i:2 thru n do[
        rn[i]:r(i),
        bn[i]:b(i)
    ],
for v:1 thru n do[
        kill (vertices),
        vertices:sconcat("  ","bloop    :"),
        for j:1 thru n-1 do[
            if (v-j <1) then [vertices:sconcat(vertices, bn[j+1], " , ")],
            if (v-j =1) then [vertices:sconcat(vertices, "  ",  rn[j+1]," , ")],
            if (v-j >1) then [
                if  (j=1) then [vertices:sconcat(vertices, "  ","   0,  ")]
               else[ vertices:sconcat(vertices,  "  ", 0 ,"  ,  ")]]
        ],
        disp(vertices)
    ]
];


It works in Maxima.

output of function vert(6); (it's aligned on my computer.. mehhhh....realign by hand. I need unicode...)
Code:
"  bloop    :-0.5 , -0.2887 , -0.2041 , -0.1581 , -0.1291 , "
"  bloop    : 0.5 , -0.2887 , -0.2041 , -0.1581 , -0.1291 , "
"  bloop    :   0 ,  0.5774 , -0.2041 , -0.1581 , -0.1291 , "
"  bloop    :   0 ,      0  ,  0.6124 , -0.1581 , -0.1291 , "
"  bloop    :   0 ,      0  ,      0  ,  0.6325 , -0.1291 , "
"  bloop    :   0 ,      0  ,      0  ,      0  ,  0.6455 ,  "
 
That's right. I checked it with Mathematica. Kharakov, what were you using?

Here is my Mathematica version, for n-D, (n+1) vertices:
Code:
simplex[n_Integer] := simplex[n] = Module[{r, b, pts},
   If[n < 0, Return[]];
   If[n == 0, Return[{{}}]];
   r = Sqrt[n*(n + 1)/2]/(n + 1); b = - r/n;
   pts = simplex[n - 1];
   Append[Append[#, b] & /@ pts, Append[ConstantArray[0, n - 1], r]]
   ]

simplex1[n_Integer] := Module[{ones},
  Append[IdentityMatrix[n] - 1/n (1 + 1/Sqrt[n + 1]), 
   1/Sqrt[n + 1]*ConstantArray[1, n]]
  ]

simplex2[n_Integer] := Module[{ones},
  Append[IdentityMatrix[n] - 1/n (1 - 1/Sqrt[n + 1]), -1/Sqrt[n + 1]*
    ConstantArray[1, n]]
  ]

Another curiosity about regular simplexes. The angle at the center between any two vertices is arccos(-1/(n-1)) for a n-point simplex in (n-1)-D space. It tends to pi/2 for n -> infinity, meaning that the origin and any two vertices tend to a right triangle.
 
WxMaxima (a Maxima front end). Ha... there is an append command (and a matrix module that I'm unfamiliar with).


Could you just cut and paste the code, or is it non-compatible?


Would a 3d slice of an infinite dimensional simplex look like a cube from a certain angle? What vector would you rotate around? (-1,1,1,1,1,1.....)
 
WxMaxima (a Maxima front end). Ha... there is an append command (and a matrix module that I'm unfamiliar with).
In Mathematica? Here's the official documentation of it: Wolfram Language & System Documentation Center I was using some simple list-manipulation functions.

Would a 3d slice of an infinite dimensional simplex look like a cube from a certain angle? What vector would you rotate around? (-1,1,1,1,1,1.....)
I'm not sure.

Actually, there is a kind of polyhedron where neighboring vertices are always 90d from each other. The cross-polytope. 2D: square, 3D: regular octahedron, ... Its vertices are at {+-1,0,0,...,0}, {0,+-1,0,...,0}, {0,0,+-1,...,0}, ..., {0,0,0,...,+-1}

The series of 2D: square, 3D: cube, 4D: tesseract, is in general the hypercubes. Its vertices are at {+-1,+-1,+-1,...,+-1}.
 
Is it only the platonic solids that have equidistant face centers (in 3d)?
 
Back
Top Bottom