Я читал here как работать с полиномами. Но когда я пытаюсь этоОшибка многочлена мудреца
R=QQ['t']
poly = (t+1) * (t+2); poly
шалфей дает мне следующую ошибку:
NameError: name 't' is not defined
Что я могу поделать?
Я читал here как работать с полиномами. Но когда я пытаюсь этоОшибка многочлена мудреца
R=QQ['t']
poly = (t+1) * (t+2); poly
шалфей дает мне следующую ошибку:
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
Спасибо так много. Мне нужны мои полиномы внутри функции. Как я могу предохранить мудреца от печати «Определение t»? Журнал становится довольно беспорядочным, когда вызываются многие функции. –
Ну, тогда обозначение углового кронштейна позволяет избежать этого ... но обновить ответ. – kcrisman