Find true rank of a Matrix?
4 views (last 30 days)
Show older comments
I am comparing some Matlab code with c++ code. It appears as though the Matlab code is inverting a matrix which is rank deficient: at least to the c++ code. Additionally, Wolfram's CAS, reports the matrix as slightly rank deficient: although it still happily inverts it. For example, rank 5 instead of 6.
Doing some research it appears that the Matlab code does an svd style analysis. I was interest in 3 things:
1. Is there a different routine for rank calculation.
2. How do I get Matlab to spit out the same error that I get in c++ when inverting matrixes. This is pivotal - no pun intended - for verifying that my c++ code works. Is there a precision modifier?
3. Why is SVD considered "the most reliable". How much of the SVD does it do? Any musings on using SVD for rank analysis are welcome - I am just starting out in the numerical simulation field.
1 Comment
the cyclist
on 25 Jul 2011
It would be very handy if you could post a specific matrix that exhibit the behavior you are interested in, to anchor the discussion.
Accepted Answer
the cyclist
on 25 Jul 2011
I am not an expert in this, but from scanning the documentation it looks like you might be able to use pinv() or svds(), and set the tolerance to a specific value. The rank() command might also be handy.
0 Comments
More Answers (0)
See Also
Categories
Find more on Linear Algebra in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!