Bug introduced in 12.0 [CASE:4332003]
My problem is that the Kernel cannot finish computation and eats up memory when a simple constraint like 0 <= x <= 2
is specified in FindMinimum
.
I have the function
f[x_] :=
7/(5 Sqrt[5 Pi] + 2 Sqrt[11 Pi]) (2/7 Exp[-(x - 3)^2/11] + 5/7 Exp[-(x + 2)^2/5])
Plot[f[x], {x, -10, 10}]
I would like to find the local minimum near 1.95, and the two local maxima. For the maxima, the following works:
FindMaximum[f[x], {x, 3}]
FindMaximum[f[x], {x, -3}]
For the minimum, however, the method seems to be highly sensitive to the starting value: with FindMinimum[f[x], {x, 0}]
the minimum is found, but with FindMinimum[f[x], {x, 1.9}]
or any other value close to the local minimum, I end up with a large value of x
(and a value of f[x]
close to 0, of course).
I tried to add a constraint, with FindMinimum[{f[x], 1 <= x <= 2}, {x, 1.9}]
, but Mathematica takes forever, eats up gigabytes of memory, and I had to halt the execution.
I would like to know what I do wrong. There is the alternative of differentiating and using FindRoot
which works well, but I think I am probably doing something wrong with FindMinimum
. What should I do?
NMinimize[{f[x], 0 < x < 3}, x, Method -> "DifferentialEvolution"]
$\endgroup$ – OkkesDulgerci Oct 15 at 15:33