首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多项式环,其中生成元数不为渐近已知

多项式环,其中生成元数不为渐近已知
EN

Stack Overflow用户
提问于 2015-01-23 04:14:03
回答 1查看 617关注 0票数 1

我试图创建一个代数集的坐标环(其中代数集是由域上任意变量中的多项式集合指定的)。

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

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

代码语言:javascript
复制
CoordinateRing = QQ.poly_ring(x,y,z) / [y**2 - z*x, xy*2 + z]

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

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-23 05:10:13

您的代码对我不起作用,但我发现使用old_poly_ring而不是poly_ring可以做到这一点:

代码语言:javascript
复制
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()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28102923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档