Mercurial > dive4elements > gnv-client
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) |