Escolar Documentos
Profissional Documentos
Cultura Documentos
5
Método iterativo
de Gauss-Seidel
"Uma viagem de mil milhas começa com um simples passo-'
Lao Tsu, filósofo chiÊ
5.L Introdução
Esse método é usado para a resolução de sistemas lineares por iterações sucessivas,
..ti
q chegando a uma aproximação da solução do sistema linear. Essa idéia é bem simpler
rl'
e fácil de ser implementada em linguagens de programação.
*! lsso é feito através do isolamento de cada uma das incógnitas a partir de cada urrn
*.lÍl das equações do sistema. Em seguida, a partir de valores inicialmente atribuÍdos àr
incógnitas, são feitas várias iterações, tendo como critério as expressões obtidas ini-
.3:lr
íIirl cialmente.
qil
Âo*, = (s.4)
ou
Ào*, = -a*{ lrf.' - *il, lr!.' - *ll, ..., l*!,li - *!,_,1, V:., - .:l} (s.s)
ou outro critério semelhante que traduza a noção de "distância percorrida" entre o ponto
dado por pÉ, no espaço de k dimensões das incógnitas, e o ponto pÉ*1. euando Ào*, for
menor do que a precisão desejada, as iterações podem ser interrompidas, e o último
valor de À pode ser usado como estimativa da margem de er:ro do resultado.
54 Capítulo Cinco
5.3 Exemplos
Exnnmlo I
Resolva o sistema linear pelo método de Gauss-Seidel.
{4x,+xr*xr=5
j :r, * xr*6xr= -6,5
l-2x,+5xr+xr=0
1. Rearranjam-se as linhas de forma que os maiores valores absolutos flquem na dia-
gonal principal. Nesse caso, será necessário apenas trocar de lugar as linhas 2 e 3:
l4xr+xr*xr=5
I
l-2xr+5x,
*x. =0 (5.7)
f3.r, + x,46x,=-.6,5
po =
{rf, *1, *il = {0, o, o}. (s.e)
4. Proceda com as iterações. Isso pode ser facilmente acompanhado através de uma
Íabela:
po =
{r? , *1, *?} = {b,, br, br} = {5; 0; -6,5}. (s.11)
Exnlrplo 2
r§
t'f, Resolva o sistema linear pelo método de Gauss-Seidel.
)"
[ :i' &+it2*x, =1ç
§
.11
x,*xr=8 (s.12\
E
#
,tlr -x *2x, * x, * 4
i
G:rI
a*'t 1. Rearranjam-se as linhas de forma que os maiores valores absolutos fiquem na dia-
:-h gonal principal. Nesse caso isso é particularmente importante, pois não pode haver
zeÍos na diagonal principal, porque esses valores são usados como os denominado-
res das expressões de Gauss-Seidel'
I x,+x,*x.=lg
)-*,',,*ir" i *, = 4 (s.13)
| *;, =;
2. Escrevem-se as expÍessões de Gauss-Seidel para cada incógnita:
L,j*' = 8 -*l*'
3. Escolhem-se os valores do ponto inicial:
:
:,,,,:'',,',;'
1;rti,+,,,1
: :y rl{
0 0,000 0,000 0,000 10,000 2,800 -2,000 10,s7s
1 10,000 2,800 *2,000 9,20A 3,040 -1,200 1,151
2 g,zo0 3,040 -1,200 8,160 2,612 -0,160 1,516
--) 8,160 2,612 -0,160 7,488 2,330 0,512 1,010
4 7,488 2,330 o 51? 7.158 2,t29 0,842 0,507
f 7,158 2,129 0,842 1,029 2,038 0,97t 0,205
6 7,029 2,038 4,97 t 6,992 2,004 1,008 0,063
7 6,992 2,004 1,008 6,987 1,996 1,013 0,010
8 6,9g7 t,996 1,013 6,992 1,996 1,008 0,006
9 6 qq) 1,996 1,008 6,996 1.99'7 1,004 0,006
10 6,996 1,997 1,004 6,998 1,999 1,002 0,004
11 6,998 1,999 1,002 6,999 2,000 1,001 0,002
t2 6,999 2,000 1,001 7,000 2,000 1,000 0,001
13 7,000 2,000 1,000 7,000 2,000 1,000 0,000
Resultado: {x,.rr.x,} = {7. 2. l} (s.16) ffi
Ilr,
ll ttl I
<lct
t út l.
i= t. 2, ..., tr (s.17)
CapÍhrlo Cinco
{*,+*o=19
1*,**^=+
l*, *r, = s
Aplicando a expressão (5.17) paÍa cada linha:
Não
fltl+lol.ltlt
{lol+ltl<ltlt Nã0
[14*q.p1r Não
A convergência não está garantida. Isso pode ser demonstrado se tentarmos aplicar
{*f*'=lo-xl
)**"' = 4* *\
Lri-'=a-*f.'
Ao aplicarmos as iterações, o resultado é:
Observe que as incógnitas apÍesentam valores oscilantes, sem que haja uma f,
zaçáo com um grupo fixo de valores. Entretanto, esse sistema tem soluçáo {7,3, I
que pode ser facilmente obtida por substituição ou pelo método de triangulari
de Gauss.
Método Iterativo de Gauss-Seidel 59
Programa Seidel
resolve um sistema de N equacoes lineares pelo metodo
iterativo de Gauss-Seidel
-----------^/
#incl-ude <stdio. h>
#include <math.h>
int N;
float B[30],x0t30l,xj_t301,
float A[30] [30];
float Maxdif;
/* esta rotina Ie via teclado a ordem do sistema,
as linhas da matriz de coeficientes e a matriz de resul_tados ,!,/
void LeMatriz()
JI
int I, J;
printf("Ordem do sistema: n= ");
scanf( "%d" , &N) ;
printf( "\n\nDigite os valores separados por espacos .
for(I:0;f<N;I++) \n\n" ) ;
JL
printf( "linha %3d\n" , I+1)
for (J=0 ; J<N; J++)
J
L
scanf( "%f",&(Atrl tJl ) ) ;
]
scanf("%f",&(BII]));
a
J
]
/* calcula a maior diferenca entre X1 e X0 'r,/
float Maximo()
{
int i;
float d,m=0;
for(i=0;i<N;i++) {
d : fabs(x1til-x0til);
if (d>m) m:d;
]
a
return m;
J
(continua)
60 Capítulo Cinco
]
*- I
-\:
a
Imprj-me(X1 , k+1 ,1) ;
J
Rl,
.tt
\F /* programa principaL 'x1
int main()
.g'i JL
c'*r int i, k:0 ;
.;:.r
! dl
êt, LeMatriz();
for(i:0 ; j-<N; i++) X0til=0. 0 ;
Imprime (X0 , k, 1) ;
do{
iteracao(k);
Maxdif = Maximo();
for(i:0 ; i<N ; i++) X0 til:X1 [i]
k++;
1I
whj-le (Maxdj-f > 1.0e-8) ;
Imprime(X]-,k,0);
return 0;
aI
Figura 5.2 Listagem de programa em linguagem C que aplica o Método de Gauss-Seidel para
a solução de um sistema linear.
Programa Criterio
Verifica se um sistema de N equacoes lineares satisfaz
O critério de eonvergência do método iterativo de Gauss-Seidel
JL
printf( "Iinha %Bd\n" , f+1) ;
for(J=0 ; J<N; J++)
{
scanf("%f",&(AII
a
ItJt));
J
scanf("%f",&(BtIl) );
]
ínt criterio()
JL
int i,j;
float s;
for i++) {
(i-=0 ; i<N;
s=0-0;
for(j:6;i<N;j++)
if (i!:j)
s += fabs(Atil ljl);
if (s >= fabs(Atiltil)) return O;
a
J
return -1;
a
)
return 0;
]
Figura 5.3 Listagem de programa em linguagem C que veriflca o critério de convergência do
Método de Gauss-Seidel para um sistema linear.
62 Capítulo Cinco
(s.21)
L.Ií =A
(5.23)
O processo de decomposição pode agora seguir seu curso normal (via triangul arizaçáo
ou Gauss-Seidel) com a vantagem de que esta transformação garante maior estabilidade
numérica e ef,ciência. O algoritmo falhaú somente se A não for definida positiva.
5,7 Exercícios
1. Resolva o sistema pelo método iterativo de Gauss-Seidel. Verifique, antes de resolveío sis-
tema, se ele satisfaz o critério de convergência.
l4xr-Zxr-x: = 10
*", +gx.
' '", -5x.
Il*zx, ""4 -= -5" (S.28)
| -x, +6x. -3xo = g
[-5x, -sx, +10x0 =g
2. Verifique se o sistema linear dado a seguir satisfaz o critério de convergência de Gauss-
Seidel.
l4x, *2x. =o
1 -z'r. * r.- x- = o
(5.26)
t'^'_'
l-X2*ZXo=J
3. Resolva o sistema pelo método iterativo de Gauss-Seidel. Troque as linhas, de forma que o
sistema satisfaça o critério de convergência.
+6xo =5
lxr+xr+x,
)7xr+xri-X3*Xo=2 $.27)
+ x3 + xo =l)
lxr+9x,
fx, +x, -8xr+xo=4
4. Determine qual deve ser o valor de apara que o sistema linear dado possa ser resolvido pelo
método iterativo de Gauss-Seidel.
l6xr-zxr*aaX==Q
(5.28)
]-zxr+axr-xz=*2
t-
laxl-x2 -bx3 -5
5. lnclua uma rotina chamada "trocalinhas" no programa "critério" que faça a troca de linhas
do sistema linear, de forma que os maiores valores absolutos sejam colocados na diagonal
principal antes de o teste prosseguir. O sistema alterado deve ser apresentado no final do
programa.
*2t +152 = 67
lzx (s.29)
l9x+21+32 =59
| 2x+4y-z =I
Resolva o sistema e verifique a quantidade de iterações necessárias para encontrar solu-
a.
ções com precisão de 10
b. Troque as Iinhas do sistema linear, de forma a otimizar a solução do sistema. Quantas
iterações foram necessárias?
CapÍtulo Cinco
7. É necessário determinar as forças nas 17 barras da treliça mostrada na Figura 5.4. As bar-
ras da treliça estão unidas por juntas sem atrito. Um dos teoremas da Mecânica Clássica
garante que se o número de nós 7 está relacionado com o número de barras m por 2i - 3 =
m, então a treliça é estaticamente determinada. lsto quer dizer que as forças nas barras são
determinadas inteiramente pelas condições de equilíbrio estático nos nós. Fl simboliza os
componentes das forças horizontais e Frsimboliza os componentes das forças verticais.
tl 1kN
@, 10 @14
l,,u n*
Figura 5.4 Figura do Exercício 7.
Suponha que o ângulo entre as barras inclinadas seja de 450, seja o = sen 450 = cos 45o,
então as condições de equilíbrio são
fa+ afu=Q,
-r, =-aft+
{i; --(r\-ft-afu=Qi
-,. = -fz*fa =0,
{r,l =1.-1,0=0;
-,- =-fq't fe=0,
{}; -_f - ô.
*u u
ilr =-fa-afg+ frr+ afç=0,
tÍr, --dfg- + ofr. = f11 Q;
{i; afru=Qt
Nó 10 If,, =-dfrc-frr=O
Para a treliça da Figura 5.5 aplique o mesmo desenvolvimento mostrado acima e encontre
as forças em cada barra.
'@'O
7 l1
12
1013/1 1i
Or
{,uo
**
Figura 5.5 Figura do Exercício 8.
Um escritório de engenharia civil foi solicitado a projetar uma sala de cinema cuja sustenta-
ção deve ser garantida por quatro colunas principais. Para calcular as dimensões das colunas,
os engenheiros chegaram ao seguinte sistema linear:
[
I
3,2Ix +7,89 y + 4,952 -6.35 = 31,07
13,stx
+7,62y -8,732 = -I3,72
lA,O2x +15,24y -t4,462 =27,44 (5.s1)
lz I o - +t,s2 y - 6t,7 4z = 98,44
^
11. Um professor de cálculo numérico deseja criar um interessante exercício de sistemas linea-
res, para o qual não haja solução. Assim, ele criou o seguinte sistema linear:
t'lx*2v-3=O
1x-y+mz=z $.32)
lz^**y*42=*Zm
Quais são os valores de m que fazem com que o sistema não tenha solução?