[英]Best intersection of a collection of line segments?
我有許多2D線段,它們都應該在一個點上相交,但不會因為計算中較早的噪聲而無法減少。
是否有算法計算所有線段交叉點的最佳近似值。 類似於所有線段的最小平均距離點不一定位於任何線段上的點?
阿米特的第一個評論是你的回答。 我會解釋原因。
設p_i
為交點, c = 1/n sum(p_i)
。 讓我們假設c
最小化p_i
和任意點a
之間的平均距離d(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
當|ac|^2
為零時,換句話說,當a = c
時,由於所有項都是正的,所以最小化。
如果我們可以自由選擇度量,則平方距離的總和可以給出簡單的算法。
我們可以將線#i的距離的平方表示為點坐標的函數,我們將得到(A[i]x,x)+(b[i],x)+c[i]
, A[i]
是a矩陣3x3, b[i]
- 向量, c[i]
- 數,(a,b) - 標量乘法。
它們的和將是(A[sum]x,x)+(b[sum],x)+c[sum]
。
這種函數的最小值是x=-inverse(A[sum])b[sum]/2
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.