MATLAB: Issue with fsolve tolerance

fsolveMATLABOptimization Toolboxtolerances

I am using fsolve to solve an overdetermined system of equations using the levenberg marquadt algorithm.
It works fine although giving the message "Equation solved, fsolve stalled." This is fine for 90% of my cases.
However, for particular systems of equations, my function value that is returned (fval) after saying that the equation is solved (with fsolve stalled) is
0.009486931983140
-0.035516210533842
-0.019252250306780
which is unacceptable for my need.
Since the default function tolerance is 1e-6, why does it accept this as a solution?

Best Answer

Turns out function tolerance is compared with norm(fval)^2and the default tolerance was 1e-3. Simply changed it to 1e-10 (in accordance with my need) and its working well.