home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / library / ssp / rootnleq / rtni.for < prev    next >
Encoding:
Text File  |  1985-11-29  |  3.3 KB  |  99 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE RTNI
  5. C
  6. C        PURPOSE
  7. C           TO SOLVE GENERAL NONLINEAR EQUATIONS OF THE FORM F(X)=0
  8. C           BY MEANS OF NEWTON-S ITERATION METHOD.
  9. C
  10. C        USAGE
  11. C           CALL RTNI (X,F,DERF,FCT,XST,EPS,IEND,IER)
  12. C           PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT.
  13. C
  14. C        DESCRIPTION OF PARAMETERS
  15. C           X      - RESULTANT ROOT OF EQUATION F(X)=0.
  16. C           F      - RESULTANT FUNCTION VALUE AT ROOT X.
  17. C           DERF   - RESULTANT VALUE OF DERIVATIVE AT ROOT X.
  18. C           FCT    - NAME OF THE EXTERNAL SUBROUTINE USED. IT COMPUTES
  19. C                    TO GIVEN ARGUMENT X FUNCTION VALUE F AND DERIVATIVE
  20. C                    DERF. ITS PARAMETER LIST MUST BE X,F,DERF.
  21. C           XST    - INPUT VALUE WHICH SPECIFIES THE INITIAL GUESS OF
  22. C                    THE ROOT X.
  23. C           EPS    - INPUT VALUE WHICH SPECIFIES THE UPPER BOUND OF THE
  24. C                    ERROR OF RESULT X.
  25. C           IEND   - MAXIMUM NUMBER OF ITERATION STEPS SPECIFIED.
  26. C           IER    - RESULTANT ERROR PARAMETER CODED AS FOLLOWS
  27. C                     IER=0 - NO ERROR,
  28. C                     IER=1 - NO CONVERGENCE AFTER IEND ITERATION STEPS,
  29. C                     IER=2 - AT ANY ITERATION STEP DERIVATIVE DERF WAS
  30. C                             EQUAL TO ZERO.
  31. C
  32. C        REMARKS
  33. C           THE PROCEDURE IS BYPASSED AND GIVES THE ERROR MESSAGE IER=2
  34. C           IF AT ANY ITERATION STEP DERIVATIVE OF F(X) IS EQUAL TO 0.
  35. C           POSSIBLY THE PROCEDURE WOULD BE SUCCESSFUL IF IT IS STARTED
  36. C           ONCE MORE WITH ANOTHER INITIAL GUESS XST.
  37. C
  38. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  39. C           THE EXTERNAL SUBROUTINE FCT(X,F,DERF) MUST BE FURNISHED
  40. C           BY THE USER.
  41. C
  42. C        METHOD
  43. C           SOLUTION OF EQUATION F(X)=0 IS DONE BY MEANS OF NEWTON-S
  44. C           ITERATION METHOD, WHICH STARTS AT THE INITIAL GUESS XST OF
  45. C           A ROOT X. CONVERGENCE IS QUADRATIC IF THE DERIVATIVE OF
  46. C           F(X) AT ROOT X IS NOT EQUAL TO ZERO. ONE ITERATION STEP
  47. C           REQUIRES ONE EVALUATION OF F(X) AND ONE EVALUATION OF THE
  48. C           DERIVATIVE OF F(X). FOR TEST ON SATISFACTORY ACCURACY SEE
  49. C           FORMULAE (2) OF MATHEMATICAL DESCRIPTION.
  50. C           FOR REFERENCE, SEE R. ZURMUEHL, PRAKTISCHE MATHEMATIK FUER
  51. C           INGENIEURE UND PHYSIKER, SPRINGER, BERLIN/GOETTINGEN/
  52. C           HEIDELBERG, 1963, PP.12-17.
  53. C
  54. C     ..................................................................
  55. C
  56.       SUBROUTINE RTNI(X,F,DERF,FCT,XST,EPS,IEND,IER)
  57. C
  58. C
  59. C     PREPARE ITERATION
  60.       IER=0
  61.       X=XST
  62.       TOL=X
  63.       CALL FCT(TOL,F,DERF)
  64.       TOLF=100.*EPS
  65. C
  66. C
  67. C     START ITERATION LOOP
  68.       DO 6 I=1,IEND
  69.       IF(F)1,7,1
  70. C
  71. C     EQUATION IS NOT SATISFIED BY X
  72.     1 IF(DERF)2,8,2
  73. C
  74. C     ITERATION IS POSSIBLE
  75.     2 DX=F/DERF
  76.       X=X-DX
  77.       TOL=X
  78.       CALL FCT(TOL,F,DERF)
  79. C
  80. C     TEST ON SATISFACTORY ACCURACY
  81.       TOL=EPS
  82.       A=ABS(X)
  83.       IF(A-1.)4,4,3
  84.     3 TOL=TOL*A
  85.     4 IF(ABS(DX)-TOL)5,5,6
  86.     5 IF(ABS(F)-TOLF)7,7,6
  87.     6 CONTINUE
  88. C     END OF ITERATION LOOP
  89. C
  90. C
  91. C     NO CONVERGENCE AFTER IEND ITERATION STEPS. ERROR RETURN.
  92.       IER=1
  93.     7 RETURN
  94. C
  95. C     ERROR RETURN IN CASE OF ZERO DIVISOR
  96.     8 IER=2
  97.       RETURN
  98.       END
  99.