JACOBI PROGRAM IN FORTRAN programjacobi implicit none integer:: i,j,k,n, aux,no_max_iter,ite aux,no_max_iter,iterr real,allocatable :: a(:,:),x(:),xold(:), ea(:) real :: es,suma character salida*25 write(*,*)"metodo iterativo de jacobi" write(*,*)"# variables" read(*,*)n write (*,*)'digitar nombre del archivo de salida' read (*,*) salida open(unit=20,file=salida,status='replace') write(20,*) " iteracion x valor %ea" allocate (a(n+1,n),x(n),ea(n),xol (a(n+1,n),x(n),ea(n),xold(n)) d(n)) write(*,*)"# maximo iteraciones" read(*,*)no_max_iter write(*,*)"tolerancia: " read(*,*)es do i=1,n,1 write(*,*)'xo(i):' read(*,*)xold(i) end do
x(1:n)=0 ea(:)=1 iter=0 do i=1,n,1 do j=1,n+1,1 write(*,*)'a(i,j):' read(*,*)a(j,i) end do end do do while (iter<=no_max_iter) aux=0 do i=1,n,1 suma=0 do k=1,n,1
if (i/=k) then suma=suma+xold(k)*a(k,i) end if end do x(i)=(a(n+1,i)-suma)/a(i,i) if (xold(i)/=0)then ea(i)=abs(((x(i)-xold(i))/x(i))) else if (x(i)==0)then ea(i)=0 end if end if write(*,*)ea(i) end do do i=1,n,1 write(20,*) j,i,x(i),ea(i) if (ea(i)