NMaximize in Mathematica equivalent in Python
<p>I am trying to find a equivalent of "NMaximize" optimization command in Mathematica in Python. I tried googling but did not help much. </p>

<p>The <a href="https://reference.wolfram.com/language/ref/NMaximize.html" rel="nofollow">mathematica docs</a> describe the methods usable within <code>NMaximize</code> as: <code>Possible settings for the Method option include "NelderMead", "DifferentialEvolution", "SimulatedAnnealing", and "RandomSearch".</code>.</p>

<p>Have a look at <a href="http://docs.scipy.org/doc/scipy/reference/optimize.html" rel="nofollow">scipy's optimize</a> which also supports:</p>

<ul>
<li>NelderMead</li>
<li>DifferentialEvolution</li>
<li>and much more...</li>
</ul>

<p>It is very important to find the correct tool for <em>your optimization problem</em>! This is at least dependent on:</p>

<ul>
<li>Discrete variables?</li>
<li>Smooth optimization function?</li>
<li>Linear, Conic, Non-convex optimization problem?</li>
<li>and again: much more...</li>
</ul>

<p>Compared to Mathematica's approach, you will have to choose the method a-priori within scipy (at some extent).</p>

python optimization wolfram-mathematica mathematical-optimization