Algorithm 线段集合的最佳交点?

Algorithm 线段集合的最佳交点?,algorithm,math,geometry,computational-geometry,Algorithm,Math,Geometry,Computational Geometry,我有很多二维线段,它们都应该在一个点上相交,但不会相交,因为之前的计算中存在无法减少的噪声 是否有算法计算所有线段交点的最佳近似值。类似于到所有线段的最小平均距离的点,不一定位于任何线段上?如果我们可以自由选择度量,平方距离之和可以给出一个简单的算法 我们可以把到一条直线i的距离平方表示为点坐标的函数,我们将得到a[i]x,x+b[i],x+c[i],a[i]是一个矩阵3x3,b[i]-向量,c[i]-数,a,b-标量乘法 它们的总和将是A[sum]x,x+b[sum],x+c[sum] 该函数

我有很多二维线段,它们都应该在一个点上相交,但不会相交,因为之前的计算中存在无法减少的噪声


是否有算法计算所有线段交点的最佳近似值。类似于到所有线段的最小平均距离的点,不一定位于任何线段上?

如果我们可以自由选择度量,平方距离之和可以给出一个简单的算法

我们可以把到一条直线i的距离平方表示为点坐标的函数,我们将得到a[i]x,x+b[i],x+c[i],a[i]是一个矩阵3x3,b[i]-向量,c[i]-数,a,b-标量乘法

它们的总和将是A[sum]x,x+b[sum],x+c[sum]


该函数的最小值为x=-inverseA[sum]b[sum]/2。

Amit的第一条评论是您的答案。我会解释原因的

设p_i为交点,c=1/n。让我们证明c最小化p_i和任意点a之间的平均距离da:

da中的平均值是,使用内积表示法

|a-p_i|^2 = <a-p_i, a-p_i> = |a|^2 + |p_i|^2 - 2<a,p_i>`

因为所有的项都是正的,所以当| a-c | ^2为零时,也就是说,当a=c时,所有的项都被最小化。

所有交点的简单平均有什么错?如果它是好的,它是简单和直接的,你应该使用它。如果没有-请描述问题所在-这将有助于我们更好地理解您的问题。如果交叉口必须位于其中一个路段上,那么靠近交叉口平均值的交叉口可能是一个不错的选择。@amit同意。我在下面的回答中给出了交叉点的平均值使到交叉点的平均距离最小的证明。@amit是正确的,但您不必计算所有成对交叉点。您可以将其表述为最小二乘问题,在该问题中,您要查找的点最接近支持线段的所有直线。这在段的数量上具有线性复杂性
|a-p_i|^2 = <a-p_i, a-p_i> = |a|^2 + |p_i|^2 - 2<a,p_i>`
d(a) = |a|^2 - 2<a,c> + 1/n sum( |p_i|^2 )
d(c) = |c|^2 - 2<c,c> + 1/n sum( |p_i|^2 ) = -|c|^2 + 1/n sum( |p_i|^2 )
d(a) - d(c) = |a|^2 - 2<a,c> + |c|^2 = |a-c|^2
d(a) = d(c) + |a-c|^2