Mercurial > dive4elements > river
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;