问题标签 [groebner-basis]

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 投票
1 回答
527 浏览

symbolic-math - 如何在 GAP 中计算简化的 Groebner 基?

我尝试使用 Buchberger 算法(参见thisthis)来计算理性领域中理想的 Groebner 基础。这是我的 GAP 脚本:

但结果总是这样:

显然,第四个可以完全除以最后一个基,第一和第二个可以完全除以第三个基。预期的结果应该是这样的:

所以我的问题是如何在 GAP 中获得简化的 Groebner 基础?

0 投票
3 回答
1359 浏览

python - 求解三次多项式系统(找到贝塞尔曲线的交点)

任何人都可以建议修复或替代路线来找到该系统的解决方案吗?特别是我只关心 [0,1]x[0,1] 中的解决方案 (s,t)

注意:我在这里寻找两条三次贝塞尔曲线的交点。我需要保证找到所有解决方案的方法,并希望在合理的时间内找到(对我来说,这意味着每对曲线需要几秒钟)。

我尝试使用 sympy 但solve() 和solve_poly_system() 都返回了空列表。

这是我的代码:

这输出:

谢谢阅读!

0 投票
1 回答
54 浏览

timeout - 测量和限制在算术子求解器中花费的时间

Q1:可以查询Z3在不同子求解器中花费的时间吗?

调用(get-info :all-statistics)给出了 Z3 的整体运行时间,但我想将其分解为单独的子求解器。

我对花在与算术相关的子求解器上的时间特别感兴趣,更准确地说,是那些产生统计数据grobnernonlinear-horner.


Q2:此外,是否可以在子求解器上设置超时?

我可以想象像定义每个 check-sat 和子求解器的超时,它限制了 Z3 可以在该子求解器中花费的时间。Z3 会重复调用n 个不同的子求解器,如果达到其中一个的时间限制,它会继续,但只使用剩余的n-1个子求解器。

我阅读了战术教程并得到的印象是,这实际上可能通过类似的方式来实现

但我不知道要使用哪些求解器。

0 投票
1 回答
54 浏览

z3 - smt.arith.nl.gb 对(句法)相等推理的意外影响 - 错误?

考虑以下 SMTLIB 程序(在rise4fun此处):

尽管它似乎只需要对句法相等进行推理,但 Z3(4.3.2 正式版,以及 4.4.0 b6c40c6c0eaf)仍然未能表明最终断言是unsat.

出乎意料(至少对我而言),设置smt.arith.nl.gbtrue使示例验证(即check-sat产量unsat)。

对于它的价值,这里有一些进一步的观察:

  • 如果乘法分别更改为或,则可以显示最终断言unsat(* i n)(* n i)

  • 如果将乘法更改为,则无法显示unsat(* i i)

  • (push)并且(pop)似乎不会影响示例,即可以将它们删除而不影响所描述的观察结果

这是一个错误还是smt.arith.nl.gb需要显示此示例的原因unsat

0 投票
0 回答
79 浏览

computational-geometry - 用 Groebner 基证明定理

我正在尝试使用 Groebner Basis 证明一些定理(如 Cox、Little 和 O'Shea Link中所述 )

提到的书作为练习使用给定的方法来证明 Pappus 定理,但我真的无法让它发挥作用。我尝试过使用 Sage、Mathematica 和 Singular,但 Grobner Basis 计算不会终止。

知道我能做什么吗?以前有没有其他人做过这个练习?谢谢。

这是单数代码:

0 投票
1 回答
75 浏览

polynomials - 用 Groebner 基求解系统

假设 C[x,y,z] 中的一组有限多项式具有有限数量的解(即生成的理想是 0 维的)。

还假设关于 lex order x>y>z 的 Groebner 基是

[f(z), g(y,z), h(y,z), k(x,y,z)]

众所周知,系统现在可以很容易地解决:选择 f 的根 z0,将其代入 g 和 h,然后寻找公共根 (y0) 等。

问题如下:对于 f 的每个根 z0 是否存在 y0,z0 使得 (x0,y0,z0) 满足系统?

在我看到的所有例子中,这是正确的,但我不知道这是普遍正确的还是有反例。

谢谢你。

0 投票
1 回答
309 浏览

python - 在 Sympy 中对多元多项式使用 div():余数不正确?

我想在 Python 中计算多元多项式的余数,我发现 sympy 中的 div() 应该可以解决问题(我还需要 sympy 来进行 Gröbner 计算)。但我一直发现的问题是 div() 似乎只检查除法的前导项,因为

给出r=y,而

r=x**2+y.

我想做诸如理想成员资格之类的事情,因此在除以 G = {g_1,...,g_s} 时找到一些多项式 f 的余数,其中我现在不能依赖 div()。

在使用 Sage 时,我没有遇到这个问题(使用 (x^2+y)%y 给出 x^2),但我更熟悉 Python,更喜欢通过 Python 来完成。

如果我做错了什么,有人可以告诉我吗?或者有人知道用于余数的更好功能吗?

0 投票
0 回答
46 浏览

matlab - 八度音阶的 Groebner Base 算法

我想找到一个代码或通用算法来计算 Octave 多项式的 Groebner 基。我试过这个:如何在 Matlab 中计算方程组的 Groebner 基,但出现以下错误:

error: strcat: inputs must be strings or cells of strings error: called from strcat at line 105 column 7 test at line 2 column 9

该代码是否仅适用于 Matlab?我怎样才能使它适用于 Octave?

0 投票
0 回答
100 浏览

sympy - 在 Sympy 中,有没有办法根据定义多项式来表示 Groebner 基?

在 Sympy 中,可以通过 Grobner 基获得多项式归约的表示:

但我正在寻找的是一种根据定义它的多项式来表达 Groebner 基的元素的方法,基本上只是存储在生成基时使用的 Buchberger 算法中执行的计算。

例如

它表明这三个多项式生成单位理想,但我想要这些多项式的明确组合等于 1。在给出的示例中,它是线性组合,但我想要一种也适用于非线性的方法。

在我获得的第一个示例Q,r中。在第二个示例中,我获得了余数的模拟,r但我希望多项式能够Q实现它。

同样,该方法G.contains()将指示理想是否包含多项式,但不会告诉您如何生成它。有没有办法做到这一点?