1 | initial version |
I take it you understand how to get the coefficients in the standard basis, e.g.:
sage: var('x')
x
sage: K.<a> = NumberField(x^2+1)
sage: 3+5*a+a^2
5*a + 2
sage: (3+5*a+a^2).vector()
(2, 5)
Then going to your preferred basis is just a linear algebra problem. For example, if your preferred QQ-basis is (1,1) and (2,0) then you could do:
sage: Q2 = (QQ^2).span_of_basis([(1,1), (2,0)]); Q2
Vector space of degree 2 and dimension 2 over Rational Field
User basis matrix:
[1 1]
[2 0]
sage: Q2.coordinates([2,5])
[5, -3/2]
Check that this is correct:
sage: 5*vector([1,1]) + (-3/2)*vector([2,0])
(2, 5)