سلام به همگی من این کد رو تو فرترن نوشتم تا یک دستگاه معادلات خطی رو با استفاده از روش تکرار ژاکوبی حل کنه، اما نمیدونم کجای کد اشکال داره!
ممنون میشم راهنمایی کنید:
PROGRAM JACOBI
IMPLICIT NONE
REAL, DIMENSION, , ALLOCATABLE::A
REAL, DIMENSION), ALLOCATABLE::B,Xnew,Xold
REAL::SUM1=0,SUM3=0,ERRORMAX,ERROR
INTEGER:: N,i,j
"(OPEN(13,file="output for Xnew(i).dat
PRINT*,"Please Enter Number of EQUATIONS:"
READ*,N
ALLOCATE (A(N,N),B(N),Xnew(N),Xold(N))
Do i=1,N
Do j=1,N
PRINT '(1X,"Please Enter A(", 2I2,")")',i,j
READ*, A(i,j)
END DO
PRINT '(1X,"Please Enter B(", I2,")")',i
READ*, B(i)
END DO
PRINT*,"PLEASE ENTER AMOUNT OF ERROR MAX:"
READ*,ERRORMAX
DO i=1,N
Xold(i)=0
END DO
ERROR=0
DO WHILE((ERROR/N)<=ERRORMAX)
DO i=1,N
IF(i==1)THEN
SUM1=0
END IF
IF(i==N)THEN
SUM3=0
END IF
IF(i/=1)THEN
SUM1=0
DO j=1,i-1
SUM1=SUM1+A(i,j)*Xold(j)
END DO
END IF
IF(i/=N)THEN
SUM3=0
DO j=i+1,N
SUM3=SUM3+A(i,j)*Xold(j)
END DO
END IF
Xnew(i)=(-SUM1-SUM3+B(i))/A(i,i)
ERROR=ERROR+(Xnew(i)-Xold(i))
END DO
Xold(i)=Xnew(i)
END DO
DO i=1,N
PRINT*,"i=",i,"Xnew(i)=",Xnew(i)
WRITE(13,*)Xnew(i)
END DO
PAUSE
END PROGRAM
ممنون میشم راهنمایی کنید:
PROGRAM JACOBI
IMPLICIT NONE
REAL, DIMENSION, , ALLOCATABLE::A
REAL, DIMENSION), ALLOCATABLE::B,Xnew,Xold
REAL::SUM1=0,SUM3=0,ERRORMAX,ERROR
INTEGER:: N,i,j
"(OPEN(13,file="output for Xnew(i).dat
PRINT*,"Please Enter Number of EQUATIONS:"
READ*,N
ALLOCATE (A(N,N),B(N),Xnew(N),Xold(N))
Do i=1,N
Do j=1,N
PRINT '(1X,"Please Enter A(", 2I2,")")',i,j
READ*, A(i,j)
END DO
PRINT '(1X,"Please Enter B(", I2,")")',i
READ*, B(i)
END DO
PRINT*,"PLEASE ENTER AMOUNT OF ERROR MAX:"
READ*,ERRORMAX
DO i=1,N
Xold(i)=0
END DO
ERROR=0
DO WHILE((ERROR/N)<=ERRORMAX)
DO i=1,N
IF(i==1)THEN
SUM1=0
END IF
IF(i==N)THEN
SUM3=0
END IF
IF(i/=1)THEN
SUM1=0
DO j=1,i-1
SUM1=SUM1+A(i,j)*Xold(j)
END DO
END IF
IF(i/=N)THEN
SUM3=0
DO j=i+1,N
SUM3=SUM3+A(i,j)*Xold(j)
END DO
END IF
Xnew(i)=(-SUM1-SUM3+B(i))/A(i,i)
ERROR=ERROR+(Xnew(i)-Xold(i))
END DO
Xold(i)=Xnew(i)
END DO
DO i=1,N
PRINT*,"i=",i,"Xnew(i)=",Xnew(i)
WRITE(13,*)Xnew(i)
END DO
PAUSE
END PROGRAM