Método De Gauus-Seidel

Ver Todos os Exercícios

Teoria

Fala aí! Hoje vamos aprender um pouquinho melhor sobre o método de Gauss-Seidel, que é um método iterativo para a resolução de sistemas lineares!

Tá preparado? Então vem comigo descobrir o tanto que esse método é parecido com o de método de Jacobi. E se você só quiser o algoritmo desse negócio relaxa que separei pra você lá no final. 😆

Veja também

Para que serve o Método de Gauss-Seidel?

O método de Gauss-Seidel fornece uma receita para resolver sistemas lineares mais complicados.

Ele é uma adaptação do método de Jacobi com a intenção de acelerar a convergência. Quer dizer que vamos chegar na resposta desejada com um número menor de iterações, isto é, precisaremos repetir o processo descrito pelo método um número menor de vezes.

E como funciona esse negócio aí?

Te explico agora! Para se calcular a componente da iteração , vamos utilizar as componentes já calculadas na iteração atual e as componentes da iteração anterior.

Ficou confuso com esse tanto de letra que apareceu aí? Calma, vou desenhar pra deixar tudo bem claro pra você!

Se liga nesse sisteminha aqui:

Sistema linear
Sistema linear

Só pra deixar claro: são os coeficientes que multiplicam as três variáveis, e .

O método de Gauss-Seidel diz que encontramos a função de iteração para a variável isolando-a na primeira equação.

Esse índice que aparece aí representa a iteração que a gente tá. Começamos com , e os valores de e dessa iteração costumam ser fornecidos pelo enunciado da questão como uma aproximação inicial.

Aí, vamos repetir isso aí para as outras linhas do sistema, para obtermos as funções de iteração das outras variáveis.

Da segunda equação, vamos isolar o :

Opa! Por que o índice do ficou diferente?

Aaah, chegamos na grande sacada do método de Gauss-Seidel!

Como a gente já tem um valor atualizado pra variável , que acabamos de calcular nessa mesma iteração , podemos esquecer o valor da iteração passada ! Isso vai garantir uma convergência muito mais rápida!

Já consegue me dizer como vai ficar a função de iteração da variável ? Vê se você acertou 👇

Da terceira equação, vamos isolar o :

Muito bem!! Naquele mesmo esquema: já temos um valor atualizado pra variável , então já podemos usá-lo no cálculo da variável 😄

Saca só nesse esqueminha aqui de como vai ficar cada iteração pelo método de Gauss-Seidel:

Método de Gauss-Seidel.
Método de Gauss-Seidel.

Já vamos fazer um exemplo pra deixar isso bem fixado na sua cabeça. Mas tem algumas coisinhas que precisamos ver antes disso!

Se quiser, pode assistir esse vídeo aqui explicando tudo isso bonitinho também 👇

Critério de Convergência (Critério de Sassenfeld)

Antes de começarmos a usar esse método de Gauss-Seidel, precisamos ter certeza que o sistema vai convergir.

O critério de Sassenfeld é condição suficiente para a convergência do método, e ele diz o seguinte:

Depois de calcular todos os , pegamos o maior deles em módulo. Se esse valor for menor que , o critério de Sassenfeld é satisfeito e o método irá convergir!

Critério de Parada

Beleza, já sabemos como funciona o método e quando podemos utilizá-lo. Mas, depois que começar as iterações, tem algum jeito de perceber que já encontramos uma aproximação boa o suficiente?

Claro que tem!

O critério de parada normalmente utilizado são as diferenças . Com como cada uma das variáveis do nosso sistema.

Quando a maior dessas diferenças, em módulo, for menor que o erro informado pelo enunciado, quer dizer que já temos uma aproximação boa o suficiente e podemos parar com as iterações.

Tranquilo? Agora sim, temos tudo o que precisamos pra resolver um exercício.

Exemplo: Resolva o sistema linear abaixo pelo método de Gauss-Seidel com e .

Passo 1: Aplicar o critério de convergência.

Antes de começar, temos que ver se esse negócio aí vai convergir, né? Se não, só vamos perder nosso tempo fazendo conta à toa.

Pelo critério de Sassenfeld:

O máximo aí é o e ele é menor do que . Então, o critério de Sassenfeld garante a convergência do método.

