Escolar Documentos
Profissional Documentos
Cultura Documentos
LINGUAGEM FORTRAN
Curitiba
2009
1
Sumário
1.INTRODUÇÃO ................................................................................................................... 3
2.O MÉTODO GAUSS-SEIDEL ................................................................................................ 3
3.CÓDIGO FONTE................................................................................................................. 3
4.ANÁLISE DOS PROBLEMAS PROPOSTOS ............................................................................ 7
4.1 Apresentação dos resultados ............................................................................................... 16
5.CONCLUSÕES ................................................................................................................. 17
2
1. INTRODUÇÃO
A importância do estudo de resolução de Sistemas-lineares na Engenharia e de uma grandeza
imensurável, pois diversos cálculos e dimensionamentos são feitos através de Sistemas Lineares,
além de que esse método possui uma grande precisão, levando em conta que é utilizado o valor
anterior calculado nas Funções de Iterações.
Neste trabalho foram omitidas as deduções do método tendo em vista que o mesmo já foi
deduzido em sala e será apresentado como programação.
2. O MÉTODO GAUSS-SEIDEL
O método de Gauss-Seidel é um método interativo para resolução de sistemas de equações
lineares. O seu nome é uma homenagem aos matemáticos alemães Carl Friedrich Gauss e Philipp
Ludwig von Seidel. É semelhante ao método de Jacobi (e como tal, obedece ao mesmo critério de
convergência). É 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.
Esse método difere do processo de Jacobi-Richardson por utilizar para o cálculo de uma
componente de x(k+1) o valor mais recente das demais componentes Por esse motivo o método
da Gauss-Seidel é também conhecido por Método dos Deslocamentos Sucessivos.
3. O CÓDIGO FONTE
program Gauss_Sudel
!-----------------------------------------------------------------------------------------------
!#declaração das variáveis: matriz com valores reais, demais variáveis inteiras
implicit none
real*4, allocatable, dimension (:) :: soluc, copia, vetor_erro, vetor_soluc, posicao_i, posicao_j
real*4 soma, dk
character*30 texto
!-----------------------------------------------------------------------------------------------
!#Abertura dos blocos de notas para posterior entrada dos dados da matriz
!-----------------------------------------------------------------------------------------------
!-----------------------------------------------------------------------------------------------
open(1, file="GJS52EQUIPE7DADOS.TXT")
do i=1, nlin
end do
close(1)
!_____________________________________________________________soluc=0
texto="Solução inicial"
dk=1
n_it=0
copia=soluc
do i = 1, nlin
soma=0
do j = 1, ncol-1
if (j==i) cycle
soma=soma+mat(i,j)*soluc(j)
end do
soluc(i)=(-soma+mat(i,ncol))/mat(i,i)
4
end do
texto="Solução parcial"
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+1
end do
texto="Solução Final"
write (2,1) dk
close (2)
ver=system("GJS52EQUIPE7SOLUC.TXT")
!-----------------------------------------------------------------------------------------------
!-----------------------------------------------------------------------------------------------
implicit none
5
integer ver
open(1, file="GJS52EQUIPE7DADOS.TXT")
write (1, '("Nlin Ncol", 10X, "!Substitua Nlin e Ncol pela dimensão da matriz ampliada")')
10 format (//, 'a11 a12 a13 r1',/,'a21 a22 a23 r2',/,'a31 a32 a33 r3')
write (1,11)
11 format (/,'!Substitua as incognitas A pelos valores da sua matriz e R pelo resultado',/,'!caso seja
maior siga no mesmo formato')
close (1)
ver=system ("GJS52EQUIPE7DADOS.TXT")
!-----------------------------------------------------------------------------------------------
implicit none
character*30 texto
open (2,file="GJS52EQUIPE7SOLUC.TXT")
6
do j=1,ncol
1 format (4X,F15.5)
end do
!-----------------------------------------------------------------------------------------------
a)
Solução parcial
____________________________________________________
0.02117 0.26728 0.32224 0.40833
____________________________________________________
Solução parcial
____________________________________________________
0.02182 0.26669 0.32214 0.40841
____________________________________________________
Solução parcial
____________________________________________________
0.02183 0.26669 0.32213 0.40841
____________________________________________________
Solução Final
____________________________________________________
0.02183 0.26669 0.32213 0.40841
____________________________________________________
ERRO: 0.0000246
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:
linha 1 com linha 3
linha 3 com linha 4
8
O sistema utilizado foi o seguinte:
Solução inicial
____________________________________________________
0.00000 0.00000 0.00000 0.00000 0.00000
____________________________________________________
Solução parcial
____________________________________________________
0.40580 -21.55105 9.90666 1.05877 -1.76132
____________________________________________________
Solução parcial
____________________________________________________
-1.80228 -20.98701 9.67914 1.13102 -1.81579
____________________________________________________
Solução parcial
____________________________________________________
-1.76265 -20.98343 9.70760 1.12597 -1.81957
____________________________________________________
Solução parcial
____________________________________________________
-1.76739 -20.98234 9.70616 1.12624 -1.81954
____________________________________________________
Solução parcial
____________________________________________________
-1.76714 -20.98238 9.70626 1.12622 -1.81954
____________________________________________________
Solução parcial
____________________________________________________
-1.76716 -20.98237 9.70626 1.12622 -1.81954
____________________________________________________
Solução Final
____________________________________________________
-1.76716 -20.98237 9.70626 1.12622 -1.81954
____________________________________________________
9
ERRO: 0.0000095
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:
-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.00000
____________________________________________________
Solução parcial
____________________________________________________
-0.01587 678.93652 -47.84524 0.67188 202.97798 -2.42508
____________________________________________________
Solução parcial
____________________________________________________
4.66288 686.02490 -23.10719 -0.45225 137.36368 -2.08889
____________________________________________________
Solução parcial
____________________________________________________
4.20869 701.80023 -25.37010 -0.29641 147.32283 -2.24625
____________________________________________________
Solução parcial
____________________________________________________
4.45643 700.29694 -24.10002 -0.36935 143.38754 -2.21421
10
____________________________________________________
Solução parcial
____________________________________________________
4.40377 701.23297 -24.37193 -0.35451 144.34314 -2.22569
____________________________________________________
Solução parcial
____________________________________________________
4.42099 701.06598 -24.28438 -0.35983 144.05548 -2.22299
____________________________________________________
Solução parcial
____________________________________________________
4.41651 701.13184 -24.30756 -0.35857 144.13399 -2.22387
____________________________________________________
Solução parcial
____________________________________________________
4.41782 701.11725 -24.30088 -0.35898 144.11169 -2.22365
____________________________________________________
Solução Final
____________________________________________________
4.41782 701.11725 -24.30088 -0.35898 144.11169 -2.22365
____________________________________________________
ERRO: 0.0000318
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 -1000
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 -500
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 -500
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
11
Para a resolução do item d, foram realizadas as seguintes trocas:
linha 04 com linha 1
linha 02 com linha 4
linha 09 com linha 5
linha 02 com linha 6
linha 06 com linha 7
linha 12 com linha 8
linha 07 com linha 9
linha 08 com linha 10
O nosso programa divergiu da resposta, a solução apresentada foi obtida através de outro
método computacional a HP, ficando para a tentativa de solução deste e do próximo sistema
como desafio da apresentação do programa.
Na execução do programa a resposta deve convergir para:
F1 -3086.48173 F7 -1483.78111
F2 2182.45123 F8 396.184067
F3 1023.34229 F9 1033.03261
F4 -2199.55161 F10 0
F5 1509.12388 F11 -1858.94199
F6 2182.45123 F12 645.13465
F13 1314.45788
12
e) Problema Proposto
-1 0 -0.7071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 -1 -0.7071 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0.7071 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 -1 0 -0.7071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 -1 0 0 0.7071 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 -1 -0.7071 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0.7071 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 -1 0 -0.707 0 0 0.9806 0.7071 0 0 0 0 0 0 0
0 0 0 0 0 0 0 -1 0 0 0.7071 0 1 0.1961 0.7071 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 -1 0.7071 0 0 0 0 0 0 0 0 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 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 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.9806 0 0 0 0.9806 0.7433 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1961 0 0 1 0.1961 0.669 0 0 8000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.7071 -1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.7071 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.743 -1 0 -5000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.669 0 -1 0
0 0 0 0 0 0 0 0 0 0 0.9806 0 0 0 0 0 0 0 0 0 0 5000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1961 0 0 1 8660.25
Para a resolução do item d, foram realizadas as seguintes trocas diversas trocas para atender a máxima do método de Gass-seidel
Que na diagonal principal não haja termo nulo.
13
O sistema utilizado foi o seguinte:
-1 0 -0.7071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 -1 -0.7071 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0.7071 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 -1 0 0 0.7071 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 -1 0 -0.7071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 -1 -0.7071 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0.7071 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 -1 0 0 0.7071 0 1 0.1961 0.7071 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 -1 0 -0.707 0 0 0.9806 0.7071 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 -1 0.7071 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0.9806 0 0 0 0 0 0 0 0 0 0 5000
0 0 0 0 0 0 0 0 0 0 0.7071 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.9806 0 0 0 0.9806 0.7433 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.7071 0 -1 0 0 0 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 0 0 0 0 0 0 0 0 0 -0.1961 0 0 1 0.1961 0.669 0 0 8000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.1961 0 0 1 8660.25
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.743 -1 0 -5000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.7071 -1 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.669 0 -1 0
14
A solução apresentada pelo programa para esse sistema foi mostrada em sala durante a
apresentação do programa, sendo que foram 74 iterações e um erro de 10E-5.
Frisamos que para a convergência do programa não pode haver números nulos na diagonal
principal
5. CONCLUSÕES
O método se mostrou o muito eficaz para a resolução de sistemas lineares, sendo que a
aproximação é muito precisa, dependendo do erro adotado. É um método também caso
necessário realizá-lo manualmente sem máquinas de cálculo, se mostra eficiente também,
levando em conta que se consegue funções de iterações o que facilita a visualização e realização
de contas.
Enfim de todos os métodos conhecidos do Gauss para resolução de sistema, esse foi o método
que mais agradou nossa equipe, pela fácil aplicação e também pela precisão.
O que mais nos chama a atenção nesse método é a utilização dos valores anteriores para o cálculo
do próximo valor esse fato leva a precisão.
Após a realização desse trabalho ficamos cientes que a condição necessária para o êxito do
método é o de que a matriz seja estritamente diagonal e após alguns testes com o programa de
Gauss-Seidel verficou-se também que na diagonal principal não pode possuir nenhum numero
nulo.
15