如何解决如何在 Pytho 中使用 sympy 更改域即多项式环?
我正处于一项大型(坦率地说非常困难)项目的中间,所以虽然这是我的第一次审讯,但它可能不会是最后一次。另外:英语不是我的第一门语言,所以“对不起,英语不好”,我正在手机上写这个,“对不起,格式不好”。 好的:我正在尝试在 Python 中实现通用数字字段筛选,至少目前我严重依赖 sympy。
这是我正在苦苦挣扎的一段代码。在下面的代码中,gpc(N,m)
是一个浮动列表。
From sympy import Poly
From sympy.abc import x
g = Poly(gpc(N,m),x) [*]
但是,当我这样做时,我得到了域 RR 上的多项式,我非常想将其切换到另一个域 D(其中 D 最终为 ZZ['x']
,但我希望此函数能够一般)
我知道我可以稍微修改 [*]
g = Poly(gpc(N,x,domain = D)
得到我想要的。然而,这还不够。在我的代码中的其他地方,我需要能够更改已构造的多项式的域,而此解决方案无济于事。
当我查找它时,我找到了 change_ring
方法,所以我尝试了这个:
f = g.change_ring(D)
但是,在执行时,我收到错误消息:
'Poly' object has no attribute 'change_ring'
所以我猜这个函数不存在。 有谁知道如何改变多项式的域?
非常感谢!
解决方法
看起来创建一个新的 Poly
实例是最好的方法;有一些类方法可以提供帮助(查看 Poly.from_*
类方法)
例如:
from sympy import Poly
from sympy.abc import x,a
g = Poly(x**3 + a*x*2 - 5*x + 6,x)
print(g) # Poly(x**3 + (2*a - 5)*x + 6,x,domain='ZZ[a]')
f = Poly.from_poly(g,*g.gens,domain='ZZ[a,b]')
print(f) # Poly(x**3 + (2*a - 5)*x + 6,b]')
我也想知道在某个时候合理化你的浮动是否会有所帮助 - 参见例如nsimplify
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。