Você está na página 1de 2

program gauss

implicit none
REAL,DIMENSION(:,:),ALLOCATABLE::M
REAL,DIMENSION(:),ALLOCATABLE::D,X
INTEGER::i,k,j,L,g,n
PRINT*,'Este programa resuelve ecuaciones simltaneas'
PRINT*,'por el metodo de Gauss'
PRINT*,'M representa lamatriz del sistema'
PRINT*,'D representa a lamatriz de terminos independientes'
!
!
PRINT*,'DE CUANTAS ECUACIONES CONSTA TU SISTEMA'
READ*,N
!
!
ALLOCATE (M(N,N),D(N),X(N))
write (*,*)' dame los coeficientes de ',N,'x',N,''
DO i=1,N,1
DO k=1,N,1
write (*,*)'coeficientes del RENGLON',i,':'
READ(*,*)M(i,k)
END DO
write (*,*)' dame los VALORES INDEPENDIENTES'
READ (*,*)D(i)
CALL ELIMINACION (M,D,X,N)
WRITE (*,*)'EL VECTOR SOLUCION ES'
DO i=1,N,1
END DO
WRITE (*,*)X(i)
DEALLOCATE (M,D,X)
STOP
END PROGRAM gauss
SUBROUTINE ELIMINACION(M,D,X,N)
IMPLICIT NONE
INTEGER::N,i,j,k
REAL(KIND=8)::PIVOTE,BASE,SUMA
REAL,DIMENSION(N)::D,X
REAL,DIMENSION(N,N)::M
!
!===============================================
!ESTA PARTE DEL PROGRAMA USA UN METODO CONVERSION DE UNA MATRIZ A DE COEFICIENT
ES
!A UNA TRIANGULAR SUPERIOR
DO k=1,N,1
PIVOTE=M(N,N)
DO i=K+1,N,1
BASE=M(i,K)
DO j=1,N,1
M(i,j)=(M(i,j)-(BASE/PIVOTE)*(A(k,j)))
END DO
D(i)=D(i)-(BASE/PIVOTE)*D(k)
END DO
END DO
!================================================
!
!METODO PARA LA SUSTITUCION HACIA ATARS PARA EL CALCULO DEL VECTOR SOLUCION X
DO k=N,i
SUMA=0
DO j=N,k+1,-1
SUMA=SUMA+m(k,j)*X(j)
END DO
X(k)=(D(k)-SUMA/(A(k,k)))
END DO
RETURN
END SUBROUTINE

Você também pode gostar