| 1 | initial version |
Note R is not a polynomial ring but a quotient of one.
Let's name the vector
w = v([2*t, 3, 2, 0])
One thing you can do is lift all the elements to be polynomials in x again and do a substitution:
w.apply_map(lambda z: z.lift().subs({x : sqrt(2)}))
This lands in the vector space over the symbolic ring, because sqrt(2) is symbolic.
You can also replace sqrt(2) by things like sqrt(RR(2)) or sqrt(AA(2)).
More appropriate in this situation is to recognize that you are working in an abstract number field $K = \mathbb{Q}(t) = \mathbb{Q}[x]/(x^2-2)$, and you want to use an embedding:
sage: K.<t> = NumberField(x^2 - 2)
sage: V = VectorSpace(K,4)
sage: w = V([2*t, 3, 2, 0])
sage: w.apply_map(K.embeddings(AA)[1])
(2.828427124746190?, 3, 2, 0)
Here K.embeddings(AA)[1] is the embedding of $K$ into $\mathbb{R}$ that sends $t \mapsto \sqrt{2}$.
The other embedding K.embeddings(AA)[0] is the one that sends $t \mapsto -\sqrt{2}$:
sage: w.apply_map(K.embeddings(AA)[0])
(-2.828427124746190?, 3, 2, 0)
Again here you can replace the algebraic reals AA by other fields like QQbar, RR and CC.
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.