Documente Academic
Documente Profesional
Documente Cultură
Program Contoh_SPANL_2Pers
PARAMETER (NEQ = 3)
INTEGER ITER,ITMAX,I,N
REAL*8 Aij(NEQ,NEQ)
REAL*8 FX(NEQ),DX(NEQ),X(NEQ)
LOGICAL Solved,Converged,ItMaxReached
REAL*8 FTOL,TOL,NV,NormVect
17 FORMAT(A,$)
18 FORMAT(A,I1,A,$)
10 CONTINUE
ITER = ITER + 1
CALL JACSPANL(X,Aij,N)
CALL EGAUSS(Aij,DX,FX,N)
Do I= 1,N
X(I) = X(I) - DX(I)
EndDo
CALL FSPANL(X,FX,N)
Solved = (NormVect(FX,N) .LT. FTOL)
If (.NOT. Solved) CALL FSPANL(X,FX,N)
STOP
END
Do j=1,noe-1
C {Triangularisasi}
pivot = a(j,j)
Do i=j+1,noe
mult = a(i,j)/pivot
Do k = j+1,noe
a(i,k) = a(i,k)- mult*a(j,k)
b(i) = b(i) - mult*b(j)
EndDo
EndDo
EndDo
C {Triangularisasi}
C *---Substitusi Balik---*
x(noe) = b(noe)/a(noe,noe)
Do i = noe-1,1,-1
top = b(i)
Do k = i+1,noe
top = top - a(i,k)*x(k)
x(i) = top/a(i,i)
EndDo
EndDo
RETURN
END
INTEGER noe,i
REAL*8 x(noe),f(noe), fx(noe)
RETURN
END
Subroutine JACSPANL(x,A,noe)
C Matriks JACOBI dari Fungsi SPANL
INTEGER noe
REAL*8 x(*),A(noe,*)
A(1,1) = 2*x(1)
A(1,2) = -1.0
A(2,1) = -1.0
A(2,2) = 2*x(2)
RETURN
END
Function NormVect(x,n)
Page 2
E:\My NanoPC\Documents\Bahan Kuliah 2016-2017\Genap\Pemodelan TK-S1\FORTRAN Programming\SPANL-2Pe
INTEGER n,i
REAL*8 NormVect,x(*)
REAL*8 sum
sum = 0.0
Do i = 1,n
sum = sum + x(i)**2
EndDo
NormVect = sum
RETURN
END
Page 3