Passo 2: Encontrar as funções de iteração.

Só isolar a primeira variável na primeira equação, a segunda variável na segunda equação e assim por diante.

Tranquilo, né? Isso aí já mostrei como que faz ali em cima.

Ah, um detalhe: toma muito cuidado com os sinais. Se você reparar ali na segunda equação ficamos com , porque esse termo já era negativo no sistema inicial, aí quando passamos pro outro lado da igualdade ele fica positivo.

Passo 3: Primeira iteração.

Começamos lá pelo , com os valores de e fornecidos pela aproximação inicial dada pelo enunciado.

Esse valor encontrado para o vai ser utilizado na equação seguinte para o cálculo do .

E para a última equação:

Beleza, ficamos com .

Passo 4: Analisar o critério de parada.

A maior diferença aqui vai ser para o .

Nossos valores ainda não são bons o suficiente. Devemos fazer mais iterações, cada vez com os valores atualizados para nossas variáveis!

Algoritmo do Método de Gauss-Seidel

A grande vantagem do Cálculo Numérico é que podemos escrever algoritmos e soltar tudo isso no cérebro dos nossos computadores pra eles se virarem, não é? Então bora ver como fica o algoritmo desse método aqui!

Algoritmo para o Método de Gauss-Seidel.
Algoritmo para o Método de Gauss-Seidel.

Agora você já tem todas as informações necessárias pra resolver nossa lista de exercícios 😉

Exemplo: Resolva o sistema linear abaixo pelo método de Gauss-Seidel com e .

Algoritmo do Método de Gauss-Seidel

Exercícios Resolvidos

Exercício Resolvido #1

Dar exemplo de um sistema de equações 2 × 2 que não seja diagonal dominante, mas seja convergente usando o método de Gauss-Seidel.

Obs.: Um sistema é diagonal dominante se para todas as linhas da matriz de coeficientes, o módulo do valor da matriz na diagonal é maior que a soma dos módulos de todos os demais valores (não-diagonais) daquela linha. 

Passo 1

-

Beleza, o enunciado dá uma breve explicação do que é um sistema diagonal dominante. Em um sistema 2 × 2 isso significa:

a 11 x 1 + a 12 x 2 = b 1 a 21 x 1 + a 22 x 2 = b 2

a 11 > a 12

a 22 > a 21

E para que o sistema convirja pelo método de Gauss-Seidel temos que satisfazer o critério de Sassenfeld, que em um sistema 2 × 2 fica:

β 1 = a 12 a 11

β 2 = a 21 β 1 a 22

E queremos que β 1 < 1 e β 2 < 1 . Para que isso seja satisfeito sem usarmos um sistema diagonal dominante, basta que a 12 < a 11 e que a 21 = a 22 por exemplo. Se liga:

2 x 1 + x 2 = 3 x 1 + x 2 = 2

No sistema acima temos:

β 1 = 1 2 = 0.5 < 1

β 2 = 1 ∙ 0.5 1 = 0.5 < 1

Logo, o sistema converge pelo método de Gauss-Seidel, mas o sistema não é diagonal dominante.

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #2

Em cada caso verifique se o critério de Sassenfeld é satisfeito e resolva por Gauss-Seidel com ε = 0.0001 , se possível:

a A = 10 1 1 1 10 1 1 1 10 ; b = 12 12 12

b A = 4 - 1 0 0 - 1 4 - 1 0 0 - 1 4 - 1 0 0 - 1 4 ; b = 1 1 1 1

Passo 1

a Verificando o critério de Sassenfeld:

β 1 = 1 + 1 10 = 0.2

β 2 = 0.2 ∙ 1 + 1 10 = 0.12

β 3 = 0.2 ∙ 1 + 0.12 ∙ 1 10 = 0.032

Logo, β = 0.2 < 1 . O critério é satisfeito.

Passo 2

As funções de iteração são:

x 1 k + 1 = 12 - x 2 k - x 3 k 10

x 2 k + 1 = 12 - x 1 k + 1 - x 3 k 10

x 3 k + 1 = 12 - x 1 k + 1 - x 2 k + 1 10

Visualmente podemos ver que a solução é simplesmente x = 1 , 1,1 né? Mas pra treinar um pouco vamos usar como aproximação inicial x 0 = 0.9,1 . 1,0.9 .

