commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Bedrossian (JIRA)" <j...@apache.org>
Subject [jira] [Created] (MATH-1138) BicubicSplineInterpolator is returning incorrect interpolated values
Date Fri, 11 Jul 2014 18:52:05 GMT
Adam Bedrossian created MATH-1138:
-------------------------------------

             Summary: BicubicSplineInterpolator is returning incorrect interpolated values
                 Key: MATH-1138
                 URL: https://issues.apache.org/jira/browse/MATH-1138
             Project: Commons Math
          Issue Type: Bug
    Affects Versions: 3.3
            Reporter: Adam Bedrossian


I have encountered a use case with the BicubicSplineInterpolator where the interpolated values
that are being returned seem incorrect.  Furthermore, the values do not match those generated
by MatLab using the interp2 'cubic' method.

Here is a snippet of code that uses the interpolator:

double[] xValues = new double[] {36, 36.001, 36.002};
        double[] yValues = new double[] {-108.00, -107.999, -107.998};

        double[][] fValues = new double[][] {{1915, 1906, 1931},
                                        {1877, 1889, 1894},
                                        {1878, 1873, 1888}};

        BicubicSplineInterpolator interpolator = new
BicubicSplineInterpolator();
        BicubicSplineInterpolatingFunction interpolatorFunction =
interpolator.interpolate(xValues, yValues, fValues);

        double[][] results = new double[9][9];
        double x = 36;
        int arrayIndexX = 0, arrayIndexY = 0;

        while(x <= 36.002) {
            double y = -108;
            arrayIndexY = 0;
            while (y <= -107.998) {
                results[arrayIndexX][arrayIndexY] =
interpolatorFunction.value(x,  y);
                System.out.println(results[arrayIndexX][arrayIndexY]);
                y = y + 0.00025;
                arrayIndexY++;
            }

            x = x + 0.00025;
            arrayIndexX++;
        }

Attached is a grid showing x and y values and the corresponding interpolated value from both
commons math and MatLab.

The values produced by commons math are far off from those created by MatLab.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message