我正在分析二维平面中粒子的轨迹。这个轨迹通常由5到50个点(很少有更多)点(离散整数坐标)组成。我已经匹配我的数据集的点,以形成一个轨迹(因此,我有时间分辨率)。
我想对这个轨迹的曲率进行一些分析,不幸的是,我使用的分析框架不支持拟合轨道。据我所知,人们可以使用样条/贝塞尔曲线来完成这项工作,但我希望你的意见和/或建议,使用什么。
由于这只是我工作中的一个可选部分,我无法投入大量的时间来单独实现解决方案或理解复杂的框架。解决办法必须尽可能简单。
让我从一个可能的库中指定我需要的特性:
编辑:在阅读评论后,我想再添加一些:
轨迹与点完全匹配是不必要的。这些点是从像素矩阵的值中创建的,因此它们形成了一个离散的坐标矩阵,其空间分辨率受到每一给定距离像素数的限制。因此,点(放置在发射像素的中心)与粒子的实际轨迹不完全匹配。插值或拟合对我来说都很好,只要解能处理一个轨迹,这个轨迹很可能既不是双射的,也不是内射的。
因此,大多数传统的拟合方法(如多项式拟合或指数函数拟合)都不能满足我的准则。
此外,所有传统的拟合方法,我已经尝试了一个函数,它似乎很好地描述了轨道,但是当我们看到它们的一阶导数(或更高的分辨率)时,我们可以发现许多“微振荡”,这是(从我的解释中)将非直线函数拟合到(几乎)直线部分轨道的结果。
Edit2:在评论中有一些讨论,这些轨迹可能是什么样子。基本上,它可能有任何形状,长度和“卷曲”,虽然我试图排除轨道重叠或交叉在前面的步骤。下面我包含了两个例子;忽略有色框,它们只是原始像素矩阵值的表示。黑色圆点是我想要与轨迹匹配的点,因为你可以看到它们总是以像素为中心,因此可能只有离散(整数)值。


提前感谢您的帮助和贡献!
发布于 2012-06-14 16:08:36
这可能是一条路
http://alglib.codeplex.com/
从你的描述,我会说,参数样条插值可能适合你的要求。我本人没有使用过上述库,但它确实支持样条插值。使用插值意味着你不必担心拟合的好坏--曲线会穿过你给它的每一个点。
发布于 2012-06-14 16:20:34
如果您不介意使用矩阵库,那么线性最小二乘是最简单的解决方案(请看通用问题一节的末尾,方程可以使用)。您也可以使用线性/多项式回归来解决类似的问题。
线性最小二乘总是给出最好的解,但它不是可伸缩的,因为矩阵乘法的代价是适中的。回归是一种迭代的启发式方法,所以您可以直接运行它,直到得到“足够好”的答案为止。我已经在你的数据中看到了大约1000到10000维的截止准则。因此,对于你的数据集,我建议线性最小二乘,除非你决定让它们因某种原因而具有很高的维度。
https://stackoverflow.com/questions/11036231
复制相似问题