









Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Programa do Gauss-Seidel em Fortran
Tipologia: Notas de estudo
1 / 15
Esta página não é visível na pré-visualização
Não perca as partes importantes!










Curso: Engenharia de Produção Civil Disciplina Métodos Numéricos
Prof. Violeta Maria Estephan
Curitiba 2009
open (2, file="GJS52EQUIPE7SOLUC.TXT")
!-----------------------------------------------------------------------------------------------
!# Entrada visual do program por meio do emprego da subrotina INICIO
!-----------------------------------------------------------------------------------------------
call INICIO (ver)
open(1, file="GJS52EQUIPE7DADOS.TXT")
read (1,*) nlin,ncol
allocate (mat(nlin,ncol), soluc(nlin), copia(nlin), posicao_i(1), posicao_j(1), vetor_erro(nlin), vetor_soluc(nlin))
do i=1, nlin
read (1,*) mat(i,:)
end do
close(1)
!_____________________________________________________________soluc=
texto="Solução inicial"
call impressao (texto, soluc,nlin,ncol-1)
dk=
n_it=
do while (dk .ge. 0.0001)
copia=soluc
do i = 1, nlin soma= do j = 1, ncol- if (j==i) cycle soma=soma+mat(i,j)*soluc(j) end do soluc(i)=(-soma+mat(i,ncol))/mat(i,i)
end do texto="Solução parcial" call impressao (texto, soluc,nlin,ncol-1)
vetor_erro=abs(soluc-copia)
Vetor_soluc=abs(soluc)
posicao_i=maxloc(Vetor_erro)
posicao_j=maxloc(vetor_soluc)
posicaoi=posicao_i(1)
posicaoj=posicao_j(1)
dk=vetor_erro(posicaoi)/vetor_soluc(posicaoj)
n_it=n_it+
end do
texto="Solução Final"
call impressao (texto, soluc,nlin,ncol-1)
write (2,*) ""
write (2,1) dk
1 format (" ERRO:", F10.7)
write (2,*) "Número de iterações:", n_it
close (2)
ver=system("GJS52EQUIPE7SOLUC.TXT")
!-----------------------------------------------------------------------------------------------
contains !##descrição das subsrotinas
!-----------------------------------------------------------------------------------------------
!## subrotina para fornecimento correto para entrada de dados ao usuário
subroutine INICIO (ver)
implicit none
do j=1,ncol write (2,1,advance="no") soluc(j) 1 format (4X,F15.5) end do write (2,*) " "
write (2,*) "____________________________________________________"
end subroutine impressao
!-----------------------------------------------------------------------------------------------
end program Gauss_Sudel
Sim, foi preciso “pivotear” as linhas pois da maneira que estavam dispostas, o método divergia da resposta, e condição dominante para que o método convirja, foi citada na introdução deste trabalho, de que é condição suficiente de convergência que a matriz seja estritamente diagonal dominante e fica garantida a convergência da sucessão de valores gerados para a solução exata do sistema linear, caso essa condição não seja atendida o método diverge do valor real do sistema.
4.1. APRESENTAÇÃO DA RESOLUÇÃO DOS SISTEMAS UTILIZANDO O PROGRAMA
a)
Solução: Para a resolução do item a, foram realizadas as seguintes trocas:
Solução inicial
0.00000 0.00000 0.00000 0.
Solução parcial
0.02500 0.33167 0.32795 0.
Solução parcial
0.02117 0.26728 0.32224 0.
Solução parcial
0.02182 0.26669 0.32214 0.
Solução parcial
0.02183 0.26669 0.32213 0.
Solução Final
0.02183 0.26669 0.32213 0.
ERRO: 0. Número de iterações: 4
b)
2 -2 11 87 -1 245 0.7 -63 2 3 -8 1358 138 -3 21 0.3 -18 56 11 -25 -51 7 -11 38 1.8 -6 -12 3 -81 157
Solução: Para a resolução do item c, foram realizadas as seguintes trocas:
ERRO: 0. Número de iterações: 6 c)
0,7 -63 2 3 -8 1 18 2 -8 0 31 0 -1 1358 0 48 -8 0 0 11 382 0 0 0 192 0 -89 129 1 -11 0 0 0 132 359 1 2 -11 4 -5 28 193
Solução:
Para a resolução do item c, foram realizadas as seguintes trocas:
coluna 1 com coluna 2 Devido à troca de colunas, neste caso a solução apresentada encontra-se na seguinte ordem: y, x, z, w, t, g. O sistema utilizado foi o seguinte:
-63 0,7 2 3 -8 1 18 -8 2 0 31 0 -1 1358 48 0 -8 0 0 11 382 0 0 0 192 0 -89 129 2 1 -11 4 -5 28 193 -11 1 0 0 0 132 359
Solução inicial
0.00000 0.00000 0.00000 0.00000 0.00000 0.
Solução parcial
-0.01587 678.93652 -47.84524 0.67188 202.97798 -2.
Solução parcial
4.66288 686.02490 -23.10719 -0.45225 137.36368 -2.
Solução parcial
4.20869 701.80023 -25.37010 -0.29641 147.32283 -2.
Solução parcial
4.45643 700.29694 -24.10002 -0.36935 143.38754 -2.
Solução parcial
4.40377 701.23297 -24.37193 -0.35451 144.34314 -2.
Solução parcial
4.42099 701.06598 -24.28438 -0.35983 144.05548 -2.
Solução parcial
4.41651 701.13184 -24.30756 -0.35857 144.13399 -2.
Solução parcial
4.41782 701.11725 -24.30088 -0.35898 144.11169 -2.
Solução Final
4.41782 701.11725 -24.30088 -0.35898 144.11169 -2.
ERRO: 0. Número de iterações: 8 d) Problema proposta
0.7071 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 2000 -0.7071 0 0 1 0.6585 0 0 0 0 0 0 0 0 0 0.7071 0 1 0 0.7526 0 0 0 0 0 0 0 0 - 0 0 0 -1 0 0 1 0.6585 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7526 1 0 0 0 0 - 0 0 0 0 -0.6585 -1 0 0 0 1 0 0 0 0 0 0 0 0 0.7526 0 0 0 1 0 0 0 0 4000 0 0 0 0 0 0 -1 0 0 0 0.7071 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7071 1 0 - 0 0 0 0 0 0 0 0.7526 0 0 0 1 0 2000 0 0 0 0 0 0 0 0 0 0 0.7071 0 1 0
13
e)^
Problema Proposto
-^
Para a resolução do item d, foram realizadas as seguintes trocas diversas trocas para atender a máxima do método de Gass-seidelQue na diagonal principal não haja termo nulo.
14
O sistema utilizado foi o seguinte:
-^
-0.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-^
-0.
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-^
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-^
0
-0.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-^
-0.
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-^
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-^
0
-0.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-^
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5000
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-0.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-0.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-^
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-0.
0
0
1
0
0
8000
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-0.
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-0.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-0.
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-0.
0
0