gpt4 book ai didi

python - sympy 中生成器数量未知的多项式环

转载 作者:行者123 更新时间:2023-12-01 04:52:32 24 4
gpt4 key购买 nike

我正在尝试创建代数集的坐标环(其中代数集由字段上任意变量中的某些多项式集指定)。

所以我使用 Sympy 的 poly_ring() 函数

例如,当您已经知道要为其定义理想的生成器时,它通常用于创建坐标环;

CoordinateRing = QQ.poly_ring(x,y,z) / [y**2 - z*x, xy*2 + z]

但我不想对定义代数集多项式中使用的变量数量做出任何假设。因此,我编写了一个函数 get_symbols() 来提取定义多项式中使用的所有符号。 有没有办法为poly_ring()设置生成器,而不必将它们列为参数?

from sympy import * 

class AlgebraicSet(object):
def __init__(self, polynomials,field):

self.polynomials = polynomials
self.field = field

def get_symbols(self):

symbols = set()

for f in self.polynomials:
symbols = set(symbols | f.atoms(Symbol))

return symbols

def get_cooridinate_ring(self):
return self.field.poly_ring(self.get_symbols(),order="ilex") / self.polynomials

最佳答案

您的代码对我不起作用,但我发现使用 old_poly_ring 而不是 poly_ring 可以解决问题:

from sympy import * 

class AlgebraicSet(object):
def __init__(self, polynomials,field):

self.polynomials = polynomials
self.field = field

def get_symbols(self):

symbols = set()

for f in self.polynomials:
symbols = set(symbols | f.atoms(Symbol))

return symbols

def get_coordinate_ring(self):
poly_ring = self.field.old_poly_ring(*self.get_symbols(),order="ilex")
return poly_ring / poly_ring.ideal(*self.polynomials)

from sympy.abc import x, y, z

print AlgebraicSet([y**2 - z*x, x*y*2 + z], QQ).get_coordinate_ring()

关于python - sympy 中生成器数量未知的多项式环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28102923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com