1 | initial version |
Given the list of strings :
sage: xs = ['x_1','x_2','x_3']
you can define the polynomial with this list as indeterminate names :
sage: R = PolynomialRing(QQ, names=xs)
sage: R
Multivariate Polynomial Ring in x_1, x_2, x_3 over Rational Field
In the R.<x,y>
construction, there some Sage preparsing that hides the fact that there are two operations being done:
R
with 'x' and 'y' as indetereminate namesx
and y
point to the corresponding indeterminatesSee:
sage: preparse('R.<x,y> = PolynomialRing(QQ)')
"R = PolynomialRing(QQ, names=('x', 'y',)); (x, y,) = R._first_ngens(2)"
So, in order to be able to wrire x_1+x_2^3
, we have to create those Python names. For this, there is a very handy method named inject_variables
:
sage: R.inject_variables()
Defining x_1, x_2, x_3
Now, you can do things like:
sage: x_1 + x_2^3
x_2^3 + x_1