Sie sind auf Seite 1von 2

!

MTODO DE GAUSS-SEIDEL (GSR)


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

Das könnte Ihnen auch gefallen