# HG changeset patch # User Sascha L. Teichmann # Date 1340635006 0 # Node ID 6b13d7e7b4030e82884180d503f66194f3ff5b11 # Parent 6d0567a8387d684c50a6dfc113a12e6ac5b2c082 FixA: Added more debug output. flys-artifacts/trunk@4778 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 6d0567a8387d -r 6b13d7e7b403 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Mon Jun 25 13:15:35 2012 +0000 +++ b/flys-artifacts/ChangeLog Mon Jun 25 14:36:46 2012 +0000 @@ -1,3 +1,13 @@ +2012-06-25 Sascha L. Teichmann + + * src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java: + Added debug output about the concrete coeffs found by the fitting. + + * src/main/java/de/intevation/flys/artifacts/math/fitting/Log.java, + src/main/java/de/intevation/flys/artifacts/math/fitting/LogLinear.java: + Re-checked the partial deviations to the coeffs. Write the formulas + more human readable. + 2012-06-25 Sascha L. Teichmann * src/main/java/de/intevation/flys/jfree/ShapeRenderer.java: If a label collides diff -r 6d0567a8387d -r 6b13d7e7b403 flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/fitting/Log.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/fitting/Log.java Mon Jun 25 13:15:35 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/fitting/Log.java Mon Jun 25 14:36:46 2012 +0000 @@ -33,9 +33,12 @@ @Override public double [] gradient(double x, double [] parameters) { + double m = parameters[0]; + double b = parameters[1]; + double b_x = b + x; return new double [] { - Math.log(x + parameters[1]), - parameters[0]/(x + parameters[0]) + Math.log(b_x), + m/b_x }; } diff -r 6d0567a8387d -r 6b13d7e7b403 flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/fitting/LogLinear.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/fitting/LogLinear.java Mon Jun 25 13:15:35 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/fitting/LogLinear.java Mon Jun 25 14:36:46 2012 +0000 @@ -37,11 +37,16 @@ @Override public double [] gradient(double x, double [] parameters) { - double l = parameters[1]*x + parameters[2]; + double a = parameters[0]; + double m = parameters[1]; + double b = parameters[2]; + + double lin = m*x + b; + return new double [] { - Math.log(l), - parameters[0]*x/l, - parameters[0]/l + Math.log(lin), + a*x / lin, + a / lin }; } diff -r 6d0567a8387d -r 6b13d7e7b403 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java Mon Jun 25 13:15:35 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java Mon Jun 25 14:36:46 2012 +0000 @@ -239,13 +239,17 @@ } int row = results.newRow(); + double [] values = fitting.getParameters(); results.set(row, kmIndex, km); results.set(row, chiSqrIndex, fitting.getChiSquare()); results.set(row, stdDevIndex, fitting.getStandardDeviation()); results.set(row, maxQIndex, fitting.getMaxQ()); - invalid |= results.set( - row, parameterIndices, fitting.getParameters()); + invalid |= results.set(row, parameterIndices, values); + + if (debug) { + log.debug("km: "+km+" " + toString(parameterNames, values)); + } } if (debug) { @@ -273,6 +277,14 @@ return new CalculationResult(fr, this); } + protected String toString(String [] parameterNames, double [] values) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < parameterNames.length; ++i) { + if (i > 0) sb.append(", "); + sb.append(parameterNames[i]).append(": ").append(values[i]); + } + return sb.toString(); + } protected List getEventColumns(FixingsOverview overview) {