- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Well, with all the usual warnings....
Here's a piece of code I've been using for quite some time.
Usage is simple;
Call QRinv( A, Ai )
where A is the matrix you want inverted and Ai is the output inverse. Remember to allocate Ai before calling if it is dynamic.
Feel free to askif the code comments aren't sufficient.
Cheers, Cliff
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Anthony,
it really depends on what type of matrix you're going to invert. If it is well-conditioned try IMSL (or equivalent) LU decomposition like DLINRG (allows you to re-use the space of original matrix what can be nice if the size is a problem and you don't need the original), or generalized version DLSGRR. The latter is suited for ill-conditioned problems as it first decomposes matrix using SVD so you can handle problem of matrix singularity. Naturally, it makes it slower. If you don't have IMSL youshould find that sort of routines at Netlib. Definitely you'll find it in Numerical Recipes. I remember Jugoslav once pointed to some source code for generalized inverse, so try to search this forum on this as well.
A.