使用 Sage 多项式时出现 NameError
NameError when using Sage polynomials
我阅读了 here 如何使用多项式。但是当我尝试这个
R = QQ['t']
poly = (t+1) * (t+2); poly
Sage 给我以下错误:
NameError: name 't' is not defined
我该怎么办?
对了,使用多项式环的时候必须注入变量名。你指向的文件指出
sage: R.<t> = PolynomialRing(QQ)
会这样做。或者,你可以做
sage: R=QQ['t']
sage: R.inject_variables()
Defining t
sage: t+1
t + 1
您想知道如何不打印姓名:
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.<t> = ...
在 .sage
文件中有效,但在 .py
文件中无效,而上述语法在 .py
文件中也有效。
在 .py
文件中,您首先要按如下方式导入 PolynomialRing
:
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
要找出您需要的进口商品,您可以这样做
sage: import_statements(PolynomialRing)
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
最后,如果你不需要戒指 R
,
你可以直接用
定义t
sage: t = polygen(QQ)
如果您以后需要R
,您可以使用
sage: R = t.parent()
我阅读了 here 如何使用多项式。但是当我尝试这个
R = QQ['t']
poly = (t+1) * (t+2); poly
Sage 给我以下错误:
NameError: name 't' is not defined
我该怎么办?
对了,使用多项式环的时候必须注入变量名。你指向的文件指出
sage: R.<t> = PolynomialRing(QQ)
会这样做。或者,你可以做
sage: R=QQ['t']
sage: R.inject_variables()
Defining t
sage: t+1
t + 1
您想知道如何不打印姓名:
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.<t> = ...
在 .sage
文件中有效,但在 .py
文件中无效,而上述语法在 .py
文件中也有效。
在 .py
文件中,您首先要按如下方式导入 PolynomialRing
:
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
要找出您需要的进口商品,您可以这样做
sage: import_statements(PolynomialRing)
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
最后,如果你不需要戒指 R
,
你可以直接用
t
sage: t = polygen(QQ)
如果您以后需要R
,您可以使用
sage: R = t.parent()