I'm having numerical problems with a nested solver. Any ideas how to solve this?
JOVE solver is a sequential unconstrained optimization technique applying Newton's second-order gradient search;
FIND Yzero, Zimag, Zreal;
1 in flatDlay; by Jove( contrl2);
2 with lower zeroLow;
3 TO MINIMIZE errDlay
This 'Find' stmt. eventually calls following (nested) 'Find' stmt.
JUPITER solver is a moving exterior truncations penalty-function method applying a Davidon-Fletcher-Powell (DFP) variable-metric search;
FIND gain, pReal, pImag;
1 in transfer; by Jupiter( contrl1);
2 with lower poleLow; and uppers poleHi;
3 TO MINIMIZE errTran
This 'find' stmt. calls 'transfer' routine until 'errTran' parameter is minimized.
Then execution returns to the first 'find' stmt. where it changes it's parameters
(Yzero, Zimag, Zreal) in order to achieve its objective of minimizing 'errDlay'.
This loop may continue for 20+ iteration, but I'm getting an error msg. saying
"*** THE OBJECTIVE FUNCTION BEING OPTIMIZED IS NEITHER AN EXPLICIT NOR
AN IMPLICIT FUNCTION OF THE INDEPENDENT VARIABLES."
But it just finished the 2nd 'find' stmt. summary #1 having tweaked parameters
gain, pReal, pImag on its 1st loop. Here is part of the summay ..
LOOP NUMBER ......... [INITIAL] 7 8
UNKNOWNS
GAIN 2.293703E-03 2.293707E-03 2.293697E-03
PREAL ( 1) 6.259960E-02 6.259913E-02 6.259846E-02
PREAL ( 2) 4.406212E-02 4.406053E-02 4.405971E-02
PREAL ( 3) 5.736741E-02 5.753962E-02 5.743653E-02
PIMAG ( 1) 2.148273E-01 2.148198E-01 2.148219E-01
PIMAG ( 2) 3.752846E-01 3.752705E-01 3.752753E-01
PIMAG ( 3) 9.999969E-01 9.999994E-01 9.999997E-01
OBJECTIVE
ERRTRAN 2.881500E-03 2.881502E-03 2.881502E-03
---
Another time with different initial values ...
LOOP NUMBER ......... [INITIAL] 1
UNKNOWNS
GAIN 2.141501E-05 2.199075E-03
PREAL ( 1) 2.000000E-01 2.241059E-02
PREAL ( 2) 2.000000E-01 5.400497E-02
PREAL ( 3) 2.000000E-01 6.942999E-02
PIMAG ( 1) 1.000000E-01 4.238228E-01
PIMAG ( 2) 2.000000E-01 3.050316E-01
PIMAG ( 3) 3.000000E-01 1.751917E-01
OBJECTIVE
ERRTRAN 1.840880E-01 1.657471E-03
---END OF LOOP SUMMARY
"*** IMPROPER RANK IN REFERENCE TO A DYNAMIC ARRAY" at a different place
in my code ... hmmm :(
Same problem just different initial conditions ... better objective :)
I'm trying to fit to a dataset that has the shape of a mountain (right side of peak only). So after a few iterations it should be settling in on the 5th, 6th, 7th, etc. digits of accuracy; kind of a stiff equation at this point. I’ve done this before with sequential find stmt. in a loop and it works. But I learned why an engineer will want it in a nested find stmt.
I have tried multiplying the error function by 10,000 in order to magnify the last few digits. It help some but still ends with such error msg.s.
Ideas or comments?