0

基本上,我有一组多达 100 个坐标,以及曲线的第一个点和最后一个点所需的切线。

我研究了各种曲线拟合方法,我的意思是一种算法,它采用输入的数据点和切线,并输出治愈方程,例如高斯法和插值法,但我真的很难理解它们。

我不是要代码(如果你选择给它,那是可以接受的:)),我只是在寻找这个算法的帮助。它最终将被转换为 iPhone 应用程序的 Objective-C,如果这改变了任何东西..

编辑: 我知道所有点的顺序。它们并不太靠近,因此必须通过所有点 - 也就是插值(除非有人可以提出其他建议)。据我所知,代数曲线是我正在寻找的。顺便说一句,这一切都是在二维平面上完成的

4

2 回答 2

3

我建议考虑三次样条。在数字食谱书(第 3.3 章)中有一些解释和代码可以用纯 C 语言计算它们

于 2012-10-22T17:50:32.553 回答
1

大多数插值方法最初使用函数:给定一组xy值,它们计算一个函数,该函数为每个x值计算一个y值,满足指定的约束。由于函数只能为每个x值计算一个y值,因此这样的曲线不能在自身上循环。

要将其转换为真正的 2D 设置,您需要两个分别计算x的函数。y值基于一些通常称为t的参数。所以第一步是计算输入数据的t值。您通常可以通过对欧几里德距离求和来获得一个很好的近似值:考虑一条将所有点与直线段连接起来的折线。然后参数将是每个输入对沿这条线的距离。

所以现在你有两个插值问题:一个从 t 计算x 另一个从t计算y。您可以将此公式化为样条插值,例如使用三次样条。这为您提供了一个大型线性方程组,您可以迭代求解,直至达到所需的精度。

样条插值的结果将是合适曲线的分段描述。如果你想要一个单一的方程,那么拉格朗日插值就可以满足这个要求,但是对于许多输入数据集,结果可能会有奇怪的曲折。

于 2012-10-23T18:37:41.760 回答