the standard way to go is
(1) first, compute a QR factorization of your matrix A, if A is m-by-n,
this will cost you 2m*n^2-2/3*n^3, this is done with DGEQRF
(2) the 2-norm condition number of A and the 2-norm condition number of R
will then be the same, so you compute the condition number of R with
DTRCON, this cost a few n^2. You can choose the norm in which you want the
condition number. Can be 1-norm or inifinity-norm. And also keep in mind
that DTRCON returns a condition number estimate. (Computing the exact
condition number would require n^3 computation.)
If you do need the QR factorization of your initial matrix A, then this
method is fine since step (1) (step in mn^2) is needed no matter what.
If you do not need the QR factorization of your initial matrix A and would
hope some methods to approximate the condition number in O(mn), this is
doble but there are no routines in LAPACK to do so. (These would be more
iterative mehods like techniques).
If you absolutely want the 2-norm condition number of A and n is small,
you might want to afford the full SVD of R. (DGESVD, this n^3.)
On Wed, 1 Aug 2007, Dima Sorkin wrote:
I want to get a fast approximation for a condition number
of a general non square matrix. Or at least it's smaller
singular value. SVD is too heavy for me.
1) Is there faster methods via lapack, than SVD ?
2) If I can provide a pretty good initial guess for cond or
singular value - can I gain from it ?
Lapack mailing list