Iteração 1 :

x 1 1 = 12 - x 2 0 - x 3 0 10

x 1 1 = 1

x 2 1 = 12 - x 1 1 - x 3 0 10

x 2 1 = 1.01

x 3 1 = 12 - x 1 1 - x 2 1 10

x 3 1 = 0.999

Então temos x 1 = 1,1 . 01,0.999 .

Critério de Parada:

x 1 1 - x 1 0 = 0.1 > ε

Não atingimos o critério, então continuamos as iterações.

Iteração 2 :

x 1 2 = 12 - x 2 1 - x 3 1 10

x 1 2 = 0.9991

x 2 2 = 12 - x 1 2 - x 3 1 10

x 2 2 = 1.00019

x 3 2 = 12 - x 1 2 - x 2 2 10

x 3 2 = 1.00007

Então temos x 2 = 0.9991,1 . 00019,1.00007 .

Critério de Parada:

x 1 2 - x 1 1 = 0.0009 > ε

Não atingimos o critério, então continuamos as iterações.

Iteração 3 :

x 1 3 = 12 - x 2 2 - x 3 2 10

x 1 3 = 0.99997

x 2 3 = 12 - x 1 3 - x 3 2 10

x 2 3 = 1

x 3 3 = 12 - x 1 3 - x 2 3 10

x 3 3 = 1

Então temos x 3 = 0.99997,1 , 1 .

Critério de Parada:

x 1 3 - x 1 2 = 0.00087 > ε

Não atingimos o critério, então continuamos as iterações.

Iteração 4 :

x 1 4 = 12 - x 2 3 - x 3 3 10

x 1 4 = 1

x 2 4 = 12 - x 1 4 - x 3 3 10

x 2 4 = 1

x 3 4 = 12 - x 1 4 - x 2 4 10

x 3 4 = 1

Então temos x 4 = 1 , 1,1 .

Critério de Parada:

x 1 4 - x 1 3 = 2.6 × 10 - 5 < ε

x 2 4 - x 2 3 = 4.2 × 10 - 6 < ε

x 3 4 - x 3 3 = 3 × 10 - 6 < ε

Beleza, o critério de parada foi atingido! Então nossa aproximação é:

x = 1,1 , 1

Passo 3

b Aplicando o critério de Sassenfeld temos:

β 1 = 1 4 = 0.25 < 1

β 2 = 0.25 + 1 4 = 0.3125 < 1

β 3 = 0.3125 + 1 4 = 0.328125 < 1

β 4 = 0.328125 4 = 0.082 < 1

Logo, β = 0.328125 < 1 . O critério é satisfeito.

Passo 4

As funções de iteração são:

x 1 k + 1 = 1 + x 2 k 4

x 2 k + 1 = 1 + x 1 k + 1 + x 3 k 4

x 3 k + 1 = 1 + x 2 k + 1 + x 4 k 4

x 4 k + 1 = 1 + x 3 k + 1 4

Agora precisamos de um chute inicial. Se a gente jogar 0.5 em todas as variáveis dá valores bem próximos né? Então vamos usar x 0 = 0.5,0 . 5,0.5,0.5 .

Iteração 1 :

x 1 1 = 1 + x 2 0 4

x 1 1 = 0.375

x 2 1 = 1 + x 1 1 + x 3 0 4

x 2 1 = 0.46875

x 3 1 = 1 + x 2 1 + x 4 0 4

x 3 1 = 0.49219

x 4 1 = 1 + x 3 1 4

x 4 1 = 0.37 305

Então temos x 1 = 0.375 ,   0.46875 ,   0.49219 ,   0.37305 .

Critério de Parada:

x 1 1 - x 1 0 = 0.125 > ε

Não atingimos o critério, então continuamos as iterações.

Iteração 2 :

x 1 2 = 1 + x 2 1 4

x 1 2 = 0.36719

x 2 2 = 1 + x 1 2 + x 3 1 4

x 2 1 = 0.46484

x 3 2 = 1 + x 2 2 + x 4 1 4

x 3 2 = 0.45947

x 4 2 = 1 + x 3 2 4

x 4 2 = 0.36487

Então temos x 2 = 0.36719,0 . 46484,0.45947,0.36487 .

