# How to avoid the Broyden's jacobian approximation becoming poorer with the number of iterations?

I have to solve many times a nonlinear system of the form $$f(x) = b^{(n)}$$ inside a loop. The function $f$ is expensive to compute and I do not have its jacobian, so I have tried the good Broyden's method. As the initial guesses of the solution, $x_0^{(n+1)}$, and the jacobian, $J_0^{(n+1)}$, at the (n+1)th iteration of the loop, I am using the solution of the previous one, $x^{(n)}$, and the approximation to the jacobian at $x^{(n)}$ provided by Broyden's method, $B^{(n)}$.

I have observed that, along the simulation, the Broyden's method needs more and more iterations to find the solutions. I guess this happens because the approximation $B^{(n)}$ to the jacobian that the method uses becomes poorer and poorer (sometimes it even becomes singular). Is there any way to avoid this?

PD: In this link http://www.math.hkbu.edu.hk/~zeng/Teaching/math3620/Broyden.pdf it is said that Powell ("A Hybrid Method for Nonlinear Equations") presented a modification to Broyden's jacobian update so that $B$ converges to the jacobian as $x$ converges to the solution. I cannot find any paper in which this is explained. Does anyone know where to find this modification explained?