Uploaded image for project: 'Commons Math'
  1. Commons Math
  2. MATH-601

SingularValueDecompositionImpl psuedoinverse is not consistent with Rank calculation

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.2
    • 3.0
    • None
    • All

    Description

      In the SingularValueDecompositionImpl's internal private class Solver, a pseudo inverse matrix is calculated:

      In lines 2600-264 we have:

      if (singularValues[i] > 0)

      { a = 1 / singularValues[i]; }

      else

      { a = 0; }

      This is not consistent with the manner in which rank is determined (lines 225 to 233). That is to say a matrix could potentially be rank deficient, yet the psuedoinverse would still include the redundant columns...

      Also, there is the problem of very small singular values which could result in overflow.

      Attachments

        Activity

          People

            psteitz Phil Steitz
            gsteri1 greg sterijevski
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 24h
                24h
                Remaining:
                Remaining Estimate - 24h
                24h
                Logged:
                Time Spent - Not Specified
                Not Specified