Escolar Documentos
Profissional Documentos
Cultura Documentos
Curitiba
2009
1
Sumrio
1.INTRODUO ................................................................................................................... 3
2.O MTODO GAUSS-SEIDEL ................................................................................................ 3
3.CDIGO FONTE................................................................................................................. 3
4.ANLISE DOS PROBLEMAS PROPOSTOS ............................................................................ 7
4.1 Apresentao dos resultados ............................................................................................... 16
5.CONCLUSES ................................................................................................................. 17
1.
INTRODUO
2.
O MTODO GAUSS-SEIDEL
O CDIGO FONTE
program Gauss_Sudel
!----------------------------------------------------------------------------------------------!#declarao das variveis: matriz com valores reais, demais variveis inteiras
implicit none
real*4, allocatable, dimension (:,:) :: mat
real*4, allocatable, dimension (:) :: soluc, copia, vetor_erro, vetor_soluc, posicao_i, posicao_j
real*4 soma, dk
integer nlin, ncol, i, j, ver, posicaoi, posicaoj, n_it
character*30 texto
!----------------------------------------------------------------------------------------------!#Abertura dos blocos de notas para posterior entrada dos dados da matriz
!# e gravao dos resultados da matriz escalonada
open (1, file="GJS52EQUIPE7DADOS.TXT")
3
end do
texto="Soluo 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+1
end do
texto="Soluo Final"
call impressao (texto, soluc,nlin,ncol-1)
write (2,*) ""
write (2,1) dk
1 format (" ERRO:", F10.7)
write (2,*) "Nmero de iteraes:", n_it
close (2)
ver=system("GJS52EQUIPE7SOLUC.TXT")
!----------------------------------------------------------------------------------------------contains !##descrio das subsrotinas
!----------------------------------------------------------------------------------------------!## subrotina para fornecimento correto para entrada de dados ao usurio
subroutine INICIO (ver)
implicit none
5
integer ver
open(1, file="GJS52EQUIPE7DADOS.TXT")
write (1, '("Nlin Ncol", 10X, "!Substitua Nlin e Ncol pela dimenso da matriz ampliada")')
!## prepara o bloco de notas para um sistema escalonado
write (1, 10)
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')
write (1,*) " "
write (1,*) "!!PRGRAMA GAUSS-SUDEL!!"
close (1)
ver=system ("GJS52EQUIPE7DADOS.TXT")
end subroutine INICIO
!----------------------------------------------------------------------------------------------!## subrotina de impresso da solucao aps cada iteracao
subroutine impressao (texto,soluc,nlin,ncol)
implicit none
real*4, allocatable, dimension (:,:) :: mat
real*4, allocatable, dimension (:) :: soluc
integer nlin, ncol, i, j
character*30 texto
open (2,file="GJS52EQUIPE7SOLUC.TXT")
write (2,*) " "
write (2,*) texto
write (2,*) "____________________________________________________"
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
4.
Sim, foi preciso pivotear as linhas pois da maneira que estavam dispostas, o mtodo divergia da
resposta, e condio dominante para que o mtodo convirja, foi citada na introduo deste
trabalho, de que condio suficiente de convergncia que a matriz seja estritamente diagonal
dominante e fica garantida a convergncia da sucesso de valores gerados para a soluo exata
do sistema linear, caso essa condio no seja atendida o mtodo diverge do valor real do
sistema.
4.1.
a)
200 2
2 30
2,3 0,8
0,4 0,03
0,3 0,01 5
1
4 10
60 1 20
9 10 7
Soluo inicial
____________________________________________________
0.00000 0.00000 0.00000 0.00000
____________________________________________________
7
Soluo parcial
____________________________________________________
0.02500 0.33167 0.32795 0.40285
____________________________________________________
Soluo parcial
____________________________________________________
0.02117 0.26728 0.32224 0.40833
____________________________________________________
Soluo parcial
____________________________________________________
0.02182 0.26669 0.32214 0.40841
____________________________________________________
Soluo parcial
____________________________________________________
0.02183 0.26669 0.32213 0.40841
____________________________________________________
Soluo Final
____________________________________________________
0.02183 0.26669 0.32213 0.40841
____________________________________________________
ERRO: 0.0000246
Nmero de iteraes: 4
b)
2
0.7
138
11
1.8
-2
-63
-3
-25
-6
11
2
21
-51
-12
87
3
0.3
7
3
-1 245
-8 1358
-18 56
-11 38
-81 157
Soluo:
Para a resoluo do item c, foram realizadas as seguintes trocas:
linha 1 com linha 3
linha 3 com linha 4
138
0.7
11
2
1.8
-3
-63
-25
-2
-6
21
2
-51
11
-12
0.3
3
7
87
3
-18 56
-8 1358
-11 38
-1 245
-81 157
Soluo inicial
____________________________________________________
0.00000 0.00000 0.00000 0.00000 0.00000
____________________________________________________
Soluo parcial
____________________________________________________
0.40580 -21.55105 9.90666 1.05877 -1.76132
____________________________________________________
Soluo parcial
____________________________________________________
-1.80228 -20.98701 9.67914 1.13102 -1.81579
____________________________________________________
Soluo parcial
____________________________________________________
-1.76265 -20.98343 9.70760 1.12597 -1.81957
____________________________________________________
Soluo parcial
____________________________________________________
-1.76739 -20.98234 9.70616 1.12624 -1.81954
____________________________________________________
Soluo parcial
____________________________________________________
-1.76714 -20.98238 9.70626 1.12622 -1.81954
____________________________________________________
Soluo parcial
____________________________________________________
-1.76716 -20.98237 9.70626 1.12622 -1.81954
____________________________________________________
Soluo Final
____________________________________________________
-1.76716 -20.98237 9.70626 1.12622 -1.81954
____________________________________________________
ERRO: 0.0000095
Nmero de iteraes: 6
c)
0,7
2
0
0
1
1
-63
-8
48
0
-11
2
2 3 -8 1
18
0 31 0 -1 1358
-8 0 0 11 382
0 192 0 -89 129
0 0 0 132 359
-11 4 -5 28 193
Soluo:
Para a resoluo do item c, foram realizadas as seguintes trocas:
linha 5 com linha 6
coluna 1 com coluna 2
Devido troca de colunas, neste caso a soluo apresentada encontra-se na seguinte
ordem: y, x, z, w, t, g. O sistema utilizado foi o seguinte:
-63
-8
48
0
2
-11
0,7
2
0
0
1
1
2 3 -8 1
18
0 31 0 -1 1358
-8 0 0 11 382
0 192 0 -89 129
-11 4 -5 28 193
0 0 0 132 359
Soluo inicial
____________________________________________________
0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
____________________________________________________
Soluo parcial
____________________________________________________
-0.01587 678.93652 -47.84524 0.67188 202.97798 -2.42508
____________________________________________________
Soluo parcial
____________________________________________________
4.66288 686.02490 -23.10719 -0.45225 137.36368 -2.08889
____________________________________________________
Soluo parcial
____________________________________________________
4.20869 701.80023 -25.37010 -0.29641 147.32283 -2.24625
____________________________________________________
Soluo parcial
____________________________________________________
4.45643 700.29694 -24.10002 -0.36935 143.38754 -2.21421
10
____________________________________________________
Soluo parcial
____________________________________________________
4.40377 701.23297 -24.37193 -0.35451 144.34314 -2.22569
____________________________________________________
Soluo parcial
____________________________________________________
4.42099 701.06598 -24.28438 -0.35983 144.05548 -2.22299
____________________________________________________
Soluo parcial
____________________________________________________
4.41651 701.13184 -24.30756 -0.35857 144.13399 -2.22387
____________________________________________________
Soluo parcial
____________________________________________________
4.41782 701.11725 -24.30088 -0.35898 144.11169 -2.22365
____________________________________________________
Soluo Final
____________________________________________________
4.41782 701.11725 -24.30088 -0.35898 144.11169 -2.22365
____________________________________________________
ERRO: 0.0000318
Nmero de iteraes: 8
d)
Problema proposta
0.7071
0
0
-0.7071
0.7071
0
0
0
0
0
0
0
0
1
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
-1
0
0
0
0
0
0
0
0
0
0
0.6585
0.7526
0
0
-0.6585
0.7526
0
0
0
0
0
1
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
1 0.6585 0 0
0
0 0
0 0.7526 1 0
0
0 0
0
0
0 1
0
0 0
0
0
1 0
0
0 0
-1
0
0 0 0.7071 0 0
0
0
0 0 0.7071 1 0
0 0.7526 0 0
0
1 0
0
0
0 0 0.7071 0 1
0
0
2000
0
-1000
0
-500
0
4000
0
-500
2000
0
11
0.7071
0.7071
0
-0.7071
0
0
0
0
0
0
0
0
0
0
1
0
0
0
-1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
-1
0
0
0
0
0
0
0.7526
0
0
0.6585
0.7526
0
0
0
0
0.6585
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 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
1 0.6585 0 0
0
0 0
0 0.7526 0 0
0
1 0
0 0.7526 1 0
0
0 0
0
0
0 1
0
0 0
-1
0
0 0 0.7071 0 0
0
0
0 0 0.7071 1 0
0
0
0 0 0.7071 0 1
-1000
0
2000
0
4000
0
0
2000
-500
0
0
-500
0
O nosso programa divergiu da resposta, a soluo apresentada foi obtida atravs de outro
mtodo computacional a HP, ficando para a tentativa de soluo deste e do prximo sistema
como desafio da apresentao do programa.
Na execuo do programa a resposta deve convergir para:
F1
F2
F3
F4
F5
F6
-3086.48173
2182.45123
1023.34229
-2199.55161
1509.12388
2182.45123
F7
F8
F9
F10
F11
F12
F13
-1483.78111
396.184067
1033.03261
0
-1858.94199
645.13465
1314.45788
12
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
e)
0
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Problema Proposto
-0.7071 0 0 0
0
-0.7071 0 0 1
0
0.7071 0 1 0
0
0
0 -1 0 -0.7071
0
-1 0 0 0.7071
0
0 0 -1 -0.7071
0
0 0 0 0.7071
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
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
-1
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
-0.707
0.7071
0.7071
0.7071
0
0
0
0
0
0
0
0
0.9806
0
0
0
0
0
0
0
0
0
0
0
1
-1
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.9806
0.1961
0
0
0
0
-0.9806
-0.1961
0
0
0
0
0
0
0
0
0
0
0
0
0
0.7071
0.7071
0
0
0
0
0
0
-0.7071
-0.7071
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
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.9806 0.7433 0 0
0
1 0.1961 0.669 0 0 8000
0
0
0
1 0
0
-1
0
0
0 0
0
0
0
-0.743 -1 0 -5000
0
0
-0.669 0 -1
0
0
0
0
0 0 5000
0 -0.1961
0
0 1 8660.25
Para a resoluo do item d, foram realizadas as seguintes trocas diversas trocas para atender a mxima do mtodo de Gass-seidel
Que na diagonal principal no haja termo nulo.
13
-1 0 -0.7071 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.7071 0 1 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 -1 0 -0.7071 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.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
0 0 -1 0.7071 0 0
0 0
0 0
0 0 0
0 0 0 0.9806 0 0
0 0
5000
0 0
0 0 0
0 0 0 0.7071 1 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.9806
0.9806 0.7433 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
-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.1961
0.1961
0.669
0 0
8000
0 0
-0.1961
0 0 0
0 0
0 0 0
0 0
-0.7071 -1
0 0 0
0 0
0 1 8660.25
-0.743 -1 0
0
-5000
1 0
-0.669 0 -1
14
A soluo apresentada pelo programa para esse sistema foi mostrada em sala durante a
apresentao do programa, sendo que foram 74 iteraes e um erro de 10E-5.
Frisamos que para a convergncia do programa no pode haver nmeros nulos na diagonal
principal
5.
CONCLUSES
O mtodo se mostrou o muito eficaz para a resoluo de sistemas lineares, sendo que a
aproximao muito precisa, dependendo do erro adotado. um mtodo tambm caso
necessrio realiz-lo manualmente sem mquinas de clculo, se mostra eficiente tambm,
levando em conta que se consegue funes de iteraes o que facilita a visualizao e realizao
de contas.
Enfim de todos os mtodos conhecidos do Gauss para resoluo de sistema, esse foi o mtodo
que mais agradou nossa equipe, pela fcil aplicao e tambm pela preciso.
O que mais nos chama a ateno nesse mtodo a utilizao dos valores anteriores para o clculo
do prximo valor esse fato leva a preciso.
Aps a realizao desse trabalho ficamos cientes que a condio necessria para o xito do
mtodo o de que a matriz seja estritamente diagonal e aps alguns testes com o programa de
Gauss-Seidel verficou-se tambm que na diagonal principal no pode possuir nenhum numero
nulo.
15