Use Broyden's method