diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/Fitting.java @ 3107:cbf308f5c41b

FixA: Store the standard deviation of delta Ws of reference points into parameters, too. flys-artifacts/trunk@4706 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 19 Jun 2012 15:28:40 +0000
parents d7b0f52d6d04
children 71484036b6ae
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/Fitting.java	Tue Jun 19 14:01:47 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/Fitting.java	Tue Jun 19 15:28:40 2012 +0000
@@ -1,11 +1,16 @@
 package de.intevation.flys.artifacts.model.fixings;
 
+import de.intevation.flys.artifacts.math.Outlier.IndexedValue;
+import de.intevation.flys.artifacts.math.Outlier.Outliers;
+
+import de.intevation.flys.artifacts.math.Outlier;
+
 import de.intevation.flys.artifacts.math.fitting.Function;
 
-import de.intevation.flys.artifacts.math.Outlier;
+import gnu.trove.TDoubleArrayList;
 
-import de.intevation.flys.artifacts.math.Outlier.IndexedValue;
-import de.intevation.flys.artifacts.math.Outlier.Outliers;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.commons.math.MathException;
 
@@ -13,13 +18,10 @@
 
 import org.apache.commons.math.optimization.general.LevenbergMarquardtOptimizer;
 
-import gnu.trove.TDoubleArrayList;
+import org.apache.commons.math.stat.descriptive.moment.StandardDeviation;
 
 import org.apache.log4j.Logger;
 
-import java.util.ArrayList;
-import java.util.List;
-
 public class Fitting
 {
     private static Logger log = Logger.getLogger(Fitting.class);
@@ -45,6 +47,7 @@
     protected double []     parameters;
     protected ArrayList<QW> removed;
     protected QWD []        referenced;
+    protected double        standardDeviation;
 
 
     public Fitting() {
@@ -95,6 +98,7 @@
         parameters = null;
         removed.clear();
         referenced = null;
+        standardDeviation = 0.0;
     }
 
     public boolean hasOutliers() {
@@ -129,6 +133,10 @@
         return parameters;
     }
 
+    public double getStandardDeviation() {
+        return standardDeviation;
+    }
+
     public boolean fit(double [] qs, double [] ws) {
 
         TDoubleArrayList xs = new TDoubleArrayList(qs.length);
@@ -205,6 +213,8 @@
             }
         }
 
+        StandardDeviation stdDev = new StandardDeviation();
+
         referenced = new QWD[xs.size()];
         for (int i = 0; i < referenced.length; ++i) {
             QWD qwd = qwdFactory.create(xs.getQuick(i), ys.getQuick(i));
@@ -216,9 +226,12 @@
                 referenced[i] = qwd;
                 double dw = (qwd.getW() - instance.value(qwd.getQ()))*100.0;
                 qwd.setDeltaW(dw);
+                stdDev.increment(dw);
             }
         }
 
+        standardDeviation = stdDev.getResult();
+
         chiSqr = lmo.getChiSquare();
 
         return true;

http://dive4elements.wald.intevation.org