问题标签 [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.

0 投票
2 回答
3620 浏览

python - 获取位于 Shapely 多边形内的所有格点

我需要找到多边形内部和多边形上的所有格点。

输入:

输出:

在此处输入图像描述

请建议是否有办法在使用或不使用 Shapely 的情况下获得预期结果。

我已经编写了这段代码,它给出了多边形内的点,但它没有给出点。还有没有更好的方法来做同样的事情:

输出:

我已经简化了我的问题。实际上,我需要找到带角的正方形内部和上的所有点:(77,97)、(141,101)、(136,165)、(73,160)。

0 投票
1 回答
557 浏览

c++ - 如何使用 C++ 在 NTL 中实现 LLL 格子缩减?

我正在使用 C++ 进行研究。我很想知道如何使用 NTL 中的 LLL 函数来找到最短向量。我的代码如下;

但是,我输入到 B 中的矩阵并没有减少。怎么了?

0 投票
1 回答
67 浏览

python - 如何传播两个向量 u 和 v 以有效的方式填充矩形框

出于说明目的,请参见下图。

图片

给定一个点p和两个向量uand v,我们可以得到 and 的线性组合uv, and是整数t = m*u + n*v,并且 t 应该在框内。解决这个问题并不太难。As和可以是正面的也可以是负面的。可以讨论:mnmn

  1. m > 0 和 n > 0
  2. m > 0 和 n < 0
  3. m < 0 和 n > 0
  4. m < 0 和 n < 0

这是案例1的python代码:

使用两个循环进行 4 组可能会解决问题。

另一种方法是生成太多点,然后删除框外的点

我想也许还有其他简单而优雅的方式来做到这一点?

0 投票
1 回答
388 浏览

matlab - 尝试为凸包研究绘制二维六边形晶格点

我正在尝试为凸包研究绘制二维六边形晶格点。但我只能得到矩形格子。这是代码:

在二维平面上映射六边形晶格

定义应该构造凸包的区域。将所有数据点发送到 convhull 函数。

绘制图像

0 投票
0 回答
53 浏览

algorithm - 寻找矩阵方程的最小(稀疏)解

我计划使用LUP-decomposition仅使用一个线程以整数形式求解标准形式Ax = b的 SLE。

A是一个大小约为 n 3 × 2n 3的矩阵,n ≈ 100(虽然越多越好)。矩阵非常稀疏 - 每列只有 4 个非零条目,它们都是 ±1,每列最多有 n 个非零条目。b也是一个只有 4 个条目等于 ±1 的列。

所以,我可以得到一个单一的解决方案,然后我可以将来自A的内核的向量的任何线性组合(带整数系数)添加到它以获得另一个解决方案(我也知道该内核的基础很容易从矩阵中读取)ü )。我想找到一个最大 c⋅n 非零条目的解决方案。我知道通常不暗示这种解决方案的存在(对于固定的系数 c),但就我而言,我认为应该有一个(而不仅仅是一个)。问题是:我如何找到它?

PS,如果有人愿意为 LUP 分解 + 求解部分的运行时间提供一些可靠的估计,或者还对LUL\bLy = b的解决方案,matlab 风格的解决方案)和 mb 甚至LU\b的密度估计-我也会非常感谢。或者,任何有关该主题的文献也会有所帮助。

0 投票
1 回答
251 浏览

python - 使用高斯(复数)整数生成毕达哥拉斯三元组

我最近才通过这个解释它的视频发现了一种生成毕达哥拉斯三元组的方法,涉及使用高斯(复数)整数。到目前为止,我已经设法编写了一个函数,该函数返回由每个高斯整数生成的勾股三元组列表,其中虚部小于实部。

这样做的问题是,某些三元组(例如{9, 12, 15})不是通过该函数所基于的视频中的初始步骤生成的,我不确定如何生成这些。

我将如何生成每一个可能的三元组,以某种方式使用我已经拥有的或其他的?

