python - 有限域上的SymPy多项式

标签 python sympy polynomials finite-field

import sympy as S 
F = S.FiniteField(101)

当我调用f = S.poly(y ** 2 - x ** 3 - x - 1,F)时,出现以下错误:

'FiniteField' object has no attribute 'is_commutative'



但是,根据定义,有限域是可交换的!所以我不太确定这个错误是什么意思!

有人遇到过这个吗?您如何在有限域上声明多项式?

最佳答案

is_commutative通常是operators的属性。没有为domains实现(不同于is_numeric等)。
例如

>>> F = sympy.RealField() #returns the same error
>>> f = sympy.poly(y ** 2 - x ** 3 - x - 1, F)

AttributeError: 'RealField' object has no attribute 'is_commutative'

因此,poly将您的位置参数解释为域以外的其他值。要获得poly(和factor等)的预期行为,您必须使用 domain (或等效的)kwarg,即:
f = sympy.poly(y ** 2 - x ** 3 - x - 1, domain=F)

关于python - 有限域上的SymPy多项式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29980721/

相关文章:

python - 使用 python-docx 检索具有文档结构的文档内容

python - ipywidgets 使用复选框来显示或隐藏其他小部件

java - 允许分别提供相等比较器和散列函数的映射

python : Vectorized conditional sum along a axis

python - 递归程序打印但不返回正确值

python - 为什么 SymPy 无法求解具有复杂系数的二次方程

python - 在python中以可变格式打印多项式

java - 如何从多项式字符串中获取系数和指数?

python - 可怜的 sympy linsolve/solve 性能

ipython - 如何在 IPython 中重置 MathJax 设置?