mldivide function (matrix left division) C++ analogs

10 views (last 30 days)
Hello, I have a little trouble with implementing in C++ some code I've tested in Matlab. It appears that sparse matrix division that worked perfect in Matlab 2011a, gave different results using common C++ libraries (as LAPACK etc). I'm working with symmetrical positive sparse matrix A and solving the linear equation Ax=b. (in Matlab solution is x = mldivide (A,b);) Maybe someone found this issue previously? I believe it is probably because C++ solver is stuck in some wrong solution since the matrix may be close to singular, however Matlab somehow overcomes this and only gives me a warning that the matrix is close to singular. Thank you

Answers (1)

Jan
Jan on 11 Dec 2011
If the matrix is close to singular, you cannot expect a valid or unique solution. Therefore it is not surprising that your get "different" results.
  2 Comments
genawas Vasserman
genawas Vasserman on 11 Dec 2011
Thank you.
Is there any C++ solver that performs close/similar to Matlab mldivide? Or what method does mldivide uses to solve linear equation for sparse positive symmetrical matrix?
Jan
Jan on 11 Dec 2011
The used LAPACK routines are explained exhaustively in "doc mldivide". E.g.:
[quote]Note To see information about choice of algorithm and storage allocation for sparse matrices, set the spparms parameter 'spumoni' = 1[/quote]

Sign in to comment.

Categories

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!