MATLAB: Force fsolve termination if not progressing

fsolveoptimoptions

Hi.
I'm running repeated fsolves. With bad starting points, the engine goes nowhere. I can see this looking at the output when Display is set to iter: norm of step keeps shrinking and f fails to improve. Is there a way to pass the information that Display('iter') uses to the "myfun" workspace (i.e., the function that I'm trying to solve), thus allowing me to measure if I'm making no progress and then terminate? I could of course hack into fsolve but but obviously would prefer not to if I don't have to.

Best Answer

Use an output function to terminate the iterations early, if you like.
Alan Weiss
MATLAB mathematical toolbox documentation