Posted Tuesday, July 07, 2009 7:55 AM
|
|
|
|
Hello!
I have tried to invert the following matrix:
5405 1517 172 460 527 770 1032 563 182 182 4291
1517 1517 0 0 0 0 0 0 0 0 1016
172 0 172 0 0 0 0 0 0 0 145
460 0 0 460 0 0 0 0 0 0 421
527 0 0 0 527 0 0 0 0 0 464
770 0 0 0 0 770 0 0 0 0 589
1032 0 0 0 0 0 1032 0 0 0 881
563 0 0 0 0 0 0 563 0 0 461
182 0 0 0 0 0 0 0 182 0 158
182 0 0 0 0 0 0 0 0 182 156
4291 1016 145 421 464 589 881 461 158 156 4291
The result is really really strange, with large numbers which simply do not seem right. Also, as far as I can see, multiplying the inverse with the original does not yield the neat diagonal line of 1's I would expect.
Would you have any idea why that may be the case?
Kind regards,
Kong Georg
|
|
Posted Friday, November 06, 2009 6:22 PM
|
|
|
|
Your matrix is rank deficient. Feed it in to the calculator and do "matrix rank". You'll get 10. Since it's rank deficient, it should not have a matrix inverse.
Still it's bad that the inverter actually gives a matrix instead of an error.
If you want to rescue your calculation, you probably want to use the pseudoinverse and find the least squares/minimum norm solution. If that is the case, you can perform a Singular Value decomposition on the matrix to get:
U * S * V^T * x = b
Which should be straightforward to solve by doing:
S * V^T * x = U^T * b
Then, to find S^-1, you invert the diagonal elements in S. If an element is too large (naerly infinity) or too small (nearly 0), you just clamp it to 0. Then with it, you can do:
V^T * x = S^-1 * U^T * b
x = V * S^-1 * U^T * b
x will then be as close solving the system of equations as the equations can possible allow. If there are an infinite number of solutions, it's the solution with the least magnitude.
Alternatively, just check "Moore-Penrose Inverse" instead of inverse. the MPI will be the same as the inverse in cases where the inverse exists. In cases where it does not exist, it gives a pretty good alternative you can use to solve systems of equations in the same way.
|
|
|
|