getting all interesting sections of 7-d simplex
- To: mathgroup at smc.vnet.net
- Subject: [mg112579] getting all interesting sections of 7-d simplex
- From: Yaroslav Bulatov <yaroslavvb at gmail.com>
- Date: Tue, 21 Sep 2010 02:03:45 -0400 (EDT)
I'm trying to visualize interesting 3d sections of a 7d regular simplex. An interesting section is a 3d space that goes through simplex centroid and 3 other points, each of which is a centroid of some non-empty set of simplex vertices. For instance, {{1},{1,2},{3}} defines a section that goes through simplex center vertex 1, vertex 3 and centroid of vertices 1,2. Two sections are equivalent if they define the same space under some permutation of coordinates. There is a lot of sections, but seems to be a much smaller number of equivalence classes. I tried enumerating them by checking all permutations of 7 coordinates, but this is is quite slow, can anyone can see a practical way to do this in Mathematica? Code below plots random interesting section of the 7-d simplex. It uses the fact that Hadamard matrix gives a mapping between points of a regular simplex in 7 dimensions and probability distributions over 8 outcomes. hadamard = KroneckerProduct @@ Table[{{1, 1}, {1, -1}}, {3}]; invHad = Inverse[hadamard]; vs = Range[8]; m = mm /@ Range[8]; sectionAnchors = Subsets[vs, {1, 7}]; randomSection := Mean[hadamard[[#]] & /@ #] & /@ Prepend[RandomChoice[sectionAnchors, 3], vs]; {p0, p1, p2, p3} = randomSection; section = Thread[m -> p0 + {x, y, z}.Orthogonalize[{p1 - p0, p2 - p0, p3 - p0}]]; RegionPlot3D @@ {And @@ Thread[invHad.m > 0 /. section], {x, -3, 3}, {y, -3, 3}, {z, -3, 3}}