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

Curve fitting appears unreliable

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Invalid
    • Affects Version/s: 2.1
    • Fix Version/s: None
    • Environment:

      Win7 x64, Netbeans, JDK 1.6.0.18

      Description

      I've been trying to find a good curve fitting library for Java for the last couple of weeks. I came across Apache Commons Math and was really excited because I like all things Apache. The curve fitting API looks good and is fairly easy to use, however, it doesn't seem to be as accurate as it should/could be.

      I've produced some code and data that shows that the initial parameter guesses affect the results too much. Guess low and the curve ends up low, guess high and the curve ends up high. I wish I had a stronger statistics/math background to make more sense of this. I've tried playing with the optimizer's options (costRelativeToTolerance, initialStepBoundFactor, maxEvaluations, maxIterations, orthTolerance and parRelativeTolerance) but nothing seems to improve the end result.

      I've attached the spreadsheet and Java code. FYI, in the spreadsheet you'll see an entry in the chart for DataFitX. It is a COM library used in my company's current software that needs to be replaced.

      Any help on this would be greatly appreciated. If you need more info, let me know and I'll supply it as quickly as I can.

      Thanks,
      Matt

        Attachments

        1. CurveFitting.ods
          24 kB
          Matt Price
        2. CurveFitterDebug.java
          3 kB
          Matt Price

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              mprice Matt Price
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

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