2016-11-02 53 views
-5

給出一條線並給出一組點。我必須在線上找到一個距離給定點距離最小的點。 我找不到任何算法在c中執行。請提前幫助,謝謝。如何在一條線上找到最佳位置點?

+1

這是一個經典*最小化問題*。你應該瞭解它。 –

+1

從找到包含所有點的矩形開始。這給你一個X和Y的大致搜索範圍。 – user3386109

+1

@ user3386109這個矩形不一定包含該行的任何部分。 –

回答

5

不失一般性,該線是X軸(否則旋轉整個幾何體)。然後,你希望儘量減少

Sum √[(X - Xk)² + Yk²] 

,您可以通過取消一階導數

Sum (X - Xk)/√[(X - Xk)² + Yk²] = 0 

遺憾的是,這是一個非線性方程,將需要的數值方法。

作爲起始近似,您可以用平方距離之和的最小化,

Sum [(X - Xk)² + Yk²] 

通過解決

Sum (X - Xk) = 0 

它只是給點(X*, 0)其中是平均橫座標。

+2

只要沒有一個給定的點就行了,對此使用Newton-Raphson似乎工作得很好。但是,如果某些要點在線上,那麼目標是不可區分的(在這些點上),事情就不那麼好了。 – dmuir