*********************************************************************** * * * PVMM - A VARIABLE METRIC ALGORITHM FOR UNCONSTRAINED * * AND LINEARLY CONSTRAINED OPTIMIZATION. * * * *********************************************************************** 1. Introduction: ---------------- The double-precision FORTRAN 77 basic subroutine PVMM is designed to find a close approximation to a local minimum of a nonlinear objective function F(X) with simple bounds on variables and general linear constraints. Here X is a vector of N variables and F(X), is a smooth function. Simple bounds are assumed in the form X(I) unbounded if IX(I) = 0, XL(I) <= X(I) if IX(I) = 1, X(I) <= XU(I) if IX(I) = 2, XL(I) <= X(I) <= XU(I) if IX(I) = 3, XL(I) = X(I) = XU(I) if IX(I) = 5, where 1 <= I <= N. General linear constraints are assumed in the form C(I) unbounded if IC(I) = 0, CL(I) <= C(I) if IC(I) = 1, C(I) <= CU(I) if IC(I) = 2, CL(I) <= C(I) <= CU(I) if IC(I) = 3, CL(I) = C(I) = CU(I) if IC(I) = 5, where C(I) = A_I*X, 1 <= I <= NC, are linear functions. To simplify user's work, three additional easy to use subroutines are added. They call the basic general subroutine PVMM: PVMMU - unconstrained optimization, PVMMS - optimization with simple bounds, PVMML - optimization with simple bounds and general linear constraints. All subroutines contain a description of formal parameters and extensive comments. Furthermore, two test programs TVMMU and TVMML are included, which contain several test problems (see e.g. [2]). These test programs serve as examples for using the subroutines, verify their correctness and demonstrate their efficiency. In this short guide, we describe all subroutines which can be called from the user's program. A detailed description of methods is given in [1]. In the description of formal parameters, we introduce a type of the argument that specifies whether the argument must have a value defined on entry to the subroutine (I), whether it is a value which will be returned (O), or both (U), or whether it is an auxiliary value (A). Note that the arguments of the type I can be changed on output under some circumstances, especially if improper input values were given. Besides formal parameters, we can use a COMMON /STAT/ block containing statistical information. This block, used in each subroutine has the following form: COMMON /STAT/ NRES,NDEC,NREM,NADD,NIT,NFV,NFG,NFH The arguments have the following meaning: Argument Type Significance ---------------------------------------------------------------------- NRES O Positive INTEGER variable that indicates the number of restarts. NDEC O Positive INTEGER variable that indicates the number of matrix decompositions. NRED O Positive INTEGER variable that indicates the number of reductions. NREM O Positive INTEGER variable that indicates the number of constraint deletions during the QP solutions. NADD O Positive INTEGER variable that indicates the number of constraint additions during the QP solutions. NIT O Positive INTEGER variable that indicates the number of iterations. NFV O Positive INTEGER variable that indicates the number of function evaluations. NFG O Positive INTEGER variable that specifies the number of gradient evaluations. NFH O Positive INTEGER variable that specifies the number of Hessian evaluations. 2. Subroutines PVMMU, PVMMS, PVMML: ----------------------------------- The calling sequences are CALL PVMMU(NF,X,IPAR,RPAR,F,GMAX,IPRNT,ITERM) CALL PVMMS(NF,NB,X,IX,XL,XU,IPAR,RPAR,F,GMAX,IPRNT,ITERM) CALL PVMML(NF,NB,NC,X,IX,XL,XU,CF,IC,CL,CU,CG,IPAR,RPAR, & F,GMAX,IPRNT,ITERM) The arguments have the following meaning. Argument Type Significance ---------------------------------------------------------------------- NF I Positive INTEGER variable that specifies the number of variables of the objective function. NB I Nonnegative INTEGER variable that specifies whether the simple bounds are suppressed (NB=0) or accepted (NB>0). NC I Nonnegative INTEGER variable that specifies the number of linear constraints; if NC=0 the linear constraints are suppressed. X(NF) U On input, DOUBLE PRECISION vector with the initial estimate to the solution. On output, the approximation to the minimum. IX(NF) I On input (significant only if NB>0) INTEGER vector containing the simple bounds types: IX(I)=0 - the variable X(I) is unbounded, IX(I)=1 - the lower bound X(I) >= XL(I), IX(I)=2 - the upper bound X(I) <= XU(I), IX(I)=3 - the two side bound XL(I) <= X(I) <= XU(I), IX(I)=5 - the variable X(I) is fixed (given by its initial estimate). XL(NF) I DOUBLE PRECISION vector with lower bounds for variables (significant only if NB>0). XU(NF) I DOUBLE PRECISION vector with upper bounds for variables (significant only if NB>0). CF(NC) A DOUBLE PRECISION vector which contains values of constraint functions (only if NC>0). IC(NC) I On input (significant only if NC>0) INTEGER vector which contains constraint types: IC(K)=0 - the constraint CF(K) is not used, IC(K)=1 - the lower constraint CF(K) >= CL(K), IC(K)=2 - the upper constraint CF(K) <= CU(K), IC(K)=3 - the two side constraint CL(K) <= CF(K) <= CU(K), IC(K)=5 - the equality constraint CF(K) = CL(K). CL(NC) I DOUBLE PRECISION vector with lower bounds for constraint functions (significant only if NC>0). CU(NC) I DOUBLE PRECISION vector with upper bounds for constraint functions (significant only if NC>0). CG(NF*NC) I DOUBLE PRECISION matrix whose columns are normals of the linear constraints (significant only if NC>0). IPAR(7) A INTEGER parameters: IPAR(1)=MIT, IPAR(2)=MFV, IPAR(3)-NONE, IPAR(4)=IEST, IPAR(5)=MET, IPAR(6)=MET1, IPAR(7)=MET2. Parameters MIT, MFV, IEST, MET, MET1, MET2 are described in Section 3 together with other parameters of the subroutine PVMM. RPAR(7) A DOUBLE PRECISION parameters: RPAR(1)=XMAX, RPAR(2)=TOLX, RPAR(3)=TOLF, RPAR(4)=TOLB, RPAR(5)=TOLG, RPAR(6)=FMIN, RPAR(7)-NONE. Parameters XMAX, TOLX, TOLF, TOLB, TOLG, FMIN are described in Section 3 together with other parameters of the subroutine PVMM. F O DOUBLE PRECISION value of the objective function at the solution X. GMAX O DOUBLE PRECISION maximum absolute value of a partial derivative of the objective function. IPRNT I INTEGER variable that specifies print: IPRNT= 0 - print is suppressed, IPRNT= 1 - basic print of final results, IPRNT=-1 - extended print of final results, IPRNT= 2 - basic print of intermediate and final results, IPRNT=-2 - extended print of intermediate and final results. ITERM O INTEGER variable that indicates the cause of termination: ITERM= 1 - if |X - XO| was less than or equal to TOLX in two subsequent iterations, ITERM= 2 - if |F - FO| was less than or equal to TOLF in two subsequent iterations, ITERM= 3 - if F is less than or equal to TOLB, ITERM= 4 - if GMAX is less than or equal to TOLG, ITERM= 6 - if termination criterion was not satisfied, but the solution is probably acceptable, ITERM=11 - if NIT exceeded MIT, ITERM=12 - if NFV exceeded MFV, ITERM< 0 - if the method failed. The subroutines PVMMU, PVMMS, PVMML require the user supplied subroutine FUNDER that defines the objective function and its subgradient and has the form SUBROUTINE FUNDER(NF,X,F,G) The arguments of the user supplied subroutine have the following meaning. Argument Type Significance ---------------------------------------------------------------------- NF I Positive INTEGER variable that specifies the number of variables of the objective function. X(NF) I DOUBLE PRECISION an estimate to the solution. F O DOUBLE PRECISION value of the objective function at the point X. G(NF) O DOUBLE PRECISION subgradient of the objective function at the point X. 3. Subroutine PVMM: ------------------- This general subroutine is called from all the subroutines described in Section 2. The calling sequence is CALL PVMM(NF,NB,NC,X,IX,XL,XU,CF,IC,CL,CU,CG,ICA,CFD,CR,CZ,GF, & GN,HF,S,SN,XO,GO,XMAX,TOLX,TOLF,TOLB,TOLG,FMIN,GMAX,F,MIT,MFV, & IEST,MET,MET1,MET2,IPRNT,ITERM). The arguments NF, NB, NC, X, IX, XL, XU, CF, IC, CL, CU, CG, GMAX, F, IPRNT, ITERM, have the same meaning as in Section 2. Other arguments have the following meaning: Argument Type Significance ---------------------------------------------------------------------- ICA(NC) A INTEGER vector containing indices of active constraints. CFD(NC) A DOUBLE PRECISION vector of constraint function increments. CR(NCR) A DOUBLE PRECISION matrix containing triangular decomposition of the orthogonal projection kernel (NCR is equal to NF*(NF+1)/2). CZ(NF*NF) A DOUBLE PRECISION matrix containing orthogonal basis of linear manifold defined by active constraints. GF(NF) A DOUBLE PRECISION gradient of the objective function. GN(NF) A DOUBLE PRECISION Reduced gradient of the objective function. HF(NH) A DOUBLE PRECISION variable metric approximation of the Hessian matrix. S(NF) A DOUBLE PRECISION direction vector. SN(NF) A DOUBLE PRECISION reduced direction vector. XO(NF) A DOUBLE PRECISION vector which contains increments of variables. GO(NF) A DOUBLE PRECISION vector which contains increments of gradients. XMAX I DOUBLE PRECISION maximum stepsize; the choice XMAX=0 causes that the default value 1.0D+3 will be taken. TOLX I DOUBLE PRECISION tolerance for the change of the coordinate vector X; the choice TOLX=0 causes that the default value TOLX=1.0D-16 will be taken. TOLF I DOUBLE PRECISION tolerance for the change of function values; the choice TOLF=0 causes that the default value TOLF=1.0D-16 will be taken. TOLB I DOUBLE PRECISION minimum acceptable function value; the choice TOLB=0 causes that the default value TOLB=FMIN+1.0D-16 will be taken. TOLG I DOUBLE PRECISION tolerance for the Lagrangian function gradient; the choice TOLG=0 causes that the default value TOLG=1.0D-6 will be taken. FMIN I DOUBLE PRECISION lower bound for the minimum function value. MIT I INTEGER variable that specifies the maximum number of iterations; the choice MIT=0 causes that the default value 200 will be taken. MFV I INTEGER variable that specifies the maximum number of function evaluations; the choice |MFV|=0 causes that the default value 500 will be taken. IEST I INTEGER estimation of the minimum functiom value for the line search: IEST=0 - estimation is not used, IEST=1 - lower bound FMIN is used as an estimation for the minimum function value. MET I INTEGER variable that specifies variable metric update: MET=1 - the BFGS update is used. MET=2 - a special update is used. The choice MET=0 causes that the default value MET=2 will be taken. MET1 I INTEGER variable that specifies scaling strategy: MET1=1 - scaling is not used. MET1=2 - preliminary scaling in the first iteration is used. MET1=3 - controlled scaling is used. MET1=4 - interval scaling is used. MET1=5 - permanent scaling in all iterations is used. The choice MET1=0 causes that the default value MET1=3 will be taken. MET2 I INTEGER variable that specifies type of correction: MET2=1 - correction is not used. MET2=2 - basic nonquadratic correction is used. The choice MET2=0 causes that the default value MET2=2 will be taken. The subroutine PVMM requires the user supplied subroutine FUNDER which is described in Section 2. 4. Verification of the subroutines: ----------------------------------- Subroutine PVMMU can be verified and tested using the program TVMMU. This program calls the subroutines TIUD28 (initiation) and TFBU28 (function and gradient evaluations) containing 92 academic test problems with at most 200 variables [2]. The results obtained by the program TVMMU on a PC computer with Microsoft Power Station Fortran compiler have the following form. NIT= 690 NFV= 844 NFG= 844 F= 0.192728211E-15 G= 0.149E-06 ITERM= 4 NIT= 644 NFV= 929 NFG= 929 F= 22.7430391 G= 0.789E-06 ITERM= 4 NIT= 68 NFV= 78 NFG= 78 F= 0.452841146E-13 G= 0.504E-06 ITERM= 4 NIT= 82 NFV= 87 NFG= 87 F= 52.3498421 G= 0.934E-06 ITERM= 4 NIT= 21 NFV= 22 NFG= 22 F= 0.307559701E-11 G= 0.901E-06 ITERM= 4 NIT= 30 NFV= 31 NFG= 31 F= 0.932233848E-11 G= 0.598E-06 ITERM= 4 NIT= 42 NFV= 51 NFG= 51 F= 67.1045132 G= 0.340E-06 ITERM= 4 NIT= 27 NFV= 29 NFG= 29 F= 12045.2639 G= 0.891E-06 ITERM= 4 NIT= 12 NFV= 14 NFG= 14 F= -50.6520761 G= 0.608E-06 ITERM= 4 NIT= 166 NFV= 304 NFG= 304 F= -116.250000 G= 0.857E-06 ITERM= 4 NIT= 114 NFV= 141 NFG= 141 F= 2.15531758 G= 0.296E-06 ITERM= 4 NIT= 22 NFV= 35 NFG= 35 F= 19.9786614 G= 0.407E-07 ITERM= 4 NIT= 1 NFV= 2 NFG= 2 F= 0.200000000E-57 G= 0.000E+00 ITERM= 3 NIT= 377 NFV= 379 NFG= 379 F= 0.121937504E-06 G= 0.996E-06 ITERM= 4 NIT= 110 NFV= 216 NFG= 216 F= 1.92401769 G= 0.512E-06 ITERM= 4 NIT= 78 NFV= 83 NFG= 83 F= -92.8114800 G= 0.883E-06 ITERM= 4 NIT= 109 NFV= 110 NFG= 110 F=-0.379936815E-01 G= 0.909E-06 ITERM= 4 NIT= 104 NFV= 106 NFG= 106 F=-0.245757515E-01 G= 0.541E-06 ITERM= 4 NIT= 131 NFV= 134 NFG= 134 F= 59.5127958 G= 0.711E-06 ITERM= 4 NIT= 238 NFV= 242 NFG= 242 F= -1.00067331 G= 0.647E-06 ITERM= 4 NIT= 274 NFV= 278 NFG= 278 F= 2.13853948 G= 0.436E-06 ITERM= 4 NIT= 205 NFV= 223 NFG= 223 F= 1.00000000 G= 0.782E-06 ITERM= 4 NIT= 4 NFV= 6 NFG= 6 F= 24.3178699 G= 0.733E-06 ITERM= 4 NIT= 331 NFV= 648 NFG= 648 F= 1.00000000 G= 0.989E-05 ITERM= 2 NIT= 46 NFV= 66 NFG= 66 F= 0.364042247E-11 G= 0.355E-06 ITERM= 4 NIT= 55 NFV= 69 NFG= 69 F= 0.248207351E-12 G= 0.985E-06 ITERM= 4 NIT= 35 NFV= 47 NFG= 47 F= 0.930530019E-03 G= 0.106E-07 ITERM= 4 NIT= 22 NFV= 54 NFG= 54 F= 0.276167877E-26 G= 0.148E-10 ITERM= 3 NIT= 3 NFV= 5 NFG= 5 F= 0.120344066E-09 G= 0.116E-06 ITERM= 4 NIT= 7 NFV= 8 NFG= 8 F= 0.528119454E-11 G= 0.407E-06 ITERM= 4 NIT= 42 NFV= 84 NFG= 84 F= 0.356263955 G= 0.568E-06 ITERM= 4 NIT= 25 NFV= 45 NFG= 45 F= 0.694990182E-13 G= 0.723E-06 ITERM= 4 NIT= 37 NFV= 38 NFG= 38 F= 0.471529050E-12 G= 0.647E-06 ITERM= 4 NIT= 48 NFV= 85 NFG= 85 F= 12065.9072 G= 0.185E-06 ITERM= 4 NIT= 558 NFV= 570 NFG= 570 F= 0.928715069E-08 G= 0.934E-06 ITERM= 4 NIT= 63 NFV= 71 NFG= 71 F= 439.570742 G= 0.997E-06 ITERM= 4 NIT= 124 NFV= 128 NFG= 128 F= 38.1515511 G= 0.902E-06 ITERM= 4 NIT= 1651 NFV= 2020 NFG= 2020 F= 0.432857588E-13 G= 0.716E-06 ITERM= 4 NIT= 150 NFV= 333 NFG= 333 F= 1958.73034 G= 0.263E-06 ITERM= 4 NIT= 52 NFV= 94 NFG= 94 F= 26040.2498 G= 0.382E-06 ITERM= 4 NIT= 20 NFV= 22 NFG= 22 F= 21.5296010 G= 0.866E-06 ITERM= 4 NIT= 29 NFV= 33 NFG= 33 F= 3.60612253 G= 0.340E-06 ITERM= 4 NIT= 251 NFV= 257 NFG= 257 F= 0.498193548 G= 0.662E-06 ITERM= 4 NIT= 505 NFV= 525 NFG= 525 F= 0.822712712E-06 G= 0.693E-06 ITERM= 4 NIT= 230 NFV= 240 NFG= 240 F= 0.208996474E-13 G= 0.645E-06 ITERM= 4 NIT= 72 NFV= 76 NFG= 76 F= 0.910851608E-13 G= 0.947E-06 ITERM= 4 NIT= 504 NFV= 511 NFG= 511 F= 0.255770594E-12 G= 0.361E-06 ITERM= 4 NIT= 97 NFV= 113 NFG= 113 F= 129.035092 G= 0.758E-06 ITERM= 4 NIT= 68 NFV= 71 NFG= 71 F= 888.961478 G= 0.700E-06 ITERM= 4 NIT= 78 NFV= 138 NFG= 138 F= 92215.8691 G= 0.845E-06 ITERM= 4 NIT= 63 NFV= 64 NFG= 64 F= 0.621437910E-11 G= 0.944E-06 ITERM= 4 NIT= 29 NFV= 47 NFG= 47 F= 7.08628165 G= 0.586E-06 ITERM= 4 NIT= 319 NFV= 595 NFG= 595 F= 0.166367452E-14 G= 0.421E-06 ITERM= 4 NIT= 31 NFV= 33 NFG= 33 F= 0.751705062E-09 G= 0.308E-06 ITERM= 4 NIT= 94 NFV= 119 NFG= 119 F= 0.150657109E-13 G= 0.862E-06 ITERM= 4 NIT= 101 NFV= 120 NFG= 120 F= 0.168547802E-13 G= 0.588E-06 ITERM= 4 NIT= 28 NFV= 33 NFG= 33 F= 2449.21268 G= 0.199E-07 ITERM= 4 NIT= 50 NFV= 67 NFG= 67 F= 0.787621643E-10 G= 0.467E-06 ITERM= 4 NIT= 46 NFV= 48 NFG= 48 F= 0.387458201E-12 G= 0.948E-06 ITERM= 4 NIT= 302 NFV= 598 NFG= 598 F= 0.349643482E-04 G= 0.793E-06 ITERM= 4 NIT= 31 NFV= 35 NFG= 35 F= 0.735648208E-17 G= 0.493E-07 ITERM= 3 NIT= 316 NFV= 510 NFG= 510 F= 0.676334031E-16 G= 0.717E-06 ITERM= 3 NIT= 1683 NFV= 1703 NFG= 1703 F= 0.379468266E-10 G= 0.898E-06 ITERM= 4 NIT= 414 NFV= 481 NFG= 481 F= 0.307039549E-07 G= 0.361E-06 ITERM= 4 NIT= 1228 NFV= 1257 NFG= 1257 F= 0.154716364E-01 G= 0.411E-06 ITERM= 4 NIT= 1012 NFV= 1041 NFG= 1041 F= 0.144809454E-05 G= 0.932E-06 ITERM= 4 NIT= 77 NFV= 98 NFG= 98 F= 0.123869315E-12 G= 0.421E-06 ITERM= 4 NIT= 119 NFV= 121 NFG= 121 F= 0.549149577E-12 G= 0.706E-06 ITERM= 4 NIT= 209 NFV= 230 NFG= 230 F= 0.209876457E-11 G= 0.956E-06 ITERM= 4 NIT= 580 NFV= 582 NFG= 582 F= 0.132203480E-08 G= 0.792E-06 ITERM= 4 NIT= 85 NFV= 168 NFG= 168 F= 0.313284555E-12 G= 0.493E-06 ITERM= 4 NIT= 350 NFV= 394 NFG= 394 F= 0.519932766E-12 G= 0.666E-06 ITERM= 4 NIT= 604 NFV= 625 NFG= 625 F= 0.124398999E-13 G= 0.869E-06 ITERM= 4 NIT= 16 NFV= 17 NFG= 17 F= 0.101729236E-11 G= 0.238E-06 ITERM= 4 NIT= 409 NFV= 526 NFG= 526 F= 0.348785421E-10 G= 0.242E-06 ITERM= 4 NIT= 4 NFV= 6 NFG= 6 F= 0.320317964E-10 G= 0.566E-06 ITERM= 4 NIT= 7 NFV= 9 NFG= 9 F= 0.118607397E-11 G= 0.327E-06 ITERM= 4 NIT= 145 NFV= 147 NFG= 147 F= 0.581861824E-07 G= 0.992E-06 ITERM= 4 NIT= 99 NFV= 101 NFG= 101 F= 0.212614952E-11 G= 0.960E-06 ITERM= 4 NIT= 38 NFV= 40 NFG= 40 F= 0.394585995E-12 G= 0.728E-06 ITERM= 4 NIT= 20 NFV= 22 NFG= 22 F= 0.393073227E-12 G= 0.928E-06 ITERM= 4 NIT= 7 NFV= 9 NFG= 9 F= 0.448100639E-12 G= 0.509E-06 ITERM= 4 NIT= 532 NFV= 541 NFG= 541 F= 0.438145025E-05 G= 0.557E-06 ITERM= 4 NIT= 14 NFV= 16 NFG= 16 F= 0.308265378E-13 G= 0.726E-06 ITERM= 4 NIT= 9 NFV= 11 NFG= 11 F= 0.105808207E-18 G= 0.370E-06 ITERM= 3 NIT= 9 NFV= 10 NFG= 10 F= 0.146761932E-12 G= 0.177E-06 ITERM= 4 NIT= 531 NFV= 535 NFG= 535 F= 0.365948122E-05 G= 0.574E-06 ITERM= 4 NIT= 77 NFV= 579 NFG= 579 F= 0.895982064E-12 G= 0.951E-06 ITERM= 4 NIT= 409 NFV= 595 NFG= 595 F= 0.274894114E-16 G= 0.322E-06 ITERM= 3 NIT= 203 NFV= 205 NFG= 205 F= 0.680058020E-06 G= 0.718E-06 ITERM= 4 NIT= 58 NFV= 74 NFG= 74 F= 0.129684531E-11 G= 0.456E-06 ITERM= 4 NIT= 122 NFV= 124 NFG= 124 F= 0.536101508E-12 G= 0.497E-06 ITERM= 4 NITER =19132 NFVAL =23231 NSUCC = 92 TIME= 0:00:06.92 The rows corresponding to individual test problems contain the number of iterations NIT, the number of function evaluations NFV, the number of gradient evaluations NFG, the final value of the objective function F, the norm of gradient G and the cause of termination ITERM. Subroutine PVMML can be verified and tested using the program TVMML. This program calls the subroutines TILD03 (initiation), TFFU03 (function evaluation), TFGU03 (gradient evaluation) containing 15 academic test problems with at most 16 variables. The results obtained by the program TVMML on a PC computer with Microsoft Power Station Fortran compiler have the following form. NIT= 0 NFV= 1 NFG= 1 F= 0.00000000 G= 0.157E+00 ITERM= 3 NIT= 0 NFV= 1 NFG= 1 F=-0.133645896E-01 G= 0.802E-01 ITERM= 3 NIT= 0 NFV= 1 NFG= 1 F= -25698.3009 G= 0.103E+05 ITERM= 3 NIT= 0 NFV= 1 NFG= 1 F= -1000.00000 G= 0.100E+03 ITERM= 3 NIT= 1 NFV= 1 NFG= 1 F= 2.00000000 G= 0.000E+00 ITERM= -1 NIT= 19 NFV= 23 NFG= 23 F= 0.113783849 G= 0.870E-06 ITERM= 4 NIT= 26 NFV= 30 NFG= 30 F= 0.335691403E-11 G= 0.991E-06 ITERM= 4 NIT= 15 NFV= 21 NFG= 21 F= 0.126710136E-15 G= 0.186E-07 ITERM= 4 NIT= 3 NFV= 5 NFG= 5 F= 4.09302326 G= 0.172E-14 ITERM= 4 NIT= 2 NFV= 3 NFG= 3 F= -15.1982624 G= 0.000E+00 ITERM= 3 NIT= 0 NFV= 1 NFG= 1 F=-0.846572724 G= 0.677E+00 ITERM= 3 NIT= 0 NFV= 1 NFG= 1 F= 6.66666667 G= 0.000E+00 ITERM= 4 NIT= 97 NFV= 154 NFG= 154 F= 1136.30730 G= 0.444E-06 ITERM= 4 NIT= 0 NFV= 1 NFG= 1 F= -45.0551645 G= 0.447E+01 ITERM= 3 NIT= 15 NFV= 19 NFG= 19 F= 244.899698 G= 0.728E-06 ITERM= 4 NITER = 178 NFVAL = 263 NSUCC = 14 TIME= 0:00:00.05 References: ----------- [1] Luksan L., Spedicato E.: Variable metric methods for unconstrained optimization and nonlinear least squares. Journal of Computational and Applied Mathematics 124 (2000) 61-93. [2] Luksan L., Vlcek J.: Test problems for unconstrained optimization. Research Report V-897, Institute of Computer Science, Academy of Sciences of the Czech Republic, Prague, Czech Republic, 2003.