Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CCD
CCD
program relajacion_jacobi
real::A(100,100),B(100),X(100,100),s,n,es,ea,k
integer::i,j
print*,'metodo de relajacion de jacobi'
print*,'insertar valor de orden de matriz '
read*,n
print*,'insertar tolerancia'
read*,es
!elementos de B...
!operaciones
10 do i=1,n
s=0
do j=1,n
if(j.ne.i)then
s=s+(A(i,j))*(X(k,j))
end if
X(k+1,i)=(B(i)-s)/A(i,i)
end do
end do
do i=1,n
ea=abs((x(k+1,i))-X(k,i))
if(ea.gt.es)then
k=k+1
goto 10
else
end if
end do
! salida de dator
gauss
program relajacion_Gauss_Seidel
real::A(100,100),B(100),X(100,100),s1,s2,n,es,ea,k
integer::i,j
print*,'metodo de relajacion de jacobi'
print*,'insertar valor de orden de matriz '
read*,n
print*,'insertar tolerancia'
read*,es
!elementos de B...
print*,'insertar valores de B'
do i=1,n
read*,B(i)
end do
!operaciones
10 do i=1,n
s1=0
s2=0
do j=1,n
if(j.gt.i)then
s1=s1+ (A(i,j))*(X(k,j))
end if
if(j.lt.i)then
s2=s2 +(A(i,j))*(X(k+1,j))
end if
X(k+1,i)=(B(i)-s1-s2)/A(i,i)
end do
end do
do i=1,n
ea=abs((x(k+1,i))-X(k,i))
if(ea.gt.es)then
k=k+1
goto 10
else
end if
end do
! salida de dator
sobre relajacion
program sobre_relajacion_sucesiva
real::A(100,100),B(100),X(100,100),s,s1,s2,n,es,ea,k ,w
integer::i,j
print*,'metodo de sobre relajacion sucesiva'
print*,'insertar valor de orden de matriz '
read*,n
print*,'insertar tolerancia y el parametro de relajacion'
read*,es,w
!elementos de B...
!operaciones
10 do i=1,n
s1=0
s2=0
s=0
do j=1,n
s=s+(1-w)*(A(i,j))*(X(k,j))
if(j.gt.i)then
s1=s1+ (A(i,j))*(X(k,j))
end if
if(j.lt.i)then
s2=s2 +(A(i,j))*(X(k+1,j))
end if
X(k+1,i)=(w*B(i)-s1-s2+s)/A(i,i)
end do
end do
do i=1,n
ea=abs((x(k+1,i))-X(k,i))
if(ea.gt.es)then
k=k+1
goto 10
else
end if
end do
! salida de dator