I have a problem with matrix inversion:
Matrix ist small (< 10x10) and quadratic.
I invert the matrix using TMatrix (which is, I think: typedef TMatrixT TMatrix) but it happens with a lot of other root-matrices
I multiply the inverted matrix to the original matrix and look at the result, that should be unity by definition.
It isn’t. The diagonal elements are any number and the off-diagonal elements are far off the Zero (let’s say around 1e-1 to 1e+20).
Now the usual “send me a simple running example” doesn’t work, since this error doesn’t occur in “small simple running programs”. It only occurs if there is a bit of an overhead. This leads to the assumption that it is a memory problem. But the memory consumed is not so much that it could be an out of memory problem (<100Mb of 4Gb) and the prog is not so large, that I lost track of allocated memory -I checked that more than once. And it should not happen with the first inversion but, let’s say with the hundredth.
Can you give me a reason why this happens and how this problem can be solved.
PS: I discussed that with some colleagues and they gave me a lot of advice:
-don’t use THilbertMatrix of any type, there inversion always fails,
-don’t use TMatrixT, there inversion fails,
-compile your program, don’t let it run in CINT
But these didn’t change anything (since I already used them).