0

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.

3
  • I have previously tried such a Monte-Carlo approach, I havent checked how many evaluations I can fit into and hour or two. Using such an approach i got to ~2.2. I haven't yet tried to limit the parameterspace after getting a intermediary result. Will try that approach and write it here after my defense. However, I wondered if its possible to do e.g. a 'NMaximize' while not allowing symbolic computation of my custom function, and forcing it to repeatedly just call the function numerically. Commented Aug 26, 2024 at 19:18
  • In any case, gonna try that approach and see if something comes out. Commented Aug 26, 2024 at 19:21
  • So I have been able to reduce the number of parameters from 90 to 9 real-valued and 12 complex-valued parameters, with 3 requirements that these have to fulfill. This has allowed me to run an NMaximize and 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 for NMaximize to 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. Commented Sep 10, 2024 at 8:20

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.