Why is the inverse of a symmetric matrix not symmetric?!
19 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Roger Stafford
2013-5-8
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.
更多回答(1 个)
Youssef Khmou
2013-5-8
编辑:Youssef Khmou
2013-5-8
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 )
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!