I have a function in about 3–7 variables (varies, ideally 7) and I am looking for a root.
It is best to treat the function as a “black box”, just delivering values and not derivatives, though I will try to make it work with
ForwardDiff at some point, currently that is conceptually challenging. A function evaluation takes about
0.5s, depending on problem size. I may be able to micro-optimize this by a factor of, say, 5, but that is costly.
NLsolve.nlsolve(f, ...) finds the global root reasonably robustly 99% of the time.
Optim.optimize(x -> sum(abs2, f(x)), ...) converges to a point that is not a root, usually.
Are there any other options currently in Julia?