SageMath:商环的约化(x^2 x=0)

2024-06-16 11:34:44 发布

您现在位置:Python中文网/ 问答频道 /正文

感谢您抽出时间阅读此文,非常感谢。你知道吗

我的问题是如何确保商环中的多项式具有以下性质:

(x^2)k = 0

其中x是商环中的任意变量,k是正整数。你知道吗

这就是我试图处理这种情况的方法:我创建了一个多项式环

P.<x,y,z,w> = PolynomialRing(GF(2), 4, order = 'degrevlex')

因为我不是在商环中工作,所以x^2(或其他三个变量中的任何一个)不会“变成”0。因为我想要x^2=0的属性,我决定用一些场方程创建一个商环:

Q = P.quotient_ring(ideal([var**q - var for var in P.gens()]))

其中q = P.base_ring.order()。 但是,当我创建下面的多项式时,它的父项仍然是P,所以我更改了它的环:

f1 = y*z + y*w + w^2
f1 = f1.change_ring(Q)

但是,当我打印f1时,它的w^2仍然是w^2,并且没有减少到0。我在想我是不是遗漏了什么?这让人恼火,因为我将要与麦考利矩阵,因此,这是至关重要的,我在一个商环工作。也许我错过了一些数学,因为这对我来说是非常新的。。。你知道吗

这是我的建议:

sage: P.<x,y,z,w> = PolynomialRing(GF(2), 4, order = 'degrevlex')
sage: q = P.base_ring().order()
sage: Q = P.quotient_ring(ideal([var**q - var for var in P.gens()]))
sage: f1 = y*z + y*w + w^2
sage: f1
y*z + y*w + w^2
sage: f1 = f1.change_ring(Q)
sage: f1
y*z + y*w + w^2

如何确保w^2=0?我已经尝试过在创建商环时将原始多项式添加到场方程中,然后更改其环,如下所示:

sage: P.<x,y,z,w> = PolynomialRing(GF(2), 4, order = 'degrevlex')
sage: q = P.base_ring().order()
sage: f1 = y*z + y*w + w^2
sage: Q = P.quotient_ring(ideal([f1] + [var**q - var for var in P.gens()]))
sage: f1 = f1.change_ring(Q)
sage: f1
y*z + y*w + w^2

但正如你所见,什么都没发生。。。 谢谢您!你知道吗


Tags: inforbasevarorderf1sagegf
1条回答
网友
1楼 · 发布于 2024-06-16 11:34:44

与其f1 = change_ring(Q),不如做f1 = Q(f1)change_ring只影响系数,而不影响索引,而Q(f1)强制多项式f1Q中生存,将每个变量转换为它在Q中的图像。例如:

sage: P.<x,y,z,w> = PolynomialRing(GF(2), 4, order = 'degrevlex')
sage: q = P.base_ring().order()
sage: Q = P.quotient_ring(ideal([var**q - var for var in P.gens()]))
sage: f1 = y*z + y*w + w^2
sage: f1
y*z + y*w + w^2
sage: f1.change_ring(Q)
y*z + y*w + w^2
sage: Q(f1)
ybar*zbar + ybar*wbar + wbar

附加了bar的变量是Q中的图像。你知道吗

在定义Q之后的另一个选项是:

sage: x,y,z,w = Q.gens()
sage: f1 = y*z + y*w + w^2 # now living in Q, since x,y,z,w are in Q
sage: f1
ybar*zbar + ybar*wbar + wbar

顺便说一下,如果你想w^2为零,你不应该强加关系w**2而不是w**2 - w?你知道吗

相关问题 更多 >