fsolve: jacobian determinant close to zero but exitflag is still 1. How can that be?
Show older comments
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)
Matt J
on 12 Oct 2017
0 votes
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.
Categories
Find more on Solver Outputs and Iterative Display in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!