PROGRAM METHOD_GSR PARAMETER (IDM=100) DIMENSION X(IDM,IDM),A(IDM,IDM),B(IDM) INTEGER:: H,J,I,K,N REAL:: E,SUMA1,SUMA2,TOL PRINT*,'' PRINT*, '=====================================================================' PRINT*,'METHOD ITERATIVO DE GAUSS SEIDEL' PRINT*,'================================================================== ====' PRINT*,'' PRINT*,'INGRERSAR ORDENDEL SISTEMA' READ*,N PRINT*,('',H=1,70) PRINT*,'INGRESAR TOLERANCIA' READ*, TOL PRINT*,('',H=1,70) PRINT*,'INGRESAR ELEMENTOS DE A' DO I=1,N READ (*,*)( A(I,J),J=1,N) ENDDO PRINT*,('',H=1,70) PRINT*,'INGRESAR ELEMENTOS DE B' DO I=1,N READ(*,*) B(I) ENDDO PRINT*,('',I=1,70) PRINT*,'INGRESAR VECTOR APROXIMADO X' K=1 DO I=1,N READ(*,*) X(K,I) ENDDO ! CLCULO NUMERICO 10 DO I=1,N SUMA1=0 DO J=1,N IF (J.GT.I) THEN SUMA1=SUMA1+A(I,J)*X(K,J) END IF END DO SUMA2=0 DO J=1,N IF(J.LT.I)THEN SUMA2=SUMA2+A(I,J)*X(K+1,J) END IF END DO X(K+1,I)=(B(I)-SUMA1-SUMA2)/A(I,I) END DO ! CONVERGENCIA DO I=1,N E=ABS(X(K+1,I)-X(K,I)) IF(E.LE.TOL)THEN ELSE K=K+1 GOTO 10 ENDIF ENDDO PRINT*,('',H=1,70) PRINT*,'' PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS COMPUTACIONALES")'
PRINT*,('*',I=1,79) PRINT*,'' ! PRESENTACIN DE RESULTADOS WRITE(*,*) 'RESULTADO DE TODAS LAS ITERACIONES' PRINT*,'' PRINT 100 100 FORMAT(4X,'ITERATION',5X ,'X',16X,'Y') DO I=1,K+1 WRITE(*,*) I-1,(X(I,J),J=1,N) END DO PRINT*,('',H=1,70) PRINT*,'LA SOLUTION DEL SISTEMA ES:' DO I=1,N PRINT*,X(K+1,I) ENDDO PRINT*,('',H=1,70) PRINT*,'CON UNA APPROACH DE:',E PRINT*,('',H=1,70) PRINT*,'EL NUMBER DE ITERACIONES ES:',K PRINT*,('',H=1,70) END