0 投票
1 回答
170 浏览

python - Lattice su(2) gauge theory and random number generation in python

I'm currently writing a simple program in python to simulate 1 + 1 dimensional SU(2) yang mills theory. For the case of SU(2) there exists a particular heatbath algorithm for updating the Link variables. In order to implement this algorithm however I need to generate a random real number X such that X is distributed according to P(x) = sqrt(1-X^2)*e^(k*X), where k is a real number from negative infinity to infinity.

Fortunately there exists an algorithm to generate X's according to said distribution. Using my limited skills in python I implemented such an algorithm. Here is the code. I'm only using numpy here.

Basically, if we take three uniformly distributed random numbers in the intervals 0 to 1 we can generate a random variable l1 which is a function of the three random numbers.

We accept this value L1 if 1 - L1 is greater than or equal to a fourth random number squared (uniformly distributed in the interval 0 to 1). Else we loop back to the beginning and do it all over again. We do this until we accept a value of L1. After we accept L1 we compute X as being 1 - 2*L1. This algorithm ensures that X follows the required distribution.

In my program I'm going to have to generate an two dimensional array of X's. This is quite slow in my current implementation. So here's my question; is there a simpler way to do this using any preset numpy packages? If such a method doesn't exist, is there a way to vectorize this function to generate a two dimensional lattice of random X's without simply iterating it with a for loop?

0 投票
0 回答
1556 浏览

python - Python - 'for' 循环的更快替代方案

我正在尝试在 Python 中构建二项式点阵模型。这个想法是存在多个二项式格子,并且基于特定格子中的值,在其他格子中执行一系列操作。这些操作类似于“期权定价模型”(参考 Black Scholes 模型),计算从网格的最后一列开始,并且一次一步迭代到前一列。例如,如果我有一个包含 n 列的二项式格子,则 1. 我计算第 n 列中单个或多个格子的值。2. 基于这些值,我在相同或其他二项式格子中更新第 (n-1) 列中的值 3. 这个过程一直持续到我到达第一列。

所以简而言之,我不能同时处理所有晶格的计算,因为每列中的值取决于下一列中的值等等。

从编码的角度来看,我编写了一个函数,它对点阵中的特定列进行计算,并输出在该过程中用作下一列输入的数字。

我通过 for 循环为晶格中的每一列调用此函数。所以基本上我正在为所有计算运行一个嵌套的 for 循环。

我的问题是 - 这很慢。该功能不需要太多时间。但是我通过 for 循环调用函数的第二次迭代非常耗时(在下面的 for 循环中迭代函数的平均次数接近 1000 或 1500)运行完整的模型需要将近 2.5 分钟从标准建模的角度来看非常慢。如上所述,大部分时间都被嵌套的 for 循环占用,如下所示:

有什么办法可以减少嵌套 for 循环中消耗的时间?或者有什么替代方法可以代替嵌套的 for 循环。请告诉我。非常感谢 !!!

0 投票
3 回答
2267 浏览

algorithm - 格子上的点

我在一次编码面试中得到了这个问题。

Hanna 在一个格子中移动,其中每个点都可以用一对整数表示。她从 A 点移动到 B 点,然后向右转 90 度并开始移动,直到到达格子上的第一个点。找出她会达到的目标是什么?本质上,问题归结为找到与线垂直相交的第一个点。有人可以提供关于我如何解决这个问题的伪代码或代码片段吗?

0 投票
1 回答
105 浏览

python - 我可以为 (Nx,Ny) 矩阵做一个数学形状的掩码吗?

我有一个数字矩阵(Nx,Ny),我想从该矩阵中选择一个数学形状坐标/组件,因为它可能是一条具有给定斜率的线。

我学会了如何创建蒙版以及如何以随机方式进行蒙版,但我想不出如何在 python 中生成数学形状的蒙版。

这是我能够开发的一些代码。如果您知道更好的方法来做到这一点,我也会很感激被告知。