3

嗨,我有一堆 XYZ 数据点。我想估计一个最适合这些点的表面,以便稍后我可以输入一个 XY 对并返回这个 XY 对位于表面上的 Z 值。

是否有现有的 Java 库可以为我估算表面?

如果没有,任何人都可以向我推荐一些可以描述计算方法的东西吗?

如果可能的话,我希望能够对这些点进行加权(有些点不太可靠,因此对成品表面的影响应该较小)。

4

1 回答 1

2

这类问题最好用线性最小二乘法解决。但是我不会尝试阅读维基百科文章,它似乎是为数学家写的。

这个想法是将问题变成线性优化问题。在您的情况下,我会尝试拟合 2D 多项式。这是一个形式为:

z(x, y) = A + Bx + Cy + Dx^2 + Exy + Ey^2 + Fx^3 + Gx^2y + Hxy^2 + Iy^3 + ...

你明白了。对于给定的数据集,任务简化为找到最适合数据点的参数 A 到 I。这类问题很容易用线性最小二乘法解决。

查看此代码以将椭圆拟合到 3D 数据点。通过一些努力,您可以对其进行调整以适应上述形式的多项式。

祝你好运!

于 2013-03-03T21:22:00.083 回答