File: RTWI.FT of Tape: Various/ETH/eth11-1
(Source file text)
C .................................................................. C C SUBROUTINE RTWI C C PURPOSE C TO SOLVE GENERAL NONLINEAR EQUATIONS OF THE FORM X=FCT(X) C BY MEANS OF WEGSTEIN-S ITERATION METHOD. C C USAGE C CALL RTWI (X,VAL,FCT,XST,EPS,IEND,IER) C PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT. C C DESCRIPTION OF PARAMETERS C X - RESULTANT ROOT OF EQUATION X=FCT(X). C VAL - RESULTANT VALUE OF X-FCT(X) AT ROOT X. C FCT - NAME OF THE EXTERNAL FUNCTION SUBPROGRAM USED. C XST - INPUT VALUE WHICH SPECIFIES THE INITIAL GUESS OF C THE ROOT X. C EPS - INPUT VALUE WHICH SPECIFIES THE UPPER BOUND OF THE C ERROR OF RESULT X. C IEND - MAXIMUM NUMBER OF ITERATION STEPS SPECIFIED. C IER - RESULTANT ERROR PARAMETER CODED AS FOLLOWS C IER=0 - NO ERROR, C IER=1 - NO CONVERGENCE AFTER IEND ITERATION STEPS, C IER=2 - AT ANY ITERATION STEP THE DENOMINATOR OF C ITERATION FORMULA WAS EQUAL TO ZERO. C C REMARKS C THE PROCEDURE IS BYPASSED AND GIVES THE ERROR MESSAGE IER=2 C IF AT ANY ITERATION STEP THE DENOMINATOR OF ITERATION C FORMULA WAS EQUAL TO ZERO. THAT MEANS THAT THERE IS AT C LEAST ONE POINT IN THE RANGE IN WHICH ITERATION MOVES WITH C DERIVATIVE OF FCT(X) EQUAL TO 1. C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C THE EXTERNAL FUNCTION SUBPROGRAM FCT(X) MUST BE FURNISHED C BY THE USER. C C METHOD C SOLUTION OF EQUATION X=FCT(X) IS DONE BY MEANS OF C WEGSTEIN-S ITERATION METHOD, WHICH STARTS AT THE INITIAL C GUESS XST OF A ROOT X. ONE ITERATION STEP REQUIRES ONE C EVALUATION OF FCT(X). FOR TEST ON SATISFACTORY ACCURACY SEE C FORMULAE (2) OF MATHEMATICAL DESCRIPTION. C FOR REFERENCE, SEE C (1) G. N. LANCE, NUMERICAL METHODS FOR HIGH SPEED COMPUTERS, C ILIFFE, LONDON, 1960, PP.134-138, C (2) J. WEGSTEIN, ALGORITHM 2, CACM, VOL.3, ISS.2 (1960), C PP.74, C (3) H.C. THACHER, ALGORITHM 15, CACM, VOL.3, ISS.8 (1960), C PP.475, C (4) J.G. HERRIOT, ALGORITHM 26, CACM, VOL.3, ISS.11 (1960), C PP.603. C C .................................................................. C SUBROUTINE RTWI(X,VAL,FCT,XST,EPS,IEND,IER) C C C PREPARE ITERATION IER=0 TOL=XST X=FCT(TOL) A=X-XST B=-A TOL=X VAL=X-FCT(TOL) C C C START ITERATION LOOP DO 6 I=1,IEND IF(VAL)1,7,1 C C EQUATION IS NOT SATISFIED BY X 1 B=B/VAL-1. IF(B)2,8,2 C C ITERATION IS POSSIBLE 2 A=A/B X=X+A B=VAL TOL=X VAL=X-FCT(TOL) C C TEST ON SATISFACTORY ACCURACY TOL=EPS D=ABS(X) IF(D-1.)4,4,3 3 TOL=TOL*D 4 IF(ABS(A)-TOL)5,5,6 5 IF(ABS(VAL)-10.*TOL)7,7,6 6 CONTINUE C END OF ITERATION LOOP C C C NO CONVERGENCE AFTER IEND ITERATION STEPS. ERROR RETURN. IER=1 7 RETURN C C ERROR RETURN IN CASE OF ZERO DIVISOR 8 IER=2 RETURN END C