This came up when a friend talked about a programming competition, and we wondered what the best approach was:
Given a list of points, find the centre of a circle of
How about using a clustering algorithm to identify the cluster of points. Then ascertain the cluster with the maximum number of points. Take the mean point of the cluster having the maximum points as the center of your circle and then draw the circle.
MATLAB supports implementation of k-means algorithm and it gives back a 2-d array (a matrix to be precise) of cluster means and corresponding cluster ids.
One well known flip side of k-means is deciding on k(number of clusters) before hand. This can be resolved though - one can learn the value of k from the data points. Please check this paper.
I hope this helps.
cheers