NUMAL Section 5.1.2.1.1
BEGIN SECTION : 5.1.2.1.1 (, december 1978 )
AUTHOR : J. C. P. BUS
INSTITUTE : MATHEMATICAL CENTRE.
RECEIVED : 741101.
BRIEF DESCRIPTION :
THIS SECTION CONTAINS THE PROCEDURE MININ, FOR MINIMIZING
A FUNCTION OF ONE VARIABLE IN A GIVEN INTERVAL;
KEYWORDS :
MINIMIZATION,
FUNCTIONS OF ONE VARIABLE.
CALLING SEQUENCE :
THE HEADING OF THIS PROCEDURE IS :
"REAL" "PROCEDURE" MININ(X, A, B, FX, TOLX);
"REAL" X, A, B, FX, TOLX;
"CODE" 34433;
MININ DELIVERS THE CALCULATED MINIMUM VALUE OF THE FUNCTION,
DEFINED BY FX, ON THE INTERVAL WITH ENDPOINTS A AND B.
THE MEANING OF THE FORMAL PARAMETERS IS :
X : <REAL VARIABLE>;
A JENSEN VARIABLE; THE ACTUAL PARAMETERS FOR FX AND TOLX
DEPEND ON X;
EXIT : THE CALCULATED APPROXIMATION OF THE POSITION OF THE
MINIMUM;
A, B : <REAL VARIABLE>;
ENTRY : THE ENDPOINTS OF THE INTERVAL ON WHICH A MINIMUM
IS SEARCHED FOR;
EXIT : THE ENDPOINTS OF THE INTERVAL WITH LENGTH LESS THAN
4 * TOL(X) SUCH THAT A < X < B;
FX : <ARITHMATIC EXPRESSION>;
THE FUNCTION ISGIVEN BY THE ACTUAL PARAMETER FX, WHICH
DEPENDS ON X;
TOLX : <ARITHMETIC EXPRESSION>;
THE TOLERANCE IS GIVEN BY THE ACTUAL PARAMETER TOLX, WHICH MAY
DEPEND ON X; A SUITABLE TOLERANCE FUNCTION IS : ABS(X)*RE + AE,
WHERE RE IS THE RELATIVE PRECISION DESIRED AND AE IS AN ABSOLUTE
PRECISION WHICH SHOULD NOT BE CHOSEN EQUAL TO ZERO.
DATA AND RESULTS :
THE USER SHOULD BE AWARE OF THE FACT THAT THE CHOICE OF TOLX MAY
HIGHLY AFFECT THE BEHAVIOUR OF THE ALGORITHM, ALTHOUGH CONVERGENCE
TO A POINT FOR WHICH THE GIVEN FUNCTION IS MINIMAL ON THE INTERVAL
IS ASSURED; THE ASYMPTOTIC BEHAVIOUR WILL USUALLY BE FINE AS LONG AS
THE NUMERICAL FUNCTION IS STRICTLY DELTA-UNIMODAL ON THE GIVEN
INTERVAL (SEE [1]) AND THE TOLERANCE FUNCTION SATISFIES TOL(X)>=DELTA,
FOR ALL X IN THE GIVEN INTERVAL.
PROCEDURES USED : NONE.
REQUIRED CENTRAL MEMORY : NO AUXILIARY ARRAYS ARE DECLARED IN MININ.
METHOD AND PERFORMANCE :
MININ IS A SLIGHTLY MODIFIED VERSION OF THE ALGORITHM GIVEN IN [1].
EXAMPLE OF USE:
THE FOLLOWING PROGRAM MAY BE USED TO CALCULATE THE MINIMUM OF THE
FUNCTION F(X) = SUM(((I * 2 - 5)/(X - I ** 2)) ** 2; I = 1 (1) 20)
ON THE INTERVAL [1 + TOL, 4 - TOL] (SEE [1]).
"BEGIN"
"REAL" M, X, A, B; "INTEGER" CNT;
"REAL" "PROCEDURE" F(X); "VALUE" X; "REAL" X;
"BEGIN" "INTEGER" I; "REAL" S;
S:= 0; "FOR" I:= 1 "STEP" 1 "UNTIL" 20 "DO"
S:= S + ((I * 2 - 5) / (X - I ** 2)) ** 2;
CNT:= CNT + 1; F:= S
"END" F;
"REAL" "PROCEDURE" TOL(X); "VALUE" X; "REAL" X;
TOL:= ABS(X) * "-7 + "-7;
A:= 1 + TOL(1); B:= 4 - TOL(4); CNT:= 0;
M:= MININ(X, A, B, F(X), TOL(X));
OUTPUT(61, "("4B,"("MINIMUM IS ")",N,/4B,
"("FOR X IS ")",N,/4B,
"("IN THE INTERVAL WITH ENDPOINTS ")",/8B,2(N),/4B,
"("THE NUMBER OF FUNCTION EVALUATIONS NEEDED IS ")",2ZD,/")",
M, X, A, B, CNT)
"END"
RESULTS :
MINIMUM IS +3.6766990169019"+000
FOR X IS +3.0229153387991"+000
IN THE INTERVAL WITH ENDPOINTS
+3.0229149365075"+000 +3.0229157410906"+000
THE NUMBER OF FUNCTION EVALUATIONS NEEDED IS 13
SOURCE TEXT:
"CODE" 34433;