Anda di halaman 1dari 2

PROGRAM PROGRAM JACOBI

METODOJACOB IMPLICIT NONE


IMPLICIT NONE INTEGER I,J,N, NITER, L
INTEGER i, j, n PARAMETER (N=3, NITER=100)
PARAMETER (n=3) REAL X(N), B(N), A(N,N),SUMA(N),
REAL x(n), b(n), a(n,n), EC(I)
sum1(n) OPEN(1,FILE="DATOS.DAT")
!ciclo de lectura de b(n) DO I=1,N
DO i=1,n READ(1,*) X(I),B(I)
READ (*,*) b(i), x(i) ENDDO
!si se quiere saber si se DO I=1,N
lee bien escribir DO J=1,N
print (*,*) b(i) READ(1,*) A(I,J)
ENDDO ENDDO
!ciclo de lectura de a(n,n) ENDDO
DO i=i,n !INICIALIZAR LA SUMA SUMA=0
!completa primero el do DO L=1,NITER
interno (j) y despues el DO I=1,N
externo (i) SUMA(I)=0
DO j=1,n ENDDO
READ (*,*) a(i,j) DO I=1,N
ENDDO DO J=1,N
ENDDO IF(J.NE.I) THEN
!para la sumatoria SUMA(I)=SUMA(I)+A(I,J)*X(J)
DO i=i,n ELSE
sum1(i)=0 ENDIF
ENDDO ENDDO
DO i=i,n ENDDO
DO j=1,n DO I=1,N
IF(j.ne.i) THEN X(I)=1.0/A(I,I)*(B(I)-SUMA(I))
sum1(i)=sum1(i)+a(i,j)*x(j) WRITE(*,*) X(I)
ELSE ENDDO
ENDIF DO I=0
ENDDO EC(I)=0.0
ENDDO ENDDO
DO i=1,n DO I=1,N
x(i)=1/a(i,i)*(b(i)-sum1(i)) DO J=1,N
ENDDO EC(I)=EC(1)+A(I,J)*X(J)
! para imprimir los valores ENDDO
DO i=i,n EC(I)=B(I)-EC(I)
WRITE (*,*) x(i) ENDDO
ENDDO IF(ABS(EC(1)).LE.0.01).AND.(ABS(EC(2))
STOP .LE.0.01).AND.(ABS(EC(3)).LE.0.01)
END THEN
WRITE(*,*) X(I), L ELSE
ENDIF
STOP
END
PROGRAM Redich_Kwong PROGRAM Redich_Kwong
IMPLICIT NONE IMPLICIT NONE
PROGRAM SIMPSON INTEGER I,M INTEGER I,M
IMPLICIT NONE REAL Vi,Tc,Pc,R,a,b,T,P,F,Fp,V REAL Vi,Tc,Pc,R,a,b,T,P,F,Fp,V
INTEGER J,N OPEN(6,FILE="Datos.DAT") OPEN(6,FILE="Datos.DAT")
PARAMETER (n=10000) OPEN(7,FILE="Resultados.DAT") OPEN(7,FILE="Resultados.DAT")
REAL a,b,h,Fa,Fb PROGRAM Trapecio C WRITE(6,*) "Dame los valores de C WRITE(6,*) "Dame los valores de
REAL F,SUMA1,SUMA2,I IMPLICIT NONE Tc,Pc,R,T,P,M" Tc,Pc,R,T,P,M"
READ(*,*)A,B INTEGER J,N READ(6,*) Tc,Pc,R,T,P,M READ(6,*) Tc,Pc,R,T,P,M
h=(b-a)/n PARAMETER (n=10000) a=0.4278*R**2*Tc**2.5/Pc a=0.4278*R**2*Tc**2.5/Pc
Fa=F(a) REAL b=0.0867*R*Tc/Pc b=0.0867*R*Tc/Pc
Fb=F(b) a,b,h,Fa,Fb,F,SUMA,I Vi=R*T/P Vi=R*T/P
SUMA1=0 READ(*,*)A,B DO I=1,M DO I=1,M
DO J=1,N-1,2 h=(b-a)/n F=(P+a/(T**0.5*Vi*(Vi+b)))*(Vi-b)- F=(P+a/(T**0.5*Vi*(Vi+b)))*(Vi-b)-
SUMA1=SUMA1+F(a+J*h) Fa=F(a) R*T R*T
ENDDO Fb=F(b) Fp=(P+a/(T**0.5*Vi*(Vi+b)))+(Vi- Fp=(P+a/(T**0.5*Vi*(Vi+b)))+(Vi-
SUMA2=0 SUMA=0 b)*(- b)*(-
DO J=2,N-2,2 DO J=1,N-1 a*(2*Vi+B)/(T**0.5*(Vi*(Vi+1b))**2)) a*(2*Vi+B)/(T**0.5*(Vi*(Vi+1b))**2))
SUMA2=SUMA2+F(a+J*h) SUMA=SUMA+F(a+J*h) V=Vi-F/Fp !ECUACIÓN DE NEWTON V=Vi-F/Fp !ECUACIÓN DE NEWTON
ENDDO ENDDO RAPHSON RAPHSON
F=(P+a/(T**0.5*V*(V+b)))*(V-b)-R*T F=(P+a/(T**0.5*V*(V+b)))*(V-b)-R*T
I=h/3*(Fa+4*SUMA1 I=h/2*(Fa+2*SUMA+fb) IF(ABS(F).LE.0.001) THEN IF(ABS(F).LE.0.001) THEN
+2*SUMA2+Fb) WRITE(*,*) I WRITE(7,*) V,F WRITE(7,*) V,F
WRITE(*,*)I STOP GOTO 30 GOTO 30
STOP END ELSE ELSE
END Vi=V Vi=V
FUNCTION F(x) FUNCTION F(x) ENDIF ENDIF
IMPLICIT NONE IMPLICIT NONE IF (I.EQ.M) WRITE(*,*) "NO IF (I.EQ.M) WRITE(*,*) "NO
REAL X,F REAL X,F CONVERGE" CONVERGE"
F=X**2+3 F=X**2+3 ENDDO ENDDO
RETURN RETURN 30 STOP 30 STOP
END END END END
PROGRAM NRCF PROGRAM SIMPSON5288
PROGRAM PUNTO FIJO
IMPLICIT NONE IMPLICIT NONE
PROGRAM EULER REAL X,Fx,Fpx IMPLICIT NONE INTEGER J,M,N
REAL X,F,Xi, FP
IMPLICIT NONE READ(*,*) X PARAMETER (M=6,N=1)
INTEGER I,M
INTEGER 1,N X=X-Fx(x)/Fpx(x) REAL F,a,b,h,Alpha,W(M),I
PARAMETER (N=1000) WRITE(*,*) READ(*,*) M, Xi READ(*,*) a,b,Alpha
REAL XF,X0,H,F,Y0 X,Fx(x),Fpx(x) DO I=1,M DO J=1,M
F=-4*Xi**2+2*Xi+1
READ(*,*) X0,Y0,XF STOP READ(*,*) W(J)
FP=-8*X+2
H=(XF-X0)/N END ENDDO
X=Xi-F/FP
DO I=1,N FUNCTION Fx(x) h=(b-a)/N
Y0=Y0+H*F(X0,Y0) IMPLICIT NONE F=-4*X**2+2*X+1 I=5*H/288*(W(1)*F(a)+W(6)*F(b)
X0=X0+H REAL Fx,X WRITE(*,*) I,X,F +W(2)*F(a+H)+W(3)*F(a+2*H)
IF (ABS(F).LE.0.01) THEN GOTO 30
WRITE(*,*) X0,Y0 Fx=x**2+2.0 +W(4)*F(a+3*H)+W(5)*F(a+4*h))
ELSE Xi=X
ENDDO RETURN WRITE(*,*)
STOP END ENDIF STOP
END FUNCTION Fpx(R) IF(I.EQ.M) PRINT*,"NO CONVERGE END
DESPUES DE",I,"ITERACIONES"
FUNCTION F(X,Y) IMPLICIT NONE
ENDDO
REAL X,Y,F REAL Fpx,R
F=40-0.2*Y Fpx=2*R 30 STOP
RETURN RETURN END
END END

Anda mungkin juga menyukai