Necesito porfavor saber como programar una interpolacion en Fortran con terminaciòn .f, no se cual version sea...
O algun sitio donde poder consultarlo.....
Gasuus, Integracion, e interpolacion.....
| |||
Fortran Power Station 4.0 Necesito porfavor saber como programar una interpolacion en Fortran con terminaciòn .f, no se cual version sea... O algun sitio donde poder consultarlo..... Gasuus, Integracion, e interpolacion..... |
| |||
problemas con este programa ![]() ![]() ![]() ![]() ahi va el codigo: PROGRAM GAUSS WRITE(*,*)"RESOLUCION DE MATRICES A TRAVS DE GAUSS Y PIVOTEO" IMPLICIT NONE INTEGER:: I,J,K,N REAL:: FACTOR REAL,ALLOCATABLE ::MAT(80,80),RESULTADOS(:) WRITE(*,*)"PROGRAMA DE RESOLUCIàN DE ECUACIONES" WRITE(*,*)" A PARTIR DEL MTODO DE GAUSS " WRITE(*,*)"" WRITE(*,*)"" WRITE(*,*)"INTRODUCE EL NUMERO INCOGNITAS EN LAS ECUACIONES:" READ(*,*)N ALLOCATE (MAT(N,N+l),RESULTADOS(N)) DO I=1,N,l DO J=1,N+1,1 WRITE(*,*)"INTRODUCE EL ELEMENTO (",I,",",J,"):" READ(*,*)MAT(I, J) END DO END DO DO K=1,N-1,1 DO I=K,N-1,1 IF (K==I) THEN CALL PIVOTE(MAT,N,K) ENDIF FACTOR=MAT(I+1,K)/MAT(K,K DO J=1,(N+1),1 MAT(I+1,J)=MAT(I+1,J)-(FACTOR*MAT(K,J)) ENDDO ENDDO ENDDO WRITE(*,*)"LA MATRIZ RESULTANTE DESPUS DE LAS OPERACIONES ES:" WRITE(*,*)"" DO I=1,N,l DO J=1,N+1,1 WRITE(*,*)"(",I,",",J,")",MAT(I,J) ENDDO ENDDO CALL SOLUCION(MAT.N,RESULTADOS) write(*,*)"los resultados para los valores de x son estos: " DO I=1,N=l WRITE(*,*)" X(",I,"):",RESULTADOS(I) ENDDO ENDPROGRAM SUBROUTINE PIVOTE(MAT,N,i) WRITE(*,*)"SUBRUTINA QUE NOS AYUDA A DETERMINAR EL ELEMENTO MAYOR" WRITE(*,*)"A SER CONSIDERADO EL PIVOTE DE LOS CµLCULOS Y" WRITE(*,*)"LO REEMPLAZA EN EL ORDEN DE LOS MISMOS" IMPLICIT NONE INTEGER::I,N,K,INDICE,BAND REAL::TEMP REAL,DIMENSION (N,N+l)::MAT BAND=0 INDICE=I DO K=I+1,N,1 IF (ABS(MAT(INDICE,I))<ABS(MAT(K,I))) THEN INDICE=K BAND=1 ENDIF ENDDO IF (BAND/=0) THEN DO K=I,N+1,1 TEMP=MAT(INDICE, K) MAT(INDICE,K)=MAT(I,K) MAT(I,K)=TEMP ENDDO ENDIF RETURN ENDSUBROUTINE SUBROUTINE SOLUCION(MAT,N,RESULTADOS) IMPLICIT NONE INTEGER:: I,J,N REAL:: SUMA REAL,DIMENSION(N):*RESULTADOS REAL,DIMENSION(N,N+l)::MAT SUMA=0 RESULTADOS(N)=MAT(N,N+1)/MAT(N,N) DO I=N-1,1,-1 DO J=I+1,N,1 SUMA=SUMA+(MAT(I,J)*RESULTADOS(J)) ENDDO RESULTADOS(I)=(MAT(I,N+l)-SUMA)/MAT(I,I) ENDDO RETURN ENDSUBROUTINE si me puedes ayudar te lo agradeceria ...... ![]() |