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
andK_2
- that i will denote byA
andB
below? If this is the inexact complex fieldCC
taken with some precision, well some in between steps are failing. Here is the reason foris_similar
as documented:.... continued:
This information can be obtained via
A.is_similar?
for an already defined matrixA
. If the domain for the entries is not exact, then there are usual determinant instability issues. If there is a special form forA, 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.