各ポイントのすべての座標が非負であり、座標の合計が 1 に等しいという制限のあるポイントのセットがあるとします。可視化のために 3 次元空間に戻します。
私が探しているマップは、極値 (1,0,0,0)、(0,1,0,0)、(0,0,1,0) および (0,0,0,1) を取ります「うまく配置された」正四面体の頂点に。具体的には、四面体の中心が原点になり、1 つの頂点が z 軸上にあり、1 つの面が x、y 平面に平行になり、1 つのエッジが x 軸に平行になります。
これは、3 次元の点に対して同様のことを行うコードですが、それを 4 次元に拡張する方法が明らかではないようです。基本的に、関数 tosimplex (4 次元を 3 にする) の 4 次元等価物を探していますが、それは逆です。 fromsimplex
A = Sqrt[2/3] {Cos[#], Sin[#], Sqrt[1/2]} & /@ Table[Pi/2 + 2 Pi/3 + 2 k Pi/3, {k, 0, 2}] // 転置; B = 逆[A]; tosimplex[{x_, y_, z_}] := ほとんど[A.{x, y, z}]; fromsimplex[{u_, v_}] := B.{u, v, Sqrt[1/3]}; (*チェック*) 極端な = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}; Graphics[Polygon[tosimplex /@extreme]] fromsimplex[tosimplex[#]] == # & /@ エクストリーム
答え:
行列に関するdeinstの答えの直接的な再定式化は、次のようになります。(1/sqrt[4] はシンプレックス中心までの距離であるため、4 番目の座標として表示されます)
A = 転置[{{-(1/2), -(1/(2 Sqrt[3])), -(1/(2 Sqrt[6])), 1/Sqrt[4]}, {1/2, -(1/(2 Sqrt[3])), -(1/(2 Sqrt[6])), 1/Sqrt[4]}, {0, -(1/(2 Sqrt[3])) + Sqrt[3]/2, -(1/(2 Sqrt[6])), 1/Sqrt[4]}, {0, 0, Sqrt[2/3] - 1/(2 Sqrt[6]), 1/Sqrt[4]}}]; B = 逆[A]; tosimplex[{x_, y_, z_, w_}] := ほとんど[A.{x, y, z, w}]; fromsimplex[{t_, u_, v_}] := B.{t, u, v, 1/Sqrt[4]}; (*チェック*) 極端な = テーブル [配列 [ブール [# == i] &, 4], {i, 1, 4}]; Graphics3D[Sphere[tosimplex[#], .1] & /@ Extreme] fromsimplex[tosimplex[#]] == # & /@ エクストリーム