Trailing-Edge
-
PDP-10 Archives
-
decuslib20-02
-
decus/20-0026/drtni.ssp
There are 2 other files named drtni.ssp in the archive. Click here to see a list.
C DRTN 10
C ..................................................................DRTN 20
C DRTN 30
C SUBROUTINE DRTNI DRTN 40
C DRTN 50
C PURPOSE DRTN 60
C TO SOLVE GENERAL NONLINEAR EQUATIONS OF THE FORM F(X)=0 DRTN 70
C BY MEANS OF NEWTON-S ITERATION METHOD. DRTN 80
C DRTN 90
C USAGE DRTN 100
C CALL DRTNI (X,F,DERF,FCT,XST,EPS,IEND,IER) DRTN 110
C PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT. DRTN 120
C DRTN 130
C DESCRIPTION OF PARAMETERS DRTN 140
C X - DOUBLE PRECISION RESULTANT ROOT OF EQUATION F(X)=0.DRTN 150
C F - DOUBLE PRECISION RESULTANT FUNCTION VALUE AT DRTN 160
C ROOT X. DRTN 170
C DERF - DOUBLE PRECISION RESULTANT VALUE OF DERIVATIVE DRTN 180
C AT ROOT X. DRTN 190
C FCT - NAME OF THE EXTERNAL SUBROUTINE USED. IT COMPUTES DRTN 200
C TO GIVEN ARGUMENT X FUNCTION VALUE F AND DERIVATIVEDRTN 210
C DERF. ITS PARAMETER LIST MUST BE X,F,DERF, WHERE DRTN 220
C ALL PARAMETERS ARE DOUBLE PRECISION. DRTN 230
C XST - DOUBLE PRECISION INPUT VALUE WHICH SPECIFIES THE DRTN 240
C INITIAL GUESS OF THE ROOT X. DRTN 250
C EPS - SINGLE PRECISION INPUT VALUE WHICH SPECIFIES THE DRTN 260
C UPPER BOUND OF THE ERROR OF RESULT X. DRTN 270
C IEND - MAXIMUM NUMBER OF ITERATION STEPS SPECIFIED. DRTN 280
C IER - RESULTANT ERROR PARAMETER CODED AS FOLLOWS DRTN 290
C IER=0 - NO ERROR, DRTN 300
C IER=1 - NO CONVERGENCE AFTER IEND ITERATION STEPS,DRTN 310
C IER=2 - AT ANY ITERATION STEP DERIVATIVE DERF WAS DRTN 320
C EQUAL TO ZERO. DRTN 330
C DRTN 340
C REMARKS DRTN 350
C THE PROCEDURE IS BYPASSED AND GIVES THE ERROR MESSAGE IER=2 DRTN 360
C IF AT ANY ITERATION STEP DERIVATIVE OF F(X) IS EQUAL TO 0. DRTN 370
C POSSIBLY THE PROCEDURE WOULD BE SUCCESSFUL IF IT IS STARTED DRTN 380
C ONCE MORE WITH ANOTHER INITIAL GUESS XST. DRTN 390
C DRTN 400
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED DRTN 410
C THE EXTERNAL SUBROUTINE FCT(X,F,DERF) MUST BE FURNISHED DRTN 420
C BY THE USER. DRTN 430
C DRTN 440
C METHOD DRTN 450
C SOLUTION OF EQUATION F(X)=0 IS DONE BY MEANS OF NEWTON-S DRTN 460
C ITERATION METHOD, WHICH STARTS AT THE INITIAL GUESS XST OF DRTN 470
C A ROOT X. CONVERGENCE IS QUADRATIC IF THE DERIVATIVE OF DRTN 480
C F(X) AT ROOT X IS NOT EQUAL TO ZERO. ONE ITERATION STEP DRTN 490
C REQUIRES ONE EVALUATION OF F(X) AND ONE EVALUATION OF THE DRTN 500
C DERIVATIVE OF F(X). FOR TEST ON SATISFACTORY ACCURACY SEE DRTN 510
C FORMULAE (2) OF MATHEMATICAL DESCRIPTION. DRTN 520
C FOR REFERENCE, SEE R. ZURMUEHL, PRAKTISCHE MATHEMATIK FUER DRTN 530
C INGENIEURE UND PHYSIKER, SPRINGER, BERLIN/GOETTINGEN/ DRTN 540
C HEIDELBERG, 1963, PP.12-17. DRTN 550
C DRTN 560
C ..................................................................DRTN 570
C DRTN 580
SUBROUTINE DRTNI(X,F,DERF,FCT,XST,EPS,IEND,IER) DRTN 590
C DRTN 600
C DRTN 610
DOUBLE PRECISION X,F,DERF,XST,TOL,TOLF,DX,A DRTN 620
C DRTN 630
C PREPARE ITERATION DRTN 640
IER=0 DRTN 650
X=XST DRTN 660
TOL=X DRTN 670
CALL FCT(TOL,F,DERF) DRTN 680
TOLF=100.*EPS DRTN 690
C DRTN 700
C DRTN 710
C START ITERATION LOOP DRTN 720
DO 6 I=1,IEND DRTN 730
IF(F)1,7,1 DRTN 740
C DRTN 750
C EQUATION IS NOT SATISFIED BY X DRTN 760
1 IF(DERF)2,8,2 DRTN 770
C DRTN 780
C ITERATION IS POSSIBLE DRTN 790
2 DX=F/DERF DRTN 800
X=X-DX DRTN 810
TOL=X DRTN 820
CALL FCT(TOL,F,DERF) DRTN 830
C DRTN 840
C TEST ON SATISFACTORY ACCURACY DRTN 850
TOL=EPS DRTN 860
A=DABS(X) DRTN 870
IF(A-1.D0)4,4,3 DRTN 880
3 TOL=TOL*A DRTN 890
4 IF(DABS(DX)-TOL)5,5,6 DRTN 900
5 IF(DABS(F)-TOLF)7,7,6 DRTN 910
6 CONTINUE DRTN 920
C END OF ITERATION LOOP DRTN 930
C DRTN 940
C DRTN 950
C NO CONVERGENCE AFTER IEND ITERATION STEPS. ERROR RETURN. DRTN 960
IER=1 DRTN 970
7 RETURN DRTN 980
C DRTN 990
C ERROR RETURN IN CASE OF ZERO DIVISOR DRTN1000
8 IER=2 DRTN1010
RETURN DRTN1020
END DRTN1030