# Symbolic matrices and "integrity" of their inverse

 1 I have to solve the following problem: Does a matrix $G\in GL(n,\mathbb{Z})$ exists such that $$G\times A\times G^{-1}=B$$ being $A,B$ given matrices in $\mathbb{Q}$? Doing everything by hand, I finally find myself with a bunch of symbolic matrices. Now I have to check if they can lay inside $GL(n,\mathbb{Z})$, i.e. if there are integer values for the variables in the matrix such that the matrix is integer, invertible and with integer inverse. E.g.: $$\left(\begin{array}{cc}x & 0 \\ 0 & y\end{array}\right)$$ does the trick only for $x=y=1$. Is there a quick method within Sage to solve that last problem? Thanks! asked Oct 17 '11 Jesustc 260 ● 4 ● 16 An integer matrix is in GL(n,Z) (i.e., invertible with integer inverse) if and only if its determinant is 1 or -1 (from wikipedia: a square matrix over a commutative ring is invertible if and only if its determinant is a unit in that ring.) This might help you...parzan (Oct 18 '11)It does help me indeed, thanks! I should have known that...My main concern now is how to find out whether a polynomial equation (det=+/-1) has integer roots or not. "assume()" does not the trick :(Jesustc (Oct 18 '11)This is in general an undecidable question - see http://en.wikipedia.org/wiki/Hilbert%27s_tenth_problem. However, for specific cases you might be able to find a solution.parzan (Oct 18 '11)"Integrality" would be a better word than "integrity".John Palmieri (Oct 18 '11)Thanks a lot for the comments, Parzan and Palmieri! What do you think about erasing the question? I don't think it is useful for anybody.Jesustc (Oct 28 '11)

 1 A direct approach (not using symbolic solving) could be: sage: A = matrix(QQ,[[3,1],[2,4]]) ; A [3 1] [2 4] sage: B = matrix(QQ,[[2,4],[0,5]]) ; B [2 4] [0 5] sage: A.is_similar(B) True sage: T = A.is_similar(B,transformation=True)[1] ; T [ 1.000000000000000? 0.?e-18] [0.2500000000000000? 0.2500000000000000?] sage: T.change_ring(QQ) [ 1 0] [1/4 1/4] sage: G = T.change_ring(QQ)/det(T) ; G [4 0] [1 1] sage: G * A * G^(-1) == B True  See A.is_similar? for details. posted Jun 26 tmonteil 3583 ● 3 ● 37 ● 83 http://wiki.sagemath.org/... That's a good one, thanks!Jesustc (Aug 03)

[hide preview]