问题标签 [mathematical-lattices]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
d3.js - 如何用 D3JS 渲染一个一般的格子?
我正在寻找要在 D3JS 中实现的算法或布局,以呈现“一般”格的图形,即不是(必然)二项式的格。
我想获得的结果的一个例子是:
我想将晶格可视化为从底部到顶部的层次结构,类似于树状结构。
我尝试调整强制布局,但效果不佳,尤其是因为很难正确定位层次结构的级别。
我对输入的形式没有任何限制,它可能更适合该过程。
c - 在平面上反射晶格上的一个点
我有一个大小为 lx * ly * lz 的格子三维格子,在所有三个边上都有周期性边界条件。我的平面对称切割是两个水平和垂直平面(斜率 0 和 inf)加上两个垂直于 xy 平面、yz 平面和 xz 平面的对角线切割(斜率 -1 和 +1)。所以我一共有 9 种类型的平面,它们都通过格点而不是它们之间。
这些切口中的每一个都可以在垂直于它们的平面上的任何位置穿过。例如,垂直于 xy 平面的斜率 0 可以通过任何 ly 点。垂直于 xy 平面切割的斜率 inf 可以通过任何 lx 点。垂直于 xy 平面的斜率 +1 可以通过任何 lx 相交。垂直于 xy 平面的斜率 -1 可以通过任何 ly 相交。
现在给定点 i 在 0 和 (lx * ly * lz)-1 之间的格子上,我想反映它关于 1 和 9 之间的任意一个随机切割 c。计算反射的最快算法是什么晶格位点最好在“C”中。
该算法应采用三个输入,即站点 i、切割类型 c 以及切割通过的交叉点,介于 0 和 lx-1 或 0 和 ly-1 或 0 和 lz-1 之间,具体取决于切割和输出反射的站点。
algorithm - 找到球体中所有晶格点的最佳方法
给定一堆任意向量(存储在矩阵 A 中)和半径 r,我想找到落在半径为 r 的球体内的那些向量的所有整数值线性组合。然后我会将必要的坐标存储在矩阵 V 中。因此,例如,如果线性组合
降落在我的球内,例如
等等
A 中的向量肯定是给定格的最简单的基础,最大向量的长度为 1。不确定这是否以任何有用的方式限制向量,但我怀疑它可能。- 他们不会像不太理想的基础那样有相似的方向。
我已经尝试了一些方法,但没有一个看起来特别令人满意。我似乎找不到一个很好的模式来遍历格子。
我目前的方法是从中间开始(即所有 0 的线性组合)并一一通过必要的坐标。它涉及存储一堆额外的向量来跟踪,所以我可以遍历坐标的所有八分圆(在 3D 情况下)并一个接一个地找到它们。这个实现看起来非常复杂并且不是很灵活(特别是它似乎不容易推广到任意数量的维度 - 尽管这对于当前目的并不是绝对必要的,但它会是一个不错的选择)
有没有一种很好的*方法来找到所有必需的点?
(*理想情况下既高效又优雅**。如果真的有必要,在球体之外有几个额外的点并不重要,但最好不要那么多。我确实需要球体内的所有向量。-如果它有很大的不同,我对 3D 案例最感兴趣。
**我很确定我目前的实现都不是。)
我发现了类似的问题:
在任意坐标周围找到半径为 r 的球体中的所有点- 这实际上是比我正在寻找的更普遍的情况。我只处理周期性格子,我的球体始终以 0 为中心,与格子上的一个点重合。但是我没有一个点列表,而是一个向量矩阵,我可以用它来生成所有点。
如何有效地枚举 n 维网格中的所有球体点- 完全规则的超立方晶格和曼哈顿距离的情况。我正在寻找完全任意的格子和欧几里得距离(或者,为了提高效率,显然是平方)。
sorting - 有序格点枚举
设置:设 ei 是 n 维欧几里得空间的正交基,但假设 ei 具有无理 (L1) 范数。令 L 为通过将 ei 与自然数(包括零)的系数进行线性组合而获得的点集。现在首先按 L1 范数对 L 中的点进行排序,然后按字典顺序排列。
问题:是否有一种有效的算法可以按递增顺序生成 L 中的点,直到某个预定义的界限?请注意,我不想产生点然后对它们进行排序,而是想按顺序走格子。
观察:如果 ei 是标准正交基,这很容易做到。例如,这个问题在这里解决。原则上类似的东西在这里会起作用,但是确定要迭代的半径几乎和解决枚举问题一样难,所以它不是很有用。
c++ - 在igraph_ring c ++中设置边数
我正在尝试使用 igraph Graph Generator igraph_ring 创建一个环格,其中每个节点都与左右的 n 个邻居相连。但是,该方法不接受任何关于边数的参数,即我只能选择边是否有向以及它们是否相互(有什么区别??)。有没有办法调整连接数?谢谢,塔尔塔利亚
matlab - MATLAB 中的光学晶格
我正在编写脚本来绘制以下图片
以下代码可以正常工作并绘制与上面相同的形状,但没有球体。
我的问题是,如何绘制这些球体?
fibonacci - 斐波那契格子是在球体上均匀分布 N 点的最佳方法吗?到目前为止,它似乎是最好的
在“在球体上均匀分布 n 个点”这个主题中涉及到: 在球体上均匀分布 n 个点。
但我想知道的是:“斐波那契格子是在球体上均匀分布 N 点的最佳方法吗?到目前为止,它似乎是最好的。有人知道更好的方法吗?”
我有博士学位。在物理学中,并且可能在物理学中的某些研究中有应用。
我偶然发现了这篇精彩的论文:
http://arxiv.org/pdf/0912.4540.pdf “使用斐波那契和纬度-经度格子测量球体上的面积”
该论文指出,“斐波那契格子是一个特别吸引人的替代方案 [15, 16, 17, 23, 65, 42, 66, 67, 68, 76, 52, 28, 56, 55]。由于易于构建,它可以具有任意奇数个点 [68],并且这些点是均匀分布的(图 1),每个点代表几乎相同的区域。对于球体上连续函数的数值积分,它比其他格子具有明显的优势 [28, 56]。
斐波那契格子是在球体上分布 N 个点以使它们均匀分布的最佳方式吗?有没有更好的方法?
如上所示,论文指出,“每个点代表几乎相同的区域。”
原则上是否不可能(除了 N 的特殊罕见情况,例如 4 等),将 N 个点完全均匀地分布在一个球体上,以使每个点/区域具有完全相同的面积?
到目前为止,在我看来,斐波那契格子是在球体上分布 N 个点以使它们均匀分布的最佳方式。你觉得这是正确的吗?
非常感谢!
matlab - 在仿真 matlab 中绘制交互式点阵
我正在运行一个模拟,该模拟描述了 2D 方格的正面和背面的活动。正面和背面的描述例如:
每个数字表示晶格上的不同活动。
我想以交互方式绘制它,以便晶格中的每个值都用不同的标记和颜色标记,并且每次迭代都会更新绘图。到目前为止,我有类似的东西:
这标志着我正在处理的系统的初始设置,绘制它以查看我所指的内容。
现在在每次迭代中,我想查看不同值的圆圈改变颜色,例如:
这样做了 10 次,前面有 5 个值,后面有 5 个值,并且在模拟上非常繁重为每个值分配不同的标记。我设法用 imagesc 做到这一点,但是,我在驾驶标记时丢失了我想要保留的图形(我希望稍后添加箭头和其他东西)。有人对这类事情有任何经验吗?