home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l292 / 1.ddi / GJDEMO.FOR < prev    next >
Encoding:
Text File  |  1989-11-21  |  1.7 KB  |  83 lines

  1.       !!!   PROGRAM Gauss
  2.       INCLUDE 'stdhdr.for'
  3.  
  4.  
  5.       REAL x(0:maxc, 0:maxc),inv(0:maxc, 0:maxc)
  6.       REAL y(0:maxc),solution(0:maxc)
  7.       REAL matdet
  8.       INTEGER numvar, i
  9.  
  10.  
  11.  
  12.       CALL Getdata(x,y,numvar)
  13.       PRINT *
  14.  
  15.       CALL GaussJordan(x, y, numvar, solution, inv, matdet)
  16.  
  17.       PRINT *,'The solution is: '
  18.       PRINT *
  19.       DO i = 0, numvar - 1
  20.     PRINT 70, i, solution(i)
  21. 70      FORMAT (' x', I2,' = ', F7.2 )
  22.       END DO
  23.       PRINT *
  24.       PRINT 80, matdet
  25. 80    FORMAT (' Matrix determinant = ',F7.2)
  26.  
  27.  
  28.       END
  29.  
  30.  
  31.  
  32.       SUBROUTINE Getdata(x,y,numvar)
  33.       INCLUDE 'stdhdr.for'
  34.  
  35.       REAL x(0:maxc, 0:maxc), y(0:maxc)
  36.       INTEGER numvar
  37.  
  38.       INTEGER i, j, answer
  39.       CHARACTER * 2 sign
  40.  
  41.       answer = 0
  42.       DO WHILE (answer .eq. 0)
  43.         PRINT *, 'Enter number of equations'
  44.         PRINT 10
  45. 10      FORMAT (' Must equal number of variables: '\)
  46.         READ *, numvar
  47.         DO i = 0, numvar - 1
  48.       PRINT 15, I
  49. 15        FORMAT (' Equation # ',I2)
  50.       DO j = 0, numvar - 1
  51.         PRINT 20 , j
  52. 20          FORMAT (3X, ' Coefficient # ',I2,' = ' \)
  53.         READ *,x(i, j)
  54.       END DO
  55.  
  56.       PRINT 30
  57. 30        FORMAT ( 5X,' Constant = '\)
  58.       READ *, y(i)
  59.       PRINT *
  60.     END DO
  61.     PRINT *, ' The following system of equations was entered:'
  62.     PRINT *
  63.     DO i = 0 ,numvar - 1
  64.       DO j = 0 , numvar - 1
  65.         IF (x(i, j) .LT. 0 ) THEN
  66.           sign = '-'
  67.         ELSE
  68.           sign = '+'
  69.         END IF
  70.         PRINT 40, sign, ABS(x(i,j)), j
  71. 40          FORMAT (2x,A,F6.2,'x',I2\)
  72.       END DO
  73.       PRINT 50,  y(i)
  74. 50        FORMAT (' = ',F6.2)
  75.     END DO
  76.      PRINT 60
  77. 60      FORMAT (' Is this right 1-yes  0-no ? ' \ )
  78.     READ  *, Answer
  79.       END DO
  80.  
  81.       END !Getdata
  82.  
  83.