Jeśli chodzi o ten punkt jako najmniejsza metoda kwadratów, to bym poczytał o algorytmie na gradient descending.
A tak łopatologicznie.
To ja bym wziął policzył dla każdego punktu, wynik. Potem odrzucił najdalsze, i jeszcze raz policzył, i znów odrzucił najdalsze aż zostaną 3 punkty i dla nich wyliczył bym centroid [edit, można to oczywiście zoptymalizować to odrzucanie i nie trzeba ciągle przeliczać tego samego)
Ale to łopatologicznie, chyba gradiend descending było by najlepsze.