Определение центра окружности или эллипса по его точкам
Так в чем же проблема?

Уравнение эллипса известно — Ax2+ Bxy + Cy2 + Dx + Ey = 1.
Если выписать его для каждой точки, рассматривая x и y как известные величины, а A,B,C,D,E — как неизвестные, то получится обычная СЛАУ с пятью неизвестными и от 6 до 8 уравнениями.

Если бы координаты точек были заданы точно, это этого было бы достаточно для точного решения. Поскольку точность ограничена — надо найти больше точек и использовать МНК.

Если вы не знаете, как применять МНК к СЛАУ, то проще всего его запомнить в матричной форме:
есть уравнение вида M t = r
его решение методом МНК — это (t = MT M)-1 MT r
осталось реализовать умножение и обращение матриц.

Осталось определить центр эллипса. Для этого запишем уравнение в виде 
A(x-x0)2 + B(x-x0)(y-y0) + C(y-y0)2 = F
и заметим, что 
D = -(2Ax0 + By0),
E = -(2Cy0 + Bx0),
F — 1 = (Ax02 + Bx0y0 + Cy02)

Из первых двух уравнений получаем центр, про третье — забываем.

Сложнее обстоит дело с погрешностью — точных формул я не помню, да и что считать несколько непонятно. Возьмите 25 точек, сделайте из них от 10 до 1000 случайных выборок по 12 точек, и решите задачу для этих выборок, после чего можно найти дисперсию распределения центров.
Ого, приятно, что мою статейку в комментариях вспомнили.
Защищая себя, скажу, что методом МНК ну совсем просто всё делается, поэтому я счёл «Рассуждения есть, кода нет» достаточными.
По ссылке ниже можно скачать образец моего класса примерно годичной давности. Вы уж простите, даже в старой версии уже не совсем МНК :) Для оптимизации скорости я немного забрался вглубь проблемы, так что теперь всё работает быстро. Для работы нужна библиотека Jama. (исп. Jama.matrix, можно прям с ней собрать проект, чтобы остальную часть Jama не таскать).
Тынц.