Python 使用Sage多项式时出现名称错误
我读过如何使用多项式。但是当我尝试这个的时候Python 使用Sage多项式时出现名称错误,python,sage,polynomials,Python,Sage,Polynomials,我读过如何使用多项式。但是当我尝试这个的时候 R = QQ['t'] poly = (t+1) * (t+2); poly Sage给了我以下错误: NameError: name 't' is not defined 我能做些什么呢?好的,在使用多项式环时必须插入变量名。你指的文件指出 sage: R.<t> = PolynomialRing(QQ) 您想知道如何在不打印名称的情况下执行此操作: sage: R.inject_variables(verbose=False)
R = QQ['t']
poly = (t+1) * (t+2); poly
Sage给了我以下错误:
NameError: name 't' is not defined
我能做些什么呢?好的,在使用多项式环时必须插入变量名。你指的文件指出
sage: R.<t> = PolynomialRing(QQ)
您想知道如何在不打印名称的情况下执行此操作:
sage: R.inject_variables(verbose=False)
玩得开心 要补充@kcrisman的答案,另一种方法是:
sage: R = PolynomialRing(QQ, 't')
sage: t = R.gen()
然后t
按预期工作:
sage: (t+1) * (t+2)
t^2 + 3*t + 2
请注意,Sage语法R.=…
将在.Sage
文件中工作,但在.py
文件中不工作,而上述语法也在.py
文件中工作
在.py
文件中,首先导入多项式环
,如下所示:
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
要了解您需要什么导入,您可以执行以下操作
sage: R=QQ['t']
sage: R.inject_variables()
Defining t
sage: t+1
t + 1
sage: import_statements(PolynomialRing)
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
最后,如果您不需要戒指R
,
您可以使用直接定义t
sage: t = polygen(QQ)
如果您以后需要R
,您可以使用
sage: R = t.parent()
非常感谢你。我需要函数中的多项式。如何防止sage打印“定义t”?当调用许多函数时,日志变得非常混乱。那么,尖括号符号可以避免这种情况。。。但答案是更新的。