#ifdef HAVE_CONFIG_H #include "OPT++_config.h" #endif #include <iostream> #include <fstream> #ifdef HAVE_STD #include <cstdio> #include <cstring> #else #include <stdio.h> #include <string.h> #endif #include "OptNPSOL.h" #include "tstfcn.h" using NEWMAT::ColumnVector; using namespace OPTPP; double const LOW_BOUND = -4.5; double const UP_BOUND = 4.5; int main () { int i, n=3; ColumnVector x(n); char *status_file = {"tstnpsol.out"}; ofstream opt_fp; opt_fp.open(status_file); int ndim = n; // Problem dimension int nclin = 0; // Number of linear constraints int ncnln = 1; // Number of nonlinear constraints double ftol = 1.0e-06; // Function accuracy ColumnVector lower(n+nclin+ncnln), upper(n+nclin+ncnln); // Create boundary constraints for(i=1; i< ndim; i++) {lower(i) = LOW_BOUND; upper(i) = UP_BOUND;} lower(ndim) = -5.0; upper(ndim) = 5.0; // Set infinite lower bound and finite upper bound for nonlinear constraint lower(ndim+nclin+ncnln) = -1.0E32; upper(ndim+nclin+ncnln) = 48; // Build an NPSOL object and optimize OptNPSOL objfcn(ndim,nclin,ncnln,hs65,init_hs65,ineq_hs65); objfcn.setX(x); objfcn.setLower(lower); objfcn.setUpper(upper); objfcn.setFcnAccrcy(ftol); objfcn.setOutputFile(opt_fp); objfcn.optimize(); objfcn.printStatus("Solution from NPSOL "); opt_fp.close(); }
Next Section: Parallel optimization | Back to Solvers Page <hr />
Last revised September 14, 2006 .