我有许多2D线段,它们都应该在一个点上相交,但不会因为计算中较早的噪声而无法减少。
是否有算法计算所有线段交叉点的最佳近似值。类似于所有线段的最小平均距离点不一定位于任何线段上的点?
答案 0 :(得分:3)
阿米特的第一个评论是你的回答。我会解释原因。
让p_i
成为你的交点和c = 1/n sum(p_i)
。我们假设c
最小化d(a)
和任意点p_i
之间的平均距离a
:
d(a) = 1/n sum( |a-p_i|^2 )
d(a)
中的平均值是,使用内积标记,
|a-p_i|^2 = <a-p_i, a-p_i> = |a|^2 + |p_i|^2 - 2<a,p_i>`
使用点积的双线性属性,<a,p_i>
的平均值仅为<a,c>
。所以,
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(c)
,到任意点a
的平均距离为
d(a) = d(c) + |a-c|^2
,因为当|a-c|^2
为零时,所有术语都是正数,换句话说,当a = c
时。{/ p>
答案 1 :(得分:0)
如果我们可以自由选择指标,则平方距离之和可以提供简单的算法。
我们可以将点#i的距离的平方表示为点坐标的函数,我们将得到(A[i]x,x)+(b[i],x)+c[i]
,A[i]
是矩阵3x3,b[i]
- 向量,{{1数字,(a,b) - 标量乘法。
他们的总和将是c[i]
。
此类功能的最小值为(A[sum]x,x)+(b[sum],x)+c[sum]
。