Why is the inverse of a symmetric matrix not symmetric?!
조회 수: 9 (최근 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!