home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / DOOG / PCSSP2.ZIP / STATTMSR.ZIP / EXSMO.FOR < prev    next >
Text File  |  1985-11-29  |  2KB  |  75 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE EXSMO
  5. C
  6. C        PURPOSE
  7. C           TO FIND THE TRIPLE EXPONENTIAL SMOOTHED SERIES S OF THE
  8. C           GIVEN SERIES X.
  9. C
  10. C        USAGE
  11. C           CALL EXSMO (X,NX,AL,A,B,C,S)
  12. C
  13. C        DESCRIPTION OF PARAMETERS
  14. C           X     - INPUT VECTOR OF LENGTH NX CONTAINING TIME SERIES
  15. C                   DATA WHICH IS TO BE EXPONENTIALLY SMOOTHED.
  16. C           NX    - THE NUMBER OF ELEMENTS IN X.
  17. C           AL    - SMOOTHING CONSTANT, ALPHA.  AL MUST BE GREATER THAN
  18. C                   ZERO AND LESS THAN ONE.
  19. C           A,B,C - COEFFICIENTS OF THE PREDICTION EQUATION WHERE S IS
  20. C                   PREDICTED T PERIODS HENCE BY
  21. C                                 A + B*T + C*T*T/2.
  22. C                   AS INPUT-- IF A=B=C=0, PROGRAM WILL PROVIDE INITIAL
  23. C                   VALUES.  IF AT LEAST ONE OF A,B,C IS NOT ZERO,
  24. C                   PROGRAM WILL TAKE GIVEN VALUES AS INITIAL VALUES.
  25. C                   AS OUTPUT-- A,B,C CONTAIN LATEST, UPDATED COEFFI-
  26. C                   CIENTS OF PREDICTION.
  27. C           S     - OUTPUT VECTOR OF LENGTH NX CONTAINING TRIPLE
  28. C                   EXPONENTIALLY SMOOTHED TIME SERIES.
  29. C
  30. C        REMARKS
  31. C           NONE
  32. C
  33. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  34. C           NONE
  35. C
  36. C        METHOD
  37. C           REFER TO R. G. BROWN, 'SMOOTHING, FORECASTING AND PREDICTION
  38. C           OF DISCRETE TIME SERIES', PRENTICE-HALL, N.J., 1963,
  39. C           PP. 140 TO 144.
  40. C
  41. C     ..................................................................
  42. C
  43.       SUBROUTINE EXSMO (X,NX,AL,A,B,C,S)
  44.       DIMENSION X(1),S(1)
  45. C
  46. C     IF A=B=C=0.0, GENERATE INITIAL VALUES OF A, B, AND C
  47. C
  48.       IF(A) 140, 110, 140
  49.   110 IF(B) 140, 120, 140
  50.   120 IF(C) 140, 130, 140
  51.   130 C=X(1)-2.0*X(2)+X(3)
  52.       B=X(2)-X(1)-1.5*C
  53.       A=X(1)-B-0.5*C
  54. C
  55.   140 BE=1.0-AL
  56.       BECUB=BE*BE*BE
  57.       ALCUB=AL*AL*AL
  58. C
  59. C     DO THE FOLLOWING FOR I=1 TO NX
  60. C
  61.       DO 150 I=1,NX
  62. C
  63. C        FIND S(I) FOR ONE PERIOD AHEAD
  64. C
  65.       S(I)=A+B+0.5*C
  66. C
  67. C        UPDATE COEFFICIENTS A, B, AND C
  68. C
  69.       DIF=S(I)-X(I)
  70.       A=X(I)+BECUB*DIF
  71.       B=B+C-1.5*AL*AL*(2.0-AL)*DIF
  72.   150 C=C-ALCUB*DIF
  73.       RETURN
  74.       END
  75.