I am trying to find the local/global maxima of a function. This function is computed by taking the trace of a 64x64 matrix and summing over a bunch of indices. With my current implementation I have 90 parameters, each in [0,2π). I have conjectured that this function has an upper bound of 3, and it has a known lower bound of 0, as well as a known potential upper bound of 4, by definition.
Now the problem is that the expression of this function is too complicated for Mathematica to compute the functional term and it seems that built-in functions like NMaximize rely on having access to the function explicitly. While an explicit functional term for this function does exist, the full expression is too long to realistically compute or work with in any way. Numerically there is no issue to compute the function.
What I would like to do is just get a as-good-as-possible (within reason) estimator of local maxima and of course possibly global maxima, along with their point-coordinates, to get a better understanding of where these lie.
I tried using various functions such as NMaximize that are built into Mathematica, but none were able to return a value, independently of what optimization time I set.
I was hoping to get some returned value that further shows the upper bound I'm trying to prove.
NMaximizeand it has returned the expected value of 3, which is great. The main problem is that I cannot rule out the possibility that this is a local Maximum, but what I have is already plenty. Is there a way forNMaximizeto run with starting parameters or with some random seed to check for different optimizations and if they reach a different maximum? I couldn't find anything on the page.