Upload
ariadne-tsambali
View
163
Download
3
Embed Size (px)
Citation preview
SOLUTION OF LINEAR SYSTEM MATRICES WITH GUASS ELIMINATION METHOD:- [K][h]=[b]
PROGRAM MATRICES
!SOLUTION OF A LINEAR SYSTEM WITH GAUSS
IMPLICIT NONE
REAL,ALLOCATABLE:: A(:,:), B(:),H(:)
INTEGER::status, I,J,N=3
ALLOCATE (A(N,N),B(N),H(N), STAT=status)
IF (status /= 0) THEN
STOP 'NOT ENOUGH MEMORY'
ELSE
DO I = 1,N !GIVE THE NUMBERS
PRINT*, 'EQUATION', I
DO J = 1,N
PRINT*, 'GIVE A(',J,',',I,')'
READ*,A(J,I)
ENDDO
PRINT*, 'GIVE B(',I,')'
READ*, B(I)
ENDDO
! GAUSS
CALL GAUSS (A,B,H)
DO I = 1,N
PRINT*,'H(',I,')=', H(I)
ENDDO
END IF
CONTAINS
SUBROUTINE GAUSS(A,B,H)
REAL:: A(:,:),B(:)
REAL:: ATHRISMA,M(SIZE(B))
REAL,INTENT(OUT)::H(:)
INTEGER, SAVE:: I,J,K
DO I = 1, SIZE(B)-1
DO J = I+1, SIZE(B)
M(J) = -A(J,I)/A(I,I)
DO K = 1, SIZE(B)
A(J,K) = A(J,K) + M(J)*A(I,K)
ENDDO
B(J) = B(J)+M(J)*B(I)
ENDDO
ENDDO
DO I = SIZE(B),1,-1
ATHRISMA = 0.0
ATHRISMA = SUM(A(I,I:SIZE(B))*H(I:SIZE(B)))
H(I) = (B(I)-ATHRISMA) /A(I,I)
ENDDO
END SUBROUTINE GAUSS
END PROGRAM
RESULTS:-
EQUATION 1
GIVE A( 1, 1)
GIVE A( 2, 1)
GIVE A( 3, 1)
GIVE B( 1)
EQUATION 2
GIVE A( 1, 2)
GIVE A( 2, 2)
GIVE A( 3, 2)
GIVE B( 2)
EQUATION 3
GIVE A( 1, 3)
GIVE A( 2, 3)
GIVE A( 3, 3)
GIVE B( 3)
H( 1)= 2.00000
H( 2)= -1.00000
H( 3)= 1.00000