Inversion of ill Contioned Matrices
Mostrar comentarios más antiguos
In my code I have to take inversion of matrices at a certain point. When I am trying to take the inverse of ill conditioned matrices, I am getting a weird result.
I am not trying to solve equations. I have to take inverse of a matrix, as part of a similarity measure process. I was trying to take the inverse directly, but it was being scaled badly and when I tried to multiply the inverse with the matrix itself, I was nowhere near an Identity matrix. I even tried Singular Value Decomposition (SVD) but no luck. To get a good answer I need to be as close as possible to the inverse as possible.
[U,S,V] = svd(C1);
S1 = zeros(16,16);
for j = 1:16
if S(j,j) ~= 0
S1(j,j) = 1/S(j,j);
end
end
C1_1 = V*S1*transpose(U);
C1*C1_1 was nowhere equal to identity
Can anyone suggest me a method about how to take inversion of ill conditioned matrices other than SVD. Thanks in advance.
1 comentario
John D'Errico
el 23 de Feb. de 2011
I don't even know from this example if C1 is a square matrix!!!!!!! Note that if C1 is not square, then it would NEVER result in an identity.
Respuestas (3)
Jan
el 24 de Feb. de 2011
2 votos
Have you tried Rump's INTLab?
Alain Barraud has publsihed some methods for accurate linear algebra also: http://www.mathworks.com/matlabcentral/fileexchange/10668-a-forward-stable-linear-solver
Andrew Newell
el 23 de Feb. de 2011
C1 = vpa(C1);
C1_1 = inv(C1);
EDIT: If you don't have it, you could try downloading Multiple Precision Toolbox for MATLAB from the File Exchange and do the same thing with mp in place of vpa. I haven't used this toolbox myself, but judging by the list of functions you'll probably want to do this:
C1 = mp(C1);
C1_1 = inv(C1);
2 comentarios
Harsha
el 23 de Feb. de 2011
Andrew Newell
el 24 de Feb. de 2011
I have added explicit commands above, but they're just guesses. You'll have to click on the link, download the package, and read the documentation.
Harsha
el 23 de Feb. de 2011
0 votos
1 comentario
Andrew Newell
el 23 de Feb. de 2011
See above. This Answer should really be a Comment.
Categorías
Más información sobre Conversion Between Symbolic and Numeric en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!