Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I can't find in the documentation the list of methods available to NMinimize[]. Is there a way to get this? The NMinimize page in Documentation Center mentions only Method -> "DifferentialEvolution".

share|improve this question
If you click on "Details and Options" you'll see the whole list. – b.gatessucks Nov 6 '13 at 11:25
Indeed, the last bullet of that sections reads: Possible settings for the Method option include "NelderMead", "DifferentialEvolution", "SimulatedAnnealing", and "RandomSearch". I note that it uses the tantalizing words "possible" and "includes", suggesting there might be many more settings. – Sjoerd C. de Vries Nov 6 '13 at 11:29
Yes, it is not very clear. I have also found on the page tutorial/ConstrainedOptimizationGlobalNumerical the following line: NMinimize and NMaximize have several optimization methods available: Automatic, "DifferentialEvolution", "NelderMead", "RandomSearch", and "SimulatedAnnealing". I assumed there could be more methods available. – shrx Nov 6 '13 at 11:31
You should read these tutorials Numerical Nonlinear Global Optimization and Numerical Nonlinear Global Optimization Examples. – Artes Nov 6 '13 at 11:31
An other question would be: Is it possible to use something like foo::Method in order to know the different methods available? – Öskå Nov 6 '13 at 11:44
up vote 18 down vote accepted

The complete list of possible methods is given by Optimization`NMinimizeDump`$Methods:

 (* -> {Automatic, DifferentialEvolution, NelderMead, 
        SimulatedAnnealing, RandomSearch, NonlinearInteriorPoint} *)

As you can see, there is one undocumented method: NonlinearInteriorPoint. The probable reason for its being undocumented is that by itself it is not very effective as a global minimizer, so it is used instead as a postprocessing step for the other methods in order to ensure that constraints are properly enforced.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.