Buenas, estoy haciendo un código en Fortran para ajuste lineal por método de mínimos cuadrados. La cuestión es que tengo un problema en el desarrollo de las sumatorias:
PROGRAM AJUSTE LINEAL
DIMENSION DATOS(1000)
WRITE(*,*)'Ingresar n£mero de pares (x,y) de valores'
READ(*,*)i
N=i*2
OPEN(UNIT=1,FILE='sdf.dat')
DO A=1,(i)
WRITE(*,*)'x',A
READ(*,*)n
WRITE(1,*)n
WRITE(*,*)'y',A
READ(*,*)m
WRITE(1,*)m
ENDDO
CLOSE(UNIT=1)
C--SUMATORIA x^2
OPEN(UNIT=1,FILE='sdf.dat')
DO K=1,N
READ(1,*)DATOS(K)
ENDDO
B=0
M=N+2
DO K=1,M,2
B=B+(DATOS(K)**2)
ENDDO
CLOSE(UNIT=1)
WRITE(*,*)'Sumatoria x^2:',B
C--SUMATORIA x
OPEN(UNIT=1,FILE='sdf.dat')
DO K=1,N
READ(1,*)DATOS(K)
ENDDO
C=0
M=N+2
DO K=1,M,2
C=C+(DATOS(K))
ENDDO
CLOSE(UNIT=1)
WRITE(*,*)'Sumatoria x:',C
C--SUMATORIA y
OPEN(UNIT=1,FILE='sdf.dat')
DO K=1,N
READ(1,*)DATOS(K)
ENDDO
D=0
M=N+2
DO K=2,M,2
D=D+(DATOS(K))
ENDDO
CLOSE(UNIT=1)
WRITE(*,*)'Sumatoria y:',D
C--SUMATORIA xy
OPEN(UNIT=1,FILE='sdf.dat')
DO K=1,N
READ(1,*)DATOS(K)
ENDDO
DO K=1,N,2
E=E+(DATOS(K)*DATOS(K+1))
ENDDO
CLOSE(UNIT=1)
WRITE(*,*)'Sumatoria xy:',E
END
Si lo prueban van a ver que las sumatorias de y y de xy no las hace con todos los datos, excluye a los últimos. ¿Por qué?
Salud(2)!