Critério de Parada:

x 1 2 - x 1 1 = 0.00781 > ε

Não atingimos o critério, então continuamos as iterações.

Iteração 3 :

x 1 3 = 1 + x 2 2 4

x 1 3 = 0.36621

x 2 3 = 1 + x 1 3 + x 3 2 4

x 2 3 = 0.45642

x 3 3 = 1 + x 2 3 + x 4 2 4

x 3 3 = 0.45532

x 4 3 = 1 + x 3 3 4

x 4 3 = 0.36383

Então temos x 3 = 0.36621,0 . 45642,0.45532,0.36383 .

Critério de Parada:

x 1 3 - x 1 2 = 0.00098 > ε

Não atingimos o critério, então continuamos as iterações.

Iteração 4 :

x 1 4 = 1 + x 2 3 4

x 1 4 = 0.36411

x 2 4 = 1 + x 1 4 + x 3 3 4

x 2 4 = 0.45486

x 3 4 = 1 + x 2 4 + x 4 3 4

x 3 4 = 0.45467

x 4 4 = 1 + x 3 4 4

x 4 4 = 0.36367

Então temos x 4 = 0.36411,0 . 45486,0.45467,0.36367 .

Critério de Parada:

x 1 4 - x 1 3 = 0.00211 > ε

Não atingimos o critério, então continuamos as iterações.

Iteração 5 :

x 1 5 = 1 + x 2 4 4

x 1 5 = 0.36371

x 2 5 = 1 + x 1 5 + x 3 4 4

x 2 5 = 0.4546

x 3 5 = 1 + x 2 5 + x 4 4 4

x 3 5 = 0.45457

x 4 5 = 1 + x 3 5 4

x 4 5 = 0.36364

Então temos x 5 = 0.36371,0 . 4546,0.45457,0.36364 .

Critério de Parada:

x 1 5 - x 1 4 = 0.00039 > ε

Não atingimos o critério, então continuamos as iterações.

Iteração 6 :

x 1 6 = 1 + x 2 5 4

x 1 6 = 0.36365

x 2 6 = 1 + x 1 6 + x 3 5 4

x 2 6 = 0.45455

x 3 6 = 1 + x 2 6 + x 4 5 4

x 3 6 = 0.45455

x 4 6 = 1 + x 3 6 4

x 4 6 = 0.36364

Então temos x 6 = 0.36365,0 . 45455,0.45455,0.36364 .

Critério de Parada:

x 1 6 - x 1 5 = 6.5 × 10 - 5 < ε

x 2 6 - x 2 5 = 4.3 × 10 - 5 < ε

x 3 6 - x 3 5 = 1.7 × 10 - 5 < ε

x 4 6 - x 4 5 = 4.3 × 10 - 6 < ε

Beleza, o critério de parada foi atingido! Então nossa aproximação é:

x = 0.36365,0.45455,0.45455,0.36364

Resposta

a x = 1,1 , 1

b x = 0.36365,0.45455,0.45455,0.36364

Exercício Resolvido #3

Considere o seguinte sistema de equações lineares:

x 1 + 2 x 2 - x 3     = 1 2 x 1 - x 2         = 1   - x 2 + 2 x 3 - x 4 = 1       - x 3 + 2 x 4 = 1

a Mostre que este sistema não satisfaz o critério de linhas;

b Mostre que esse sistema não satisfaz o critério de Sassenfeld;

c O que se pode afirmar sobre a convergência dos métodos de Gauss-Jacobi e Gauss-Seidel, quando aplicados a este sistema?

d Mostre que o sistema obtido permutando-se as duas primeiras equações satisfaz o critério de Sassenfeld;

e Usando o método de Gauss-Seidel, determine a solução aproximada do sistema, com a permutação sugerida no item anterior e erro ε = 1 × 10 - 3 = 0.001 .

Passo 1

a Verificando o critério das linhas:

α 1 = 3 1 = 3 > 1

Só pelo α 1 já podemos ver que ele não satisfaz o critério.

Passo 2

b Verificando o critério de Sassenfeld:

β 1 = 3 1 = 3 > 1

Novamente, apenas pelo valor de β 1 já sabemos que o critério não é satisfeito.

Passo 3

c