I'm trying to use vnl_levenberg_marquardt in order to fit a circle to an image. So, I'm having 3 parameters (x,y,r).
My initial guess is usually quite good. For example , my estimation can be (157,157,100) and the best fit is (150,150,100).

However, I found out that when using the default settings the algorithm
will converge to the initial guess.
I've tried setting the epsilon_function to 0.005 or higher values and then the estimates start moving, the algorithm  converges,
but not always to the correct answer. Then, on different settings I might have to set the epsilon_function
to a different value for the algorithm to converge to the right value.

My question is whether this is the right thing to do - setting epsilon? or maybe the default parameters should
be good enough and the problem is with the cost function?