/** \page tstnpsol NPSOL wrapper For completeness, we present a test program for the NPSOL method. Unlike the previous optimization methods we have highlighted, the calling sequence for OptNPSOL requires the number of linear and nonlinear constraints in the problem formulation. Also note that the lower and upper bound vectors have dimension n + nclin + ncnln .

\code #ifdef HAVE_CONFIG_H #include "OPT++_config.h" #endif #include #include #ifdef HAVE_STD #include #include #else #include #include #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(); } \endcode

Next Section: Parallel optimization | Back to Solvers Page

Last revised September 14, 2006 . */