Я заметил следующее поведение при использовании NMinimize
в системе Mathematica. Первый вызов целевой функции выполняется с именами переменных, а не с точками из пространства, как можно было бы ожидать.
Так, например, если моя целевая функция является модулем, этот модуль вызывается только один раз, оценивается символически, а затем в дальнейших итерациях это символьное выражение оценивается точками из пространства переменных.
Такое поведение может значительно замедлить вычисление для большого выражения.
Есть ли способ обойти это? Кто-нибудь еще испытал это? Есть ли способ ускорить NMinimize
тогда?
Пример:
dummy[x_] := Module[
{},
Print["x=", x ];
4 x^4 - 4 x^2 + 1
]
In: NMinimize[dummy[x], x]
Out:x=x
{0., {x -> 0.707107}}