我想插入3D标量函数f(x, y, z)
。我编写了一个3D线性插值算法(http://en.wikipedia.org/wiki/Trilinear_interpolation)。这并没有那么糟糕。C(或Fortran)中的3D插值方法以及与Shepard方法的比较
但是,我想要更复杂的东西,例如,三维立方样条。是否有任何开源,易于使用的公开可用的代码来插入3D标量?我宁愿使用C,但Fortran也可以。我想远离Matlab。
我也有类似的问题在这里问:
Interpolating a scalar field in a 3D space
和
What are some good libraries for 3D interpolation?
第二个是确定用Matlab,这我不是。
至于第一个,主要建议是谢泼德的方法。我很好奇Shepard的方法有多精确。例如,在均匀网格的情况下,可以将Shepard方法仅应用于附近的网格点,在这种情况下,它是否比线性插值或三次样条更精确?我想不是,但不是100%确定的,如果事实上它不是更好,那么如果有任何这样的代码可用,我宁愿使用样条线来查找代码。
为什么你不想使用matlab? – DSF
我将需要一个大型项目的插值算法,如果所有项目都是用Matlab编码的话,我相信它会太慢。 – db1234
您能否描述您的输入和输出网格:均匀/不均匀,多大? – denis