# newCoordinateSystem -- change variables

## Description

newCoordinateSystem(S,m) -- takes a one-rowed matrix m of independent linear forms over a ring R and returns a pair (f,g), where f is a ring map given by some linear change of coordinates from R to S which sends the last variables of R to the forms in m, and g is the inverse of f.

The ring S should have the same number of variables as S.

 i1 : R = ZZ/101[a..d] o1 = R o1 : PolynomialRing i2 : S = ZZ/101[p..s] o2 = S o2 : PolynomialRing i3 : (f,g) = newCoordinateSystem(S,matrix{{a+2*b,3*c-d}}); i4 : f o4 = map (S, R, {50p, 3r, p + 2q, 3r - s}) o4 : RingMap S <--- R i5 : g o5 = map (R, S, {-2a, a - 50c, 34b, b - d}) o5 : RingMap R <--- S

## Ways to use newCoordinateSystem :

• "newCoordinateSystem(PolynomialRing,Matrix)"

## For the programmer

The object newCoordinateSystem is .