Getting exact answers when using eigenvectors_right()
I am trying to compute complex eigenvectors for a matrix that has two distinct complex eigenvalues. Is there a way to get the exact coefficients?
For example: A=matrix(QQ,2,2,[3, -13, 5,1]) A.eigenvectors_right()
Gives me: [(2 + 8I, [ (1, 0.07692307692307692? - 0.6153846153846154?I) ], 1), (2 - 8I, [ (1, 0.07692307692307692? + 0.6153846153846154?I) ], 1)]
Is there any way to make it give me integer or rational Re and Im for the eigenvectors?
Thank you!
These numbers (with a final ?) are algebraic numbers. They are exact, but cannot be displayed entirely because they have an infinite decimal expansion. You can use
parent(z)
to understand what a numberz
lives in.To compliment @FrédéricC's answer (who should turn his comment into an answer), you may try to retrieve (a) radical expression of (some) of these algebraic numbers with the
.radical_expression
method. For example :Of course, some algebraic numbers can be perfectly defined, printable to any desired precision, and have no radical ecpression ; for exemple, roots of polynomials of degree greater than 4 have, in general, no radical expression (Abel dixit, see Galois for explanations...).