在 Julia 中声明一个多元商环

时间:2021-03-10 21:56:54

标签: julia

我想声明多元环 $R[x_{1},x_{2},x_{3}]/(x_{2}^2-1, x_{1}^{3}x_{ 3}-2)$。如果有一些方法可以对任意数量的变量执行此操作,那将非常有帮助。

非常感谢,

2 个答案:

答案 0 :(得分:3)

我认为 AbstractAlgebra.jl 非常适合这种情况。你可以这样称呼它:

julia> using AbstractAlgebra

julia> ring = ZZ
Integers

julia> S, (x, y, z) = PolynomialRing(ring, ["x", "y", "z"])
(Multivariate Polynomial Ring in x, y, z over Integers, AbstractAlgebra.Generic.MPoly{BigInt}[x, y, z])

julia> p1 = y^2 - 1
xy^2 - 1

julia> p2 = x^3 * z - 2
x^3*z - 2

julia> div(3 * (x^2 + y^3) * p1 + p2, p1)
3*x^2 + 3*y^3

julia> div(3 * (x^2 + y^3) * p1 + p2, p2)
1

抱歉,如果这不能回答您的问题,我的数学不太好。如需更多信息,请访问 documentation

答案 1 :(得分:2)

据我的同事说,这在 Oscar.jl [1] 中可用(它建立在 Singular 和 AbstractAlgebra.jl 之上,@aahlback 和我在另一个答案中提到)。

目前正在编写文档,因此请密切关注软件包以了解在不久的将来如何完成。

如果你想看一看,实现在 [2] 中。

编辑:这里看起来有一个相关的例子 [3]。请注意,该示例中的环 R 是多项式环,与您的 R 不对应。

根据 Singular 项目(Oscar.jl 用于这些计算)的维护者,对于系数环(您的 R),您目前可以使用任何字段,Z 或 Z/nZ。将其扩展到其他环非常非常困难。

[1] https://github.com/oscar-system/Oscar.jl/

[2] https://github.com/oscar-system/Oscar.jl/blob/master/src/Rings/MPolyQuo.jl

[3] https://oscar-system.github.io/Oscar.jl/dev/CommutativeAlgebra/ca/#Example-24

相关问题