Vous êtes sur la page 1sur 11

TRABAJO COMPUTACIONAL

1. Utilizando programación modular, determinar el campo magnético que genera una espira de alambre en
cualquier punto del espacio. Utilizar programación modular para determinar la función factorial y las
funciones especiales.

SOLUCIÓN:

Utilizando programación modular:

MODULE CONSTANTE

IMPLICIT NONE

!SAVE

REAL :: A=0.1

REAL :: I=2.0

REAL :: Pi = 3.1415927

!REAL, PARAMETER :: MU = 4.0*PI*(10.0**(-7.0))

REAL :: TETA=10.0

REAL :: R=10.0

CONTAINS

REAL FUNCTION B_R(I,TETA,R)

IMPLICIT NONE

REAL :: I,TETA,R,MU,SUM

MU = 4.0*PI*(10.0**(-7.0))

SUM=(1+(15.0*(A**2.0)*(R**2.0)*(SIN(TETA*(PI/180.0))**2.0))/(8.0*((A**(2.0) + R**(2.0))**(3.0/2.0))))

B_R = (((MU*I*(A**(2))*COS(TETA*(PI/180.0))))/(2.0*((A**(2.0) + R**(2.0))**(3.0/2.0))))*SUM

END FUNCTION B_R

REAL FUNCTION B_TETA(I,TETA,R)


IMPLICIT NONE

REAL :: I,TETA,R,MU,SUM,MODU

MODU=(A**2.0+R**2.0)

MU = 4.0*PI*(10.0**(-7.0))

SUM=(2.0*A**2.0-R**2.0+ (15.0*(A**2.0)*(R**2.0)*(SIN(TETA*PI/180.0)**2.0)*(4.0*A**2.0-3.0*R**2.0))/
(8.0*MODU**2.0))

B_TETA = -(((MU*I*(A**(2))*SIN(TETA*(PI/180.0))))/(4.0*((MODU)**(3.0/2.0))))*SUM

END FUNCTION B_TETA

END MODULE CONSTANTE

Ingresamos el Programa
Programa principal

PROGRAM CAMPO_B

USE CONSTANTE

IMPLICIT NONE

INTEGER :: T

11 WRITE(*,*)'DESEA LEER DESDE ARCHIVO LOS BALORES DESDA ARCHIVO O INTRODUCIR LOS DATOS'

WRITE(*,*)'PRECION 1 PARA INTRDUCION DATOS POR TECLADO'

WRITE(*,*)'PRECION 2 PARA INTRDUCION DATOS POR ARCHIVO'

READ(*,*)T

IF (T==1) THEN

WRITE(*,*)'TRABAJO DE COMPUTACIONALES'

WRITE(*,*)'INGRESE LA INTESIDAD DE CORRIENTE I'

READ(*,*)I

WRITE(*,*)'INGRESE EL ANGULO TETA'

READ(*,*)TETA

WRITE(*,*)'INGRESE EL RADIO R'

READ(*,*)R

WRITE(*,*)'LA COMPONENTE RADIAL DE LA FUNCION VECTORIA ES '

WRITE(*,*)B_R(I,TETA,R)

WRITE(*,*)'LA COMPONENTE ANGULAR DE LA FUNCION VECTORIA ES '

WRITE(*,*)B_TETA(I,TETA,R)

ELSE IF (T==2) THEN

OPEN (unit=4, File ="DATOS.TXT", status ="unknown")

READ(4,*)I,TETA,R

WRITE(*,*)I,TETA,R

WRITE(*,*)'LA COMPONENTE RADIAL DE LA FUNCION VECTORIA ES '

WRITE(*,*)B_R(I,TETA,R)

WRITE(*,*)'LA COMPONENTE ANGULAR DE LA FUNCION VECTORIA ES '

WRITE(*,*)B_TETA(I,TETA,R)
ELSE

GOTO 11

END IF

END PROGRAM CAMPO_B

Ingresamos el Programa
TENIENDO LOS DOS PROGRAMAS JUNTOS PROCEDEMOS A COPILAR.

Copilamos:

2. Elaborar un programa, con programación modular en fortran, para que lea desde un archivo los datos
experimentales y determine su ajuste de curva, función correlación y prueba t-student.
3.
SOLUCIÓN:
Utilizando programación modular:

AJUSTE DE CURVA

MODULE AJUSTE LINEAL MINIMOS CUADRADOS

save

REAL(4) X(100),Y(100),Y2(100)

integer n

