comparison gnv-artifacts/src/main/java/de/intevation/gnv/math/LinearFunction.java @ 433:828df3ddb758

Added interpolation capabilities along z axis to XYColumns. gnv-artifacts/trunk@481 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 23 Dec 2009 12:20:25 +0000
parents 25e4724aa504
children d9d933e06875
comparison
equal deleted inserted replaced
432:6a70e8883307 433:828df3ddb758
1 package de.intevation.gnv.math; 1 package de.intevation.gnv.math;
2 2
3 import org.apache.commons.math.optimization.fitting.ParametricRealFunction; 3 import org.apache.commons.math.optimization.fitting.ParametricRealFunction;
4 4
5 import org.apache.commons.math.FunctionEvaluationException; 5 import org.apache.commons.math.FunctionEvaluationException;
6
7 import org.apache.commons.math.analysis.UnivariateRealFunction;
6 8
7 /** 9 /**
8 * @author Sascha L. Teichmann 10 * @author Sascha L. Teichmann
9 */ 11 */
10 public class LinearFunction 12 public class LinearFunction
11 implements ParametricRealFunction 13 implements ParametricRealFunction
12 { 14 {
13 public static final LinearFunction INSTANCE = new LinearFunction(); 15 public static final LinearFunction INSTANCE = new LinearFunction();
16
17 public static class Univariate
18 implements UnivariateRealFunction
19 {
20 protected double m;
21 protected double b;
22
23 public Univariate() {
24 }
25
26 public Univariate(double x1, double y1, double x2, double y2) {
27 if (y1 == y2) {
28 m = 0d;
29 b = (x1 + x2)*0.5d;
30 }
31 else {
32 m = (x1 - x2)/(y1 - y2);
33 b = y1 - m*x1;
34 }
35 }
36
37 public double value(double x) {
38 return m*x + b;
39 }
40 } // class Univariate
14 41
15 public LinearFunction() { 42 public LinearFunction() {
16 } 43 }
17 44
18 public double value(double x, double [] parameters) 45 public double value(double x, double [] parameters)

http://dive4elements.wald.intevation.org