gpt4 book ai didi

geometry - 在 Mathematica 中将点从 4d 空间投影到 3d 空间

转载 作者:行者123 更新时间:2023-12-04 17:41:10 25 4
gpt4 key购买 nike

假设我们有一组点,其限制是每个点的所有坐标都是非负的,并且坐标之和等于 1。这将点限制在 3 维单纯形中,因此尝试映射是有意义的它回到 3 维空间进行可视化。

我正在寻找的 map 将采用极值点 (1,0,0,0),(0,1,0,0),(0,0,1,0) 和 (0,0,0,1)到“位置很好”的正四面体的顶点。特别地,四面体的中心将在原点,一个顶点位于 z 轴上,一个面平行于 x,y 平面,一个边平行于 x 轴。

这是对 3 维点执行类似操作的代码,但如何将其扩展到 4 似乎并不明显。从单纯形

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_}] := Most[A.{x, y, z}];
fromsimplex[{u_, v_}] := B.{u, v, Sqrt[1/3]};

(* 检查 *)
极端 = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
图形[多边形[tosimplex/@extreme]]
fromsimplex[tosimplex[#]] == # &/@extreme

回答:

直接根据矩阵重新表述 deinst 的答案给出了以下内容。 (1/sqrt[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_}] := Most[A.{x, y, z, w}];
fromsimplex[{t_, u_, v_}] := B.{t, u, v, 1/Sqrt[4]};

(* 检查 *)
Extreme = Table[Array[Boole[# == i] &, 4], {i, 1, 4}];
Graphics3D[Sphere[tosimplex[#], .1] &/@extreme]
fromsimplex[tosimplex[#]] == # &/@extreme

最佳答案

你要

   (1,0,0,0) -> (0,0,0)
(0,1,0,0) -> (1,0,0)
(0,0,1,0) -> (1/2,sqrt(3)/2,0)
(0,0,0,1) -> (1/2,sqrt(3)/6,sqrt(6)/3))

这是一个线性变换所以你变换
   (x,y,z,w) - > (y + 1/2 * (z + w), sqrt(3) * (z / 2 + w / 6), sqrt(6) * w / 3)

编辑 你想要原点的中心——只需减去四个点的平均值。对不起
(1/2, sqrt(3)/6, sqrt(6) / 12)

关于geometry - 在 Mathematica 中将点从 4d 空间投影到 3d 空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3506982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com