Broyden’s second method.
Updates inverse Jacobian by an optimal formula. The NxN matrix multiplication is avoided.
The best norm |F(x)|=0.003 achieved in ~20 iterations.
Recommended.
scipy.optimize.broyden2
scipy.optimize.broyden_generalized