home *** CD-ROM | disk | FTP | other *** search
- C
- C ..................................................................
- C
- C SUBROUTINE RTNI
- C
- C PURPOSE
- C TO SOLVE GENERAL NONLINEAR EQUATIONS OF THE FORM F(X)=0
- C BY MEANS OF NEWTON-S ITERATION METHOD.
- C
- C USAGE
- C CALL RTNI (X,F,DERF,FCT,XST,EPS,IEND,IER)
- C PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT.
- C
- C DESCRIPTION OF PARAMETERS
- C X - RESULTANT ROOT OF EQUATION F(X)=0.
- C F - RESULTANT FUNCTION VALUE AT ROOT X.
- C DERF - RESULTANT VALUE OF DERIVATIVE AT ROOT X.
- C FCT - NAME OF THE EXTERNAL SUBROUTINE USED. IT COMPUTES
- C TO GIVEN ARGUMENT X FUNCTION VALUE F AND DERIVATIVE
- C DERF. ITS PARAMETER LIST MUST BE X,F,DERF.
- 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 DERIVATIVE DERF WAS
- C EQUAL TO ZERO.
- C
- C REMARKS
- C THE PROCEDURE IS BYPASSED AND GIVES THE ERROR MESSAGE IER=2
- C IF AT ANY ITERATION STEP DERIVATIVE OF F(X) IS EQUAL TO 0.
- C POSSIBLY THE PROCEDURE WOULD BE SUCCESSFUL IF IT IS STARTED
- C ONCE MORE WITH ANOTHER INITIAL GUESS XST.
- C
- C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
- C THE EXTERNAL SUBROUTINE FCT(X,F,DERF) MUST BE FURNISHED
- C BY THE USER.
- C
- C METHOD
- C SOLUTION OF EQUATION F(X)=0 IS DONE BY MEANS OF NEWTON-S
- C ITERATION METHOD, WHICH STARTS AT THE INITIAL GUESS XST OF
- C A ROOT X. CONVERGENCE IS QUADRATIC IF THE DERIVATIVE OF
- C F(X) AT ROOT X IS NOT EQUAL TO ZERO. ONE ITERATION STEP
- C REQUIRES ONE EVALUATION OF F(X) AND ONE EVALUATION OF THE
- C DERIVATIVE OF F(X). FOR TEST ON SATISFACTORY ACCURACY SEE
- C FORMULAE (2) OF MATHEMATICAL DESCRIPTION.
- C FOR REFERENCE, SEE R. ZURMUEHL, PRAKTISCHE MATHEMATIK FUER
- C INGENIEURE UND PHYSIKER, SPRINGER, BERLIN/GOETTINGEN/
- C HEIDELBERG, 1963, PP.12-17.
- C
- C ..................................................................
- C
- SUBROUTINE RTNI(X,F,DERF,FCT,XST,EPS,IEND,IER)
- C
- C
- C PREPARE ITERATION
- IER=0
- X=XST
- TOL=X
- CALL FCT(TOL,F,DERF)
- TOLF=100.*EPS
- C
- C
- C START ITERATION LOOP
- DO 6 I=1,IEND
- IF(F)1,7,1
- C
- C EQUATION IS NOT SATISFIED BY X
- 1 IF(DERF)2,8,2
- C
- C ITERATION IS POSSIBLE
- 2 DX=F/DERF
- X=X-DX
- TOL=X
- CALL FCT(TOL,F,DERF)
- C
- C TEST ON SATISFACTORY ACCURACY
- TOL=EPS
- A=ABS(X)
- IF(A-1.)4,4,3
- 3 TOL=TOL*A
- 4 IF(ABS(DX)-TOL)5,5,6
- 5 IF(ABS(F)-TOLF)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