Dav*_*ten 5 approximation cubic linear-interpolation
我需要找到未定义函数与阈值相交的点的近似值。我正在逐步穿越空间,每当发现随后的两个步骤位于阈值的不同侧时,我会在两者之间添加一个点:
我的第一种方法是选择中间点,但这显然是一个糟糕的解决方案:
我现在使用的是线性插值,可以得出合理的结果,但是底层函数实际上永远不会是线性的。因此,这仅在我的步长足够小时才有效:
对基本函数进行采样可能会非常昂贵,但是我想尝试添加一个或两个其他采样以获得更好的近似值。这里可以使用三次插值吗?像这样:

(来源:ning.com)
还是有更好的方法?
David Rutten非常有义务
ps。我正在用C#编写,但这是语言不可知的问题。
您的最后一张图片仅显示三个点,仅足以定义二次多项式,而不是三次多项式。对于三次插值,您需要四个点。三次多项式可以用不同的方式拟合;这里有两个。
最直接的方法是简单地让(唯一)多项式通过所有四个点。
另一种方法是使用切线。同样,我们需要四点。让左边的两点定义一个斜率。让多项式通过第二个点(通常,它不会通过第一个点),并匹配该点计算的斜率。右侧第四点和第三点也是如此。
顺便说一句,任何高阶多项式都可能不是一个好主意,因为即使存在一点点输入噪声,它们也会变得非常不稳定。
如果您提供有关您的问题领域的更多详细信息,我也许可以给出更具体的答案。例如,您的数据点来自哪里,您通常可以期望什么样的曲线,以及如果需要的话您可以返回并采样更多吗?如果需要的话,我也可以提供方程和伪代码。
更新:愚蠢的我留下了一句话,提到了两种方式,但没有把它们打出来。现在把它们打出来。