WRITE(*,*)'AJUSTE LINEAL MINIMOS CUADRADOS'

WRITE(*,*)''

CONTAINS

WRITE(*,*)' INGRESE NUMERO DE PARES PARA AJUSTE (MAX(100))'

READ(*,*)N

!WRITE(*,*)' INGRESE PARES datos por tabla'

DO I=1,N

WRITE(*,*)'INGRESE PAR NRO.',I,'X E Y'

READ(*,*)X(I),Y(I)

END DO

! OPEN(UNIT=5,FILE='DATOS.TXT',ACTION='READ')

! DO I=1,N

! READ(5,*)X(I),Y(I)

! END DO

SUMA1=0

SUMA2=0

SUMA3=0

SUMA4=0

DO I=1,N

SUMA1=SUMA1+X(I)

SUMA2=SUMA2+Y(I)

SUMA3=SUMA3+X(I)*X(I)

SUMA4=SUMA4+X(I)*Y(I)
END DO

A=(SUMA4-(SUMA1*SUMA2)/N)/(SUMA3-(SUMA1*SUMA1)/N)

B=(SUMA2-A*SUMA1)/(N)

WRITE(*,*)' RESULTADOS'

WRITE(*,15)A

WRITE(*,16)B

WRITE(*,*)' N X Y(AJUSTADO)'

!REEVALUACION DE LA FUNCION

OPEN (1,FILE='REGLIN.TXT')

DO I=1,N

Y2(I)=A*X(I)+B

WRITE(*,10)I,X(I),Y2(I)

WRITE(1,10)I,X(I),Y2(I)

END DO

10 FORMAT(IX,I3,2(F8.4,IX))

15 FORMAT(IX,'PENDIENTE-',F8.4)

16 FORMAT(IX,'INTERSECCION CON EL EJE Y =',F8.4)

END MODULE AJUSTE

AJUSTE DE CURVA_programa
PROGRAM pregunta_2

USE AJUSTE

!IMPLICIT NONE

REAL X(100),Y(100),Y2(100)

INTEGER N

WRITE(*,*)'TRABAJO DE COMPUTACIONALES'

WRITE(*,*)'INGRESO DE DATOS POR ARCHIVOI'

WRITE(*,*)'INGRESE EL NUMERO DE PUNTOS N'

READ(*,*)N

DO I=1,N

WRITE(*,*)'INGRESE PAR NRO.',I,'X E Y'

READ(*,*)X(I),Y(I)

END DO

! OPEN(UNIT=5,FILE='DATOS.TXT',ACTION='READ')

! DO I=1,N

! READ(5,*)X(I),Y(I)

! END DO

CLOSE(5)

WRITE(*,*)' RESULTADOS'

WRITE(*,15)A

WRITE(*,16)B

WRITE(*,*)' N X Y(AJUSTADO)'

!REEVALUACION DE LA FUNCION

OPEN (1,FILE='REGLIN.TXT')

DO I=1,N

Y2(I)=A*X(I)+B

WRITE(*,10)I,X(I),Y2(I)

WRITE(1,10)I,X(I),Y2(I)

END DO

10 FORMAT(IX,I3,2(F8.4,IX))

15 FORMAT(IX,'PENDIENTE-',F8.4)
16 FORMAT(IX,'INTERSECCION CON EL EJE Y =',F8.4)

END program

End

ENCONTRAMOS UN ERROR.

FUNCION CORRELACION
PROGRAM CORRELACION

REAL XSUM, XX

REAL X(100),EX(100)

INTEGER N,J,M

OPEN(3,FILE='DATA2.TXT')

DO I=1,8

READ(3,*)X

END DO

OPEN(5,FILE='CALCULO1.TXT')

N=1000

XMEDIO=0

DO J=1,N
READ(3,*) EX(J)

XMEDIO=XMEDIO+EX(J)

END DO

XSUM=XMEDIO/N

DO M=1,N

IF (M.LE.J)THEN

XX=0

DO J=1,N

X(J)=X(J)-XSUM

X(J+M)=X(J+M)-XSUM

XX=XX+X(J)*X(J+M)

END DO

ENDIF

XX=XX/N

WRITE(5,*)M,XX

END DO

END
NOTA:

Para cada programa, al correrlo y demostrar su funcionamiento al contrastar con resultados probados.

FECHA DE ENTREGA: VIERNES 21 DE JULIO DEL 2017

Correo: rjalva@gmail.com

ASUNTO: CONVALIDACION: APELLIDOS Y NOMBRES

Vous aimerez peut-être aussi