Geometry 二维曲线逼近

Geometry 二维曲线逼近,geometry,curve,approximation,Geometry,Curve,Approximation,以下是我想做的事情(最好使用Matlab): 基本上,我有几辆车在十字路口行驶的痕迹。每一个都有噪声,所以我想取所有测量值的平均值,以便更好地近似真实路线。换句话说,我正在寻找一种近似曲线的方法,该曲线与所有测量轨迹的距离最小(在最小二乘意义上) 乍一看,这与CurveFitting工具箱的spap2实现的功能非常相似(最小二乘近似中的一个很好的示例)。 但是这个算法有一些主要的缺点:它假设一个函数(每个x正好有一个y(x)),但我想要的是一条二维曲线(一个x可能有几个y(x))。当汽车以超过9

以下是我想做的事情(最好使用Matlab):

基本上,我有几辆车在十字路口行驶的痕迹。每一个都有噪声,所以我想取所有测量值的平均值,以便更好地近似真实路线。换句话说,我正在寻找一种近似曲线的方法,该曲线与所有测量轨迹的距离最小(在最小二乘意义上)

乍一看,这与CurveFitting工具箱的spap2实现的功能非常相似(最小二乘近似中的一个很好的示例)。 但是这个算法有一些主要的缺点:它假设一个函数(每个x正好有一个y(x)),但我想要的是一条二维曲线(一个x可能有几个y(x))。当汽车以超过90度的角度向右或向左转弯时,这会导致问题。 此外,它采用垂直偏移,而不是垂直偏移(根据上的定义)


有人知道如何解决这个问题吗?我曾想过使用B样条曲线并更改节点数和阶数,直到达到某种拟合质量,但我找不到通过分析或使用曲线拟合工具箱提供的函数来解决此问题的方法。有没有一种不用数值优化就能解决这个问题的方法?

姆贝基什是对的。为了在曲线形状中获得足够的灵活性,必须使用参数化曲线表示法(x(t),y(t))而不是显式表示法y(x)。看

给定曲线上的n个连续点,如果知道,则为其指定真实时间;如果不知道,则为其指定整数0..n-1。然后用向量T,X和T,Y而不是X,Y调用spap2两次。现在对于任意的T,你在曲线上得到一个点(X,Y)


这不会给你一个真正的最小二乘解,但应该足够满足你的需要。

你能让每条路径都成为时间的函数吗?对于每个时间值,一辆车只有一个(x,y)坐标。这就产生了一个问题,即每辆车以不同的速度行驶。如果在交叉口前方的给定点设置t=0,则一辆车可能已经完成转弯,而另一辆车(更仔细地说)在相同的时间后没有完成转弯。因此,两辆车在同一时间的(x,y)平均值不会导致到测量轨迹的距离(在x-y平面上)最小的曲线。我想不是平均不同车的路径,你可以滤除每条路径中的高频噪声,使其平滑。这意味着所有车辆都以相同的速度行驶,因为它假设对于不同的路径(x_i(t_0),y_i(t_0))在所有路径i和时间t_0中彼此接近。我认为你需要一种方法来进行平均,这也允许路径被重新参数化。