Closed. This question needs to be more focused。它当前不接受答案。












想要改善这个问题吗?更新问题,使它仅关注editing this post的一个问题。

1年前关闭。



Improve this question




我需要找到未定义函数与阈值相交的点的近似值。我正在逐步穿越空间,每当发现随后的两个步骤在阈值的不同侧时,我会在两者之间添加一个点:

approximation - 插值建议(线性,三次?)-LMLPHP

(来源:ning.com)

我的第一种方法是选择中间点,但这显然是一个糟糕的解决方案:

approximation - 插值建议(线性,三次?)-LMLPHP

(来源:ning.com)

我现在使用的是线性插值,可以得出合理的结果,但是底层函数实际上永远不会是线性的。因此,这仅在我的步长足够小时才有效:

approximation - 插值建议(线性,三次?)-LMLPHP

(来源:ning.com)

对基函数进行采样可能会非常昂贵,但是我想尝试添加一个或两个附加采样以获得更好的近似值。可以在这里使用三次插值吗?像这样:

approximation - 插值建议(线性,三次?)-LMLPHP
(来源:ning.com)

还是有更好的方法?

多谢,
大卫·鲁滕

ps。我正在用C#编写,但这是语言不可知的问题。

最佳答案

您的最后一张图片仅显示了三个点,这些点仅足以定义二次多项式,而不是三次。对于三次插值,您将需要四个点。三次多项式可以用不同的方式拟合。这是两个。

最直接的方法是简单地使(唯一)多项式通过所有四个点。

另一种方法是使用切线。同样,我们需要四点。让左边的两个点定义一个斜率。让多项式通过第二个点(通常不通过第一点),并匹配该点的计算斜率。第四点和第三点在右侧相同。

顺便说一句,任何高阶多项式可能都不是个好主意,因为在存在一点输入噪声的情况下,它们往往变得非常不稳定。

如果您提供有关问题域的更多详细信息,我也许可以给出更具体的答案。例如,您的数据点来自哪里,通常可以期望什么样的曲线,如果需要,您可以返回并进行更多采样吗?如果需要,我也可以提供方程式和伪代码。

更新:愚蠢的我离开了一个句子,指的是两种方式,而无需输入它们。立即输入。

关于approximation - 插值建议(线性,三次?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1451833/

10-11 20:53