# How to take inverse of matrix with complex entries

I am trying to find the similarity matrix between two 18 by 18 matrices `K_1`

and `K_2`

which are cospectral. The `is_similar()`

function takes too long to run. We can compute the similarity matrix by finding the transition matrices `S`

and Q which diagonalize both `K_1`

and `K_2`

. In other words, `S^(-1)*K_1*S = H = Q^(-1)*K_2*Q`

, where `H`

is a diagonal matrix. We then know that `Q*S^(-1)*K_1*S*Q^(-1) = K_2`

. My problem now though is that we can't compute `Q^(-1)`

or `S^(-1)`

since both `Q`

and `S`

have nasty complex numbers and the inverse method in Sage doesn't run fast enough. Any thoughts on how to quickly compute these inverses?

fyi, I did try using the left and right eigenmatrices to find the similarity matrix, but the eigenvectors didn't line up.

Which is the field / domain of definition for the entries of the two matrices

`K_1`

and`K_2`

- that i will denote by`A`

and`B`

below? If this is theinexactcomplex field`CC`

taken with some precision, well some in between steps are failing. Here is the reason for`is_similar`

as documented:.... continued:

This information can be obtained via

`A.is_similar?`

for an already defined matrix`A`

. If the domain for the entries is not exact, then there are usual determinant instability issues. If there is a special form for`A, B`

that may be used, some better field to work in... this may make a special specific solution possible. We do not have the two $18\times 18$ matrices, so it is hard to give a general advice to work for all general cases.