San*_*tia 7 optimization wolfram-mathematica
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}}
Run Code Online (Sandbox Code Playgroud)
您是否尝试过将函数定义为仅评估数字输入?
dummy[x_?NumericQ] := ...
Run Code Online (Sandbox Code Playgroud)