<div dir="ltr"><div>Hi,</div><div><br></div><div>I'm a SciPy technical writer and am currently rewriting the scipy.optimize tutorial, focusing on `minimize` right now.  While I've gotten a grasp of the "how", I still want to explain "why<span class="gmail-gr_ gmail-gr_1162 gmail-gr-alert gmail-gr_gramm gmail-gr_premium gmail-Punctuation gmail-multiReplace" id="gmail-1162">"</span>. Why choose one option over another? I could use information from those with more experience. <br></div><div><br></div><div>A lot of methods are available.   Most problems can<span class="gmail-gr_ gmail-gr_1696 gmail-gr-alert gmail-gr_gramm gmail-gr_hide gmail-gr_premium gmail-Style gmail-replaceWithoutSep" id="gmail-1696"></span> have BFGS thrown at them, but I want to explain something for those other cases.  Other situations could have features, like constraints or non-differentiability, that lend themselves to a specific method. But the module still has a lot of alternatives.  Are they there for academic purposes?  Are they the best for some problems? How could someone find that out?<br></div><div><br></div><div>For derivatives, users can choose to provide a function or three different types of finite-difference schemes. <br></div><div><br></div><div>When is providing a function better than finite-difference derivatives?  For Hessians, approximations are sometimes more efficient.  How can we know in advance if that's true? Is that ever true for gradients?</div><div><br></div><div>How do we choose which finite-difference scheme? `3-point` and `cs` (if it is the symmetric approximation I think) have higher-order accuracy, but `cs` uses a point not yet computed.  Is `3-point` ever not the way to go?</div><div><br></div><div>Thanks for your expertise,</div><div>Christina<br></div></div>