这是我想做的事情(最好是用Matlab):
基本上我有几条汽车在十字路口行驶的痕迹。每一个都是嘈杂的,所以我想在所有测量中取平均值以获得更好的逼近真实路线。换句话说,我正在寻找一种近似曲线的方法,曲线对所有测量的痕迹(在最小二乘意义上)具有最小的能力。
乍一看,这与使用CurveFitting Toolbox的spap2可以实现的非常相似(最小二乘近似 here部分中的好例子)。 但是这个算法有一个主要的缺点:它假定一个函数(每个x只有一个y(x)),但我想要的是2d中的曲线(对于一个x可能有几个y(x))。当汽车向右或向左转动超过90度时,这会导致问题。 此外,它需要垂直偏移而不是垂直偏移(根据wolfram上的定义)。
有谁知道如何解决这个问题?我想过使用B样条并改变结的数量和度数,直到达到一定的拟合质量,但我找不到解决这个问题的方法或者使用CurveFitting Toolbox提供的函数。有没有办法在没有数值优化的情况下解决这个问题?
答案 0 :(得分:0)
在曲线上给出n个连续点,如果你知道它们,则给它们分配它们的真实时间,如果你不知道,只给它们整数0..n-1。然后用向量T,X和T,Y而不是X,Y两次调用spap2。现在对于任意t,你在曲线上得到一个点(x,y)。
这不会给你一个真正的最小二乘解决方案,但应该足以满足你的需求。