Google
 

Trailing-Edge - PDP-10 Archives - decus_20tap2_198111 - decus/20-0026/dfmfp.doc
There are 2 other files named dfmfp.doc in the archive. Click here to see a list.
SUBROUTINE DFMFP

PURPOSE
   TO FIND A LOCAL MINIMUM OF A FUNCTION OF SEVERAL VARIABLES
   BY THE METHOD OF FLETCHER AND POWELL

USAGE
   CALL DFMFP(FUNCT,N,X,F,G,EST,EPS,LIMIT,IER,H)

DESCRIPTION OF PARAMETERS
   FUNCT  - USER-WRITTEN SUBROUTINE CONCERNING THE FUNCTION TO
	    BE MINIMIZED. IT MUST BE OF THE FORM
	    SUBROUTINE FUNCT(N,ARG,VAL,GRAD)
	    AND MUST SERVE THE FOLLOWING PURPOSE
	    FOR EACH N-DIMENSIONAL ARGUMENT VECTOR  ARG,
	    FUNCTION VALUE AND GRADIENT VECTOR MUST BE COMPUTED
	    AND, ON RETURN, STORED IN VAL AND GRAD RESPECTIVELY
	    ARG,VAL AND GRAD MUST BE OF DOUBLE PRECISION.
   N	  - NUMBER OF VARIABLES
   X	  - VECTOR OF DIMENSION N CONTAINING THE INITIAL
	    ARGUMENT WHERE THE ITERATION STARTS. ON RETURN,
	    X HOLDS THE ARGUMENT CORRESPONDING TO THE
	    COMPUTED MINIMUM FUNCTION VALUE
	    DOUBLE PRECISION VECTOR.
   F	  - SINGLE VARIABLE CONTAINING THE MINIMUM FUNCTION
	    VALUE ON RETURN, I.E. F=F(X).
	    DOUBLE PRECISION VARIABLE.
   G	  - VECTOR OF DIMENSION N CONTAINING THE GRADIENT
	    VECTOR CORRESPONDING TO THE MINIMUM ON RETURN,
	    I.E. G=G(X).
	    DOUBLE PRECISION VECTOR.
   EST	  - IS AN ESTIMATE OF THE MINIMUM FUNCTION VALUE.
	    SINGLE PRECISION VARIABLE.
   EPS	  - TESTVALUE REPRESENTING THE EXPECTED ABSOLUTE ERROR.
	    A REASONABLE CHOICE IS 10**(-16), I.E.
	    SOMEWHAT GREATER THAN 10**(-D), WHERE D IS THE
	    NUMBER OF SIGNIFICANT DIGITS IN FLOATING POINT
	    REPRESENTATION.
	    SINGLE PRECISION VARIABLE.
   LIMIT  - MAXIMUM NUMBER OF ITERATIONS.
   IER	  - ERROR PARAMETER
	    IER = 0 MEANS CONVERGENCE WAS OBTAINED
	    IER = 1 MEANS NO CONVERGENCE IN LIMIT ITERATIONS
	    IER =-1 MEANS ERRORS IN GRADIENT CALCULATION
	    IER = 2 MEANS LINEAR SEARCH TECHNIQUE INDICATES
	    IT IS LIKELY THAT THERE EXISTS NO MINIMUM.
   H	  - WORKING STORAGE OF DIMENSION N*(N+7)/2.
	    DOUBLE PRECISION ARRAY.

REMARKS
    I) THE SUBROUTINE NAME REPLACING THE DUMMY ARGUMENT  FUNCT
       MUST BE DECLARED AS EXTERNAL IN THE CALLING PROGRAM.
   II) IER IS SET TO 2 IF , STEPPING IN ONE OF THE COMPUTED
       DIRECTIONS, THE FUNCTION WILL NEVER INCREASE WITHIN
       A TOLERABLE RANGE OF ARGUMENT.
       IER = 2 MAY OCCUR ALSO IF THE INTERVAL WHERE F
       INCREASES IS SMALL AND THE INITIAL ARGUMENT WAS
       RELATIVELY FAR AWAY FROM THE MINIMUM SUCH THAT THE
       MINIMUM WAS OVERLEAPED. THIS IS DUE TO THE SEARCH
       TECHNIQUE WHICH DOUBLES THE STEPSIZE UNTIL A POINT
       IS FOUND WHERE THE FUNCTION INCREASES.

SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
   FUNCT

METHOD
   THE METHOD IS DESCRIBED IN THE FOLLOWING ARTICLE
   R. FLETCHER AND M.J.D. POWELL, A RAPID DESCENT METHOD FOR
   MINIMIZATION,
   COMPUTER JOURNAL VOL.6, ISS. 2, 1963, PP.163-168.