fsolve: jacobian determinant close to zero but exitflag is still 1. How can that be?

Using fsolve to a system of 10 equations in 10 unknowns, I receive an exitflag of 1. What is really puzzling to me is that the jacobian evaluated at the solution is close to singularity (determinant at te order of 1e-11). If fsolve uses a kind of quasi-Newton algorithm, the jacobian is not invertible. Even more surprising, choosing different startin values, fsolve converges to the same result.
Can it happen that the jacobian is singular and the algorithm still produces a unique solution? If not (that is what I guess), why is fsolve returning an exitflag of 1?

Answers (1)

Yes, it can happen. For example in 1D, the equation x^4=0 has a unique solution at x=0 even though the Jacobian is zero there.
However, 1e-11 isn't a very small determinant for an R^10 problem. The matrix J=.01*eye(10) is an abundantly invertible matrix, and det(J)=1e-20.

Tags

Asked:

on 3 Apr 2013

Answered:

on 12 Oct 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!