Hello,
I am doing a quasi newton optimization method but I have a problem. The optimization stop before I find the global maximum.
I wonder if I could use a termination criterion of 1e-4 in order to stop the optimization after getting an objective function as small as I want and if it is possible, how to do it?
Here is my code
proc iml;
use a;
read all var _NUM_ into data;
close a;
reset storage = &lib..myfunctions;
load module=(function1 function2);
parameters = j(3, 1, .) ;
parameters[1] = 1.1 ;
parameters[3]=0.5;
con = {-10 1E-9, 10 1}
opt = {1 4} ;
*Quasi-Newton Method ;
call NLPQN(rc, parameters, "function1", theta, opt, con);
quit ;
Thank you for helping
There are multiple termination criteria that you can use. The documentation provides details. Common criteria include absolute function convergence criterion (ABSTOL, controlled by tc[3]) and absolute gradient convergence criterion (ABSGTOL, controlled by tc[6]). There are also "relative" versions of these criteria.
To use the termination criterion, allocate a vector of missing values (which means "use default values") and override the element that you want to control. For example,
tc = repeat(.,1,12);
tc[3] = 1.e-4;
call NLPQN(rc, parameters, "function1", theta, opt, con) tc=tc;
There are multiple termination criteria that you can use. The documentation provides details. Common criteria include absolute function convergence criterion (ABSTOL, controlled by tc[3]) and absolute gradient convergence criterion (ABSGTOL, controlled by tc[6]). There are also "relative" versions of these criteria.
To use the termination criterion, allocate a vector of missing values (which means "use default values") and override the element that you want to control. For example,
tc = repeat(.,1,12);
tc[3] = 1.e-4;
call NLPQN(rc, parameters, "function1", theta, opt, con) tc=tc;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.