I'm sorry that I'm just not very good at working with Maple's optimization tools, but I appreciate your willingness to work with me. So, this is all related to the same problem I had been working with a few months ago. I used the "operator form" of NLPSolve to minimize the squared residuals of a temperature distribution with an external dataset by changing a few design variables. To do so, I used a workaround to manually calculate the gradients needed for the sqp algorithm. The problem is that it is horrendously slow (the function requires ~30s to execute). The large number of function calls results in very long computation times.
At the very least, I would like to bound my variables, but even with nonlinearsimplex, I get this result:
> Optimization[NLPSolve](EIGEXP, initialpoint = [.5, 0.794132912729958473e-3, .86, .14, .25], evaluationlimit = 10, method = nonlinearsimplex);
NLPSolve: calling NLP solver
SolveUnconstrainedNM: using method=nonlinearsimplex
SolveUnconstrainedNM: number of problem variables 5
PrintSettings: optimality tolerance set to 0.3256082241e-11
PrintSettings: evaluation limit set to 10
SolveUnconstrainedNM: trying evalhf mode
SolveUnconstrainedNM: trying evalf mode
Warning, limiting number of function evaluations reached
E04CCA: number of function evaluations 0
Lest you think that the procedure EIGEXP is not returning float values, I executed the procedure with the same initial point:
> EIGEXP(.5, 0.794132912729958473e-3, .86, .14, .25);
So, Maple doesn't want to actually evaluate my function with nonlinearsimplex, for some strange reason. In fact, it claims that it reached the "limiting number of function evaluations" (which I had set to 10).
Many of you like the DirectSearch function. Right now, I don't particularly care for it. The documentation isn't very clear, because I'm getting some complaint about the initial point not satisfying inequality constraints. I didn't impose any constraints nor bounds, so I'm perplexed.
> Search(EIGEXP, initialpoint = [.5, 0.794132912729958473e-3, .86, .14, .25], assume = positive, evaluationlimit = 10);
Warning, initial point [fractionp::float = .500000000000000000, z2::float = 0.794132912729958473e-3, q1::float = .859999999999999986, q2::float = .140000000000000014, `𝒬`::float = .250000000000000000] does not satisfy the inequality constraints; trying to find a feasible initial point
Error, (in DirectSearch:-Search) cannot find feasible initial point; please, specify a new one
An infeasible point? Is there some sort of default constraint placed on the objective function?
In any case, if you can think of what would allow for either of these methods to work, I'd be in your debt.