optimize: added Powell and Nelder-Mead method
This commit is contained in:
1 parent
3b7be8bc43
commit
4c37ffdf12
3 files changed
+363
-5
No files matched your search
@@ -4845,22 +4845,28 @@ x.randomize(1.);
|
||||
testproblem<double> problem;
|
||||
//BFGS_hyperparameters<double> param; //tested
|
||||
//LBFGS_hyperparameters<double> param; //tested
|
||||
CG_hyperparameters<double> param;
|
||||
//CG_hyperparameters<double> param; //tested
|
||||
//NelderMead_hyperparameters<double> param; //tested
|
||||
Powell_hyperparameters<double> param;
|
||||
param.my_maxstep=100;
|
||||
param.my_f_thr=1e-6;
|
||||
param.my_x_thr=1e-3;
|
||||
param.my_g_thr=1e-3;
|
||||
//param.my_g_thr=1e-3; //gradient methods
|
||||
//param.my_update=QN_BFGS; //tested
|
||||
//param.my_update=QN_DFP; //tested
|
||||
//param.my_update=QN_SR1; //tested
|
||||
cout << "initial " <<x<<endl;
|
||||
//BFGS_Optimizer<double> o; //tested
|
||||
//LBFGS_Optimizer<double> o; //tested
|
||||
CG_Optimizer<double> o;
|
||||
gradient_hyperparameters<double> achieved;
|
||||
//CG_Optimizer<double> o; //tested
|
||||
//NelderMead_Optimizer<double> o; //tested
|
||||
Powell_Optimizer<double> o;
|
||||
//gradient_hyperparameters<double> achieved; //gradient methods
|
||||
hyperparameters<double> achieved;
|
||||
optresult<double> res=o.minimize(&problem,x,¶m,&achieved);
|
||||
cout << "optimized " <<x<<endl;
|
||||
cout << "converged "<<res.converged<<" f= "<<res.f<<" iterations "<<achieved.my_maxstep<<" function evaluations "<<achieved.my_maxfunc<<" last df "<<achieved.my_f_thr<<" last dx "<<achieved.my_x_thr<<" |g| "<<achieved.my_g_thr<<endl;
|
||||
//cout << "converged "<<res.converged<<" f= "<<res.f<<" iterations "<<achieved.my_maxstep<<" function evaluations "<<achieved.my_maxfunc<<" last df "<<achieved.my_f_thr<<" last dx "<<achieved.my_x_thr<<" |g| "<<achieved.my_g_thr<<endl; //gradient methods
|
||||
cout << "converged "<<res.converged<<" f= "<<res.f<<" iterations "<<achieved.my_maxstep<<" function evaluations "<<achieved.my_maxfunc<<" last df "<<achieved.my_f_thr<<" last dx "<<achieved.my_x_thr<<endl;
|
||||
double r=problem.funcgrad(x,NULL);
|
||||
cout <<r<<endl;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user