感谢您抽出宝贵的时间阅读本文,非常感谢。
我的问题涉及如何确保商环内的多项式具有以下属性:
(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。我想知道我是否缺少某些东西?这很烦人,因为我将要与Macaulay矩阵一起工作,因此,在商圈内工作非常重要。也许我错过了一些数学知识,因为这对我来说是非常新的……
这是我的圣人输入:
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
但是如您所见,什么也没发生... 谢谢!
答案 0 :(得分:0)
您应该执行f1 = change_ring(Q)
而不是f1 = Q(f1)
。 change_ring
仅影响系数,而不影响不确定的元素,而Q(f1)
强制多项式f1
驻留在Q
中,将每个变量转换为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
吗?