You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Hank Grabowski (JIRA)" <ji...@apache.org> on 2014/10/06 03:14:34 UTC
[jira] [Comment Edited] (MATH-1138) BicubicSplineInterpolator is
returning incorrect interpolated values
[ https://issues.apache.org/jira/browse/MATH-1138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14159777#comment-14159777 ]
Hank Grabowski edited comment on MATH-1138 at 10/6/14 1:13 AM:
---------------------------------------------------------------
I'm still working on the new coding up. I'm trying to investigate why I'm not getting the same numerical accuracies out of my Apache Math implementation as I am out of my Octave implementation. My linear case is only matching to within 1e-13 while it should be matching to within 1e-14, according to the results I get from Octave's built in function and my own hand coded function. My parabaloid test should be within 1e-14 as well, but I'm no where near that. I'm currently investigating the Spline interpolator. The sensitivities on that object's tests aren't cranked down anywhere near 1e-14/1e-15. I checked Math.NET unit tests and theirs are cranked down to that level, as are the levels I'm seeing in Octave. I was therefore going to add some additional tests modeled after the Math.NET tests (the are using an MIT license, so that's compatible with this project).
was (Author: hankg):
I'm still working on the new coding up. I'm trying to investigate why I'm not getting the same numerical accuracies out of my Apache Math implementation as I am out of my Octave implementation. My linear case is only matching to within 1e-13 while it should be matching to within 1e-14, according to the results I get from Octave's built in function and my own hand coded function. My parabaloid test should be within 1e-14 as well, but I'm no where near that. I'm currently investigating the Spline interpolator. The sensitivities on that object's tests aren't cranked down anywhere near 1e-14/1e-15. I checked Math.NET unit tests and theirs are cranked down to that level, as are the levels I'm seeing in Octave.
> 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
> Attachments: Interpolated Values from CM and MatLab.docx
>
>
> 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.3.4#6332)