Why is the inverse of a symmetric matrix not symmetric?!

19 ビュー (過去 30 日間)
Ted
Ted 2013 年 5 月 8 日
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!

採用された回答

Roger Stafford
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.
  2 件のコメント
Ted
Ted 2013 年 5 月 10 日
Thanks for the tip.
The errors were small. I've now forced my "inverse" to be symmetric:
>> invCtrans = invC';
>> invC = triu(invC) + tril(invCtrans) - diag(diag(invC);
What I'm really trying to do now is use the chol() command for cholesky factorization. I know I need a symmetric positive definite matrix (spd), and I've checked by using eigs(invC,10,0), which tells me the 10 smallest eigenvalues are all positive. I'm still getting the following though:
>> U = chol(invC)
error using chol: matrix must be positive definite
... Any thoughts? Doesn't my eigenvalues test show that invC is spd?
Ted
Ted 2013 年 5 月 10 日
Never mind. I was getting the 10 eigenvalues with smallest magnitude, rather than the "most-negative."

サインインしてコメントする。

その他の回答 (1 件)

Youssef  Khmou
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 )
  1 件のコメント
Ted
Ted 2013 年 5 月 10 日
The "symdec" command doesn't help me. I don't have the Robust Control Toolbox...

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by