<div dir="ltr">The quasi-newton method in IPOPT is not described in any publication as far as I can tell. I am trying to understand its specifics, especially how it exploits the low rank of the Hessian to solve system (13) in <a href="http://www.optimization-online.org/DB_FILE/2004/03/836.pdf">http://www.optimization-online.org/DB_FILE/2004/03/836.pdf</a><div><br></div><div>The best starting point to gain insight is by looking at the changes in the code when the quasi-newton method was added: <a href="https://projects.coin-or.org/Ipopt/changeset?old=607&amp;old_path=&amp;new=608&amp;new_path=">https://projects.coin-or.org/Ipopt/changeset?old=607&amp;old_path=&amp;new=608&amp;new_path=</a></div><div><br></div><div>I think the main logic is in these two files:</div><div><a href="https://projects.coin-or.org/Ipopt/browser/branches/dev/LinAlg/IpLowRankUpdateSymMatrix.cpp?rev=608">https://projects.coin-or.org/Ipopt/browser/branches/dev/LinAlg/IpLowRankUpdateSymMatrix.cpp?rev=608</a><br></div><div><a href="https://projects.coin-or.org/Ipopt/browser/branches/dev/Algorithm/IpLowRankAugSystemSolver.cpp?rev=608">https://projects.coin-or.org/Ipopt/browser/branches/dev/Algorithm/IpLowRankAugSystemSolver.cpp?rev=608</a><br></div><div><br></div><div>In the latter file, it seems as the Sherman-Morrison formula is used (line 152), but I don&#39;t see where. I also don&#39;t see how the inverse of W_k could make solving (13) easier. Why is the inverse of the Hessian used (I remember reading that a cholesky factorization is numerically superior while SNOPT uses LU factorization)? I&#39;m not looking for a full explanation, but a few hints would be greatly appreciated, thanks.</div></div>