Why is the inverse of a symmetric matrix not symmetric?!
    12 次查看(过去 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!