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?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.