Why is the inverse of a symmetric matrix not symmetric?!
18 views (last 30 days)
Show older comments
Hi all, As far as I know, the inverse of symmetric matrix is always symmetric. However, I have a symmetric covariance matrix, call it C, and when I invert it (below), the solution, invC, is not symmetric!
>> invC = inv(C); % (inefficient I know, but it should still work...)
>> isequal(invC,invC')
ans = 0
Has anyone had this issue? Can this be due to rounding errors? My matrix is 1810x1810 with many entries like 0.0055, etc.
Thanks in advance!
0 Comments
Accepted Answer
Roger Stafford
on 8 May 2013
Yes, it's roundoff error. Instead of 'isequal' which demands exact equality, try displaying the difference invC-invC' to see if the differences fall within the range of what you would regard as reasonable round off errors. With a matrix which is close to being singular these can be surprisingly large sometimes.
More Answers (1)
Youssef Khmou
on 8 May 2013
Edited: Youssef Khmou
on 8 May 2013
hi,
Try to use a tolerance criterion :
C=symdec(100,100);
C=C/max(C(:))
I1=inv(C);
I2=inv(C');
norm(I1-I2) % its not zeros but saturated to zero (1e-n , n>20 )
See Also
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!