Inverse without the determinant normalization?
古いコメントを表示
When you take the inverse of square matrix M, you usually normalize with the determinant (1/det(M)). I am wondering if there is any to calculate the inverse in MATLAB without such normalization.
I am looking for solutions other than det(M)*inv(M), since in some cases det(M) is 0 in floating point arithmetic. Does anyone know? Thanks so much!
1 件のコメント
Walter Roberson
2014 年 1 月 31 日
Symbolic Toolbox could give you higher precision.
回答 (2 件)
Roger Stafford
2014 年 1 月 31 日
As one can see from Cramer's rule, the matrix you seek can be formed from the various cofactors of the determinant of M. I see some contributions in Mathworks' File Exchange which will give you these:
http://www.mathworks.com/matlabcentral/fileexchange/28672-cofactors/content/cofactors.m
http://www.mathworks.com/matlabcentral/fileexchange/2166-introduction-to-linear-algebra/content/strang/xcofactor.m
Jan
2014 年 1 月 31 日
Why do you assume, that the inverse is normalized?
M = rand(3);
P = inv(M);
Q = M * P
Now Q is the unity matrix, which implies, that P is not normalized. So what does "you usually normalize" exactly mean?
1 件のコメント
Roger Stafford
2014 年 1 月 31 日
Jan, I don't think that is the kind of "normalization" Ellen has in mind. Very likely it is the division by det(M) that occurs in Cramer's rule that is to be omitted. If you multiply each of the elements of inv(M) by det(M) what you get is the matrix of all cofactors of the transpose of M. That is presumably the "unnormalized matrix inverse" that is being sought.
カテゴリ
ヘルプ センター および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!