Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Método Iterativo de Gauss-Seidel para Resolver Sistemas Lineares, Notas de aula de Cálculo Diferencial e Integral

Este documento explica o método iterativo de gauss-seidel para resolver sistemas lineares ax = b. O método consiste em calcular sucessivas aproximações de x utilizando-se as equações da iteração. As equações são obtidas isolando o elemento xi da equação i e aplicando a regra de iteração. O método é mais eficiente quando eliminamos somas de produtos nulos. O documento também apresenta um exemplo de aplicação do método.

O que você vai aprender

  • Qual é a condição de parada para o método de Gauss-Seidel?
  • Quais são as vantagens de usar o método de Gauss-Seidel em relação a outros métodos para resolver sistemas lineares?
  • Qual é o significado de 'tolerância' no contexto do método de Gauss-Seidel?
  • Como é calculada a sequência de iterações no método de Gauss-Seidel?
  • Qual é o método iterativo utilizado no documento?

Tipologia: Notas de aula

2020

Compartilhado em 24/05/2020

doglas-da-silva
doglas-da-silva 🇧🇷

1 documento

1 / 11

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
MÉTODOS NUMÉRICOS (ITERATIVOS) PARA SISTEMAS LINEARES
Anteriormente, tratamos de métodos diretos para a resolução de sistemas
lineares. Em um método direto (por exemplo, solução via escalonamento) obtemos uma
aproximação da solução depois de realizarmos um número finito de operações (só
teremos a solução ao final do processo).
Agora veremos dois métodos iterativos básicos para obter uma aproximação
para a solução de um sistema linear. Geralmente em um método iterativo, iniciamos
com uma aproximação para a solução (que pode ser ruim) e vamos melhorando essa
aproximação através de sucessivas iterações.
1. SISTEMAS NUMÉRICOS DE EQUAÇÕES LINEARES
Para sistemas de equações lineares esparsos de pequeno a médio porte, os
algoritmos diretos não levam em consideração que muitas operações não necessitam ser
feitas. Tal aspecto é levado em conta nos algoritmos iterativos. Nesses, parte-se de um
valor inicial arbitrário, pois a escolha para o valor inicial desses métodos não é crítica.
Contudo o critério de parada das iterações é um pouco trabalhoso.
A idéia mais simples de um algoritmo iterativo para resolver
A
X=
Y
é obtida,
resolvendo-se a primeira equação para x1, a segunda para x2, etc. Generalizando tem-se:
x
i
=1
a
ii
(
y
i
a
i1
x
1
a
i2
x
2
a
i ;i1
x
i1
a
i;i+1
x
i+1
a
¿
x
n
)
onde são conhecidos os valores x1, x2, , xi–1, xi+1, , xn que são usados no lado direito
da equação acima.
1.1. Métodos iterativos de resolução de equações lineares
A solução
de um sistema linear pode ser obtida com a utilização de um processo
iterativo, o qual consiste em calcular uma sequência X(1), X(2), X(3), , ⋯, Xk), , de⋯,
aproximações de
, sendo dada uma aproximação inicial X(0).
1.1.1. Método de Jacobi
O método de Jacobi pode ser obtido a partir do sistema linear AX = B,
a11 x1+a12 x2+a13 x3++a1nxn=y1
a21 x1+a22 x2+a23 x3++a2nxn=y2
a31 x1+a32 x2+a33 x3++a3nxn=y3
an1x1+an2x2+an3x3++ann xn=yn
Isolando o elemento x1 da primeira equação temos
x
1
(
k+1
)
=1
a
11
(
y
1
a
12
x
2
(
k
)
a
13
x
3
(
k
)
a
1n
x
n
(
k
)
)
Note que utilizaremos os elementos
xi
(
k
)
da iteração k (à direita da equação) para
estimar o elemento x1 da próxima iteração. Da mesma forma, isolando o elemento xi de
cada equação i, para todo i = 2, ..., n podemos construir a iteração
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe Método Iterativo de Gauss-Seidel para Resolver Sistemas Lineares e outras Notas de aula em PDF para Cálculo Diferencial e Integral, somente na Docsity!

MÉTODOS NUMÉRICOS (ITERATIVOS) PARA SISTEMAS LINEARES

Anteriormente, tratamos de métodos diretos para a resolução de sistemas lineares. Em um método direto (por exemplo, solução via escalonamento) obtemos uma aproximação da solução depois de realizarmos um número finito de operações (só teremos a solução ao final do processo). Agora veremos dois métodos iterativos básicos para obter uma aproximação para a solução de um sistema linear. Geralmente em um método iterativo, iniciamos com uma aproximação para a solução (que pode ser ruim) e vamos melhorando essa aproximação através de sucessivas iterações.

  1. SISTEMAS NUMÉRICOS DE EQUAÇÕES LINEARES Para sistemas de equações lineares esparsos de pequeno a médio porte, os algoritmos diretos não levam em consideração que muitas operações não necessitam ser feitas. Tal aspecto é levado em conta nos algoritmos iterativos. Nesses, parte-se de um valor inicial arbitrário, pois a escolha para o valor inicial desses métodos não é crítica. Contudo o critério de parada das iterações é um pouco trabalhoso. A idéia mais simples de um algoritmo iterativo para resolver (^) AX = ⃗ Y é obtida, resolvendo-se a primeira equação para x 1 , a segunda para x 2 , etc. Generalizando tem-se: xi =

aii

( yi − ai 1 x 1 − ai 2 x 2 − ⋯ − ai ;i − 1 xi − 1 − ai ;i + 1 xi + 1 − a ¿ xn )

onde são conhecidos os valores x 1 , x 2 , ⋯, x i–1, x i+1, ⋯, xn que são usados no lado direito da equação acima. 1.1. Métodos iterativos de resolução de equações lineares A solução  de um sistema linear pode ser obtida com a utilização de um processo iterativo, o qual consiste em calcular uma sequência X (1), X (2), X (3), ⋯, , Xk ), ⋯, , de aproximações de , sendo dada uma aproximação inicial X (0). 1.1.1. Método de Jacobi O método de Jacobi pode ser obtido a partir do sistema linear AX = B , a 11 x 1 + a 12 x 2 + a 13 x 3 + + a 1 n xn = y 1 a 21 x 1 + a 22 x 2 + a 23 x 3 + + a 2 n xn = y 2 a 31 x 1 + a 32 x 2 + a 33 x 3 + + a 3 n xn = y 3 ⋮ an 1 x 1 + an 2 x 2 + an 3 x 3 + + ann xn = yn Isolando o elemento x 1 da primeira equação temos x 1 ( k + 1 ) =

a 11 ( y 1 − a 12 x 2 ( k ) − a 13 x 3 ( k ) − a 1 n xn ( k ) ) Note que utilizaremos os elementos xi ( k ) da iteração k (à direita da equação) para estimar o elemento x 1 da próxima iteração. Da mesma forma, isolando o elemento xi de cada equação i , para todo i = 2, ..., n podemos construir a iteração

x 1 ( k + 1 ) = y 1 −( a 12 x 2 ( k )

  • a 13 x 3 ( k )
  • + a 1 n xn ( k ) ) a 11 x 2 ( k + 1 ) = y 2 −( a 21 x 1 ( k )
  • a 23 x 3 ( k )
  • + a 2 n xn ( k ) ) a 22 ⦙ xn ( k + 1 ) = yn −( an 1 x 1 ( k )
  • an 2 x 2 ( k )
  • + an ,n − 1 xn − 1 ( k ) ) ann E, assim, a partir da solução inicial X (0), tem-se o método numérico iterativo: xi ( k + 1 ) =

aii ( yiai 1 x 1 ( k ) − ai 2 x 2 ( k ) − ai ;i − 1 xi − 1 ( k ) − ai ;i + 1 xi + 1 ( k ) − a ¿ xn ( k ) ) i = 1, ⋯, n Os aii não podem ser nulos. Se o sistema é não singular, sempre será possível obter aii  0, trocando-se adequadamente as equações. Na maioria das situações em que o algoritmo é usado, isto é, nos SEL esparsos, onde muitos dos coeficientes aij são nulos, ij , deve-se evitar multiplicações desnecessárias. Claro que isto só pode ser feito programando a solução de cada sistema individualmente. Observação. Tanto esse método quanto o seguinte são mais eficientes quando os elaboramos em função do SEL específico, de modo a eliminar somas de produtos nulos. x 1 ( k + 1 ) =

a 11 [ b 1 − a 12 x 2 ( k ) − a 13 x 3 ( k ) − a 1 : n − 1 xn − 1 ( k ) − a 1 n xn ( k ) ] x 2 ( k + 1 ) =

a 22 [ b 2 − a 21 x 1 ( k ) − a 23 x 3 ( k ) − a 2 : n − 1 xn − 1 ( k ) − a 2 n xn ( k ) ] ⋮ xn ( k + 1 ) =

ann [ bnan 1 x 1 ( k ) − an 2 x 2 ( k ) − an : n − 2 xn − 2 ( k ) − an : n − 1 xn − 1 ( k ) ] Exemplo 1. Resolva o sistema { 10 x + 1 y = 23 1 x + 8 y = 26 usando o método de Jacobi, iniciar com X (0)^ = ( x (0), y (0)) = (0, 0). COM €≤ 0, x ( k + 1 ) = 23 − y ( k ) 10 e y ( k + 1 ) = 26 − x ( k ) 8 x ( 1 ) = 23 − y ( 0 ) 10

y ( 1 ) = 26 − x ( 0 ) =

x 2 ( k + 1 ) =

[ 3 +^ x 1 ( k )

  • x 5 ( k ) ] x 3 ( k + 1 ) =

[ -^1 +^ x 4 ( k ) ] x 4 ( k + 1 ) =

[ x 1 ( k )

  • 2 x 5 ( k ) ] x 5 ( k + 1 ) =

[ -^1 +^ x 4 ( k ) ] X (^0 )^ = (1, 1, 1, 1) x 1 ( 1 ) =

[ 2 +^3 x 4 ( 0 )

  • x 5 ( 0 ) ] =0.2(2 + 3 1 + 1 ) = 0.26 = 1. x 2 ( 1 ) =

[ 3 +^ x 1 ( 0 )

  • x 5 ( 0 ) ] = 0.25(3 +^^1 +^^1 ) = 0.255 = 1. x 3 ( 1 ) =

[ -^1 +^ x 4 ( 0 ) ] = 0.5(-^^1 +^^1 ) = 0.50 = 0 x 4 ( 1 ) =

[ x 1 ( 0 )

  • 2 x 5 ( 0 ) ] = 0.25(^1 + 2^1 ) = 0.253 = 0. x 5 ( 1 ) =

[ -^1 +^ x 4 ( 0 ) ] = 0.5(-^^1 +^^1 ) = 0.50 = 0 X (^1 )^ = (1.2, 1.25, 0.0, 0.75, 0.0) x 1 ( 2 ) =

[ 2 +^3 x 4 ( 1 )

  • x 5 ( 1 ) ] = 0.2(2 + 30.75^ +^0 ) = 0.24.25 = 0. x 2 ( 2 ) =

[ 3 +^ x 1 ( 1 )

  • x 5 ( 1 ) ] = 0.25(3 + 1.2 + 0 ) = 0.254.2 = 1. x 3 ( 2 ) =

[ -^1 +^ x 4 ( 1 ) ] = 0.5(- 1 +^ 0.75) = 0.5(- 0.25) = - 0. x 4 ( 2 ) =

[ x 1 ( 1 )

  • 2 x 5 ( 1 ) ] = 0.25(1.2^ + 2^0 ) = 0.251.2 = 0. x 5 ( 2 ) =

[ -^1 +^ x 4 ( 1 ) ] = 0.5(- 1 +^ 0.75) = 0.5(- 0.25) = - 0, X (^2 )^ = (0.85, 1.05, -0.125, 0.3, -0.125) x 1 ( 3 ) =

[ 2 +^3 x 4 ( 2 )

  • x 5 ( 2 ) ] = 0.2(2 + 3 0.3^ – 0.125 ) = 0.22.775 = 0. x 2 ( 3 ) =

[ 3 +^ x 1 ( 2 )

  • x 5 ( 2 ) ] = 0.25(3 + 0.85 – 0.125 ) = 0.253.725 = 0. x 3 ( 3 ) =

[ -^1 +^ x 4 ( 2 ) ] = 0.5(- 1 + 0.3 ) = 0.5(-0.7) = -0. x 4 ( 3 ) =

[ x 1 ( 2 )

  • 2 x 5 ( 2 ) ] = 0.25[ 0.85^ + 2( - 0.125 )] = 0.250.6 = 0.

x 5 ( 3 ) =

[ -^1 +^ x 4 ( 2 ) ] = 0.5(- 1 +^ 0.3 ) = 0.5(-0.7) = -0. X (^3 )^ = (0.555, 0.93125, -0.35, 0.15, -0.35) k x 1 ( k ) ϵ (^) 1 ( k ) x 2 ( k ) ϵ 2 ( k ) x 3 ( k ) ϵ 3 ( k ) x 4 ( k ) ϵ (^) 4 ( k ) x 5 ( k ) ϵ 5 ( k ) (^)  0 1 –^1 –^1 –^1 –^1 – 1 1.2 0.2 1.25 0.25 0. 2 0.75 0.25 0. 1 1 2 0.85 0.35 1.05 0.2 -0.125 0.125 0.3 0.45 -0.125 0.125 0. 3

5 0.

5 0.11875 (^) -0.35 0.225 (^) 0.15 0.15 (^) -0.35 0. 0. 5 Exemplo 3. Considere o seguinte sistema {

  • 3 x 1 + 1 x 2 + 1 x 3 = 2 2 x 1 + 5 x 2 + 1 x 3 = 5 2 x 1 + 3 x 2 + 7 x 3 =- 17 COM €≤ 0,01 .Usando o método de Jacobi com aproximação inicial X (^0 )^ = (1, 1, -1), obtemos os seguintes resultados: x 1 ( k^ +^1 )=

( 2 − x 2 ( k )− x 3 ( k ) ) x 2 ( k^ +^1 )=

( 5 −^2 x 1 ( k )− x 3 ( k ) ) x 3 ( k^ +^1 )=

(−^17 −^2 x 1 ( k )− 3 x 2 ( k ) ) X (^0 )^ = (1, 1, -1) x 1 (^1 )=

( 2 − x 2 ( 0 )− x 3 ( 0 ) )=-^

[ 2 −^1 −(^ -^1 )^ ]=-^

x 2 ( 1 ) =

(^5 −^2 x 1 ( 0 ) − x 3 ( 0 ) )=^

[ 5 − 2 ∗ 1 −( - 1 ) ]=

x 3 (^1 )=

(−^17 −^2 x 1 ( 0 )− 3 x 2 ( 0 ) )=

X (^1 )^ = (-^

, -^

x 1 (^2 )=

(^2 − x 2 ( 1 )− x 3 ( 1 ) )=-^

3 [

−(-

7 )]

3 (

35 )

3 (^

35 )

x 2 (^2 )=

(^5 −^2 x 1 ( 1 )− x 3 ( 1 ) )=^

5 [

(

3 )

(

7 )]

5 (

21 )

5 (

21 )

x 3 (^2 )=

(−^17 −^2 x 1 ( 1 )− 3 x 2 ( 1 ) )=^

7 [ − 17 − (^2) (-

3 )

5 ]

∗(- 17 −

15 )

∗(-

15 )

X (^2 )^ = (-^

, -^

Usando o método de Gauss- Seidel iniciando com x (0)^ = y (0)^ = 0. FAZER QUATRO ITERAÇÕES. x ( k + 1 ) = 23 − y ( k ) 10 e y ( k + 1 ) = 26 − x ( k + 1 ) 8 x ( 1 ) = 23 − y ( 0 ) 10

y ( 1 ) = 26 − x ( 1 ) 8

x ( 2 ) = 23 − y ( 1 ) 10

y ( 2 ) = 26 − x ( 1 ) 8

x ( 3 ) = 23 − y ( 2 ) 10

y ( 3 ) = 26 − x ( 2 ) 8

x ( 4 ) = 23 − y ( 3 ) 10

y ( 4 ) = 26 − x ( 3 ) 8

k (^) x ( k^ )^ ε (^) x ( k ) y ( k ) (^) ε y ( k )  0 0 – 0 – – 1 2.3 2.3 2.9625 2.9625 2. 2 2.00375 0.29625^ 2.99953125 0.03703125^ 0. 3 2.000046875 0.003703125^ 2.999994140625 0.000462890^ 0. 4 2.0000005859375 0.

8

0. 1 Resumindo: Método de Gauss - Seidel Seja o sistema linear AX = B , então o método de Gauss - Seidel , consiste em: (a) Partindo-se de uma aproximação inicial X ( 0 ) =( x 1 ( 0 ) , x 2 ( 0 ) , x 3 ( 0 ) ,⋯ , xn ( 0 ) ); (b) Calcula-se a sequência de iterações X (1), X (2), X (3), ⋯, , Xk ),..., aproximações de , utilizando-se as equações: x 1 ( k + 1 ) =

a 11 [ b 1 − a 12 x 2 ( k ) − a 13 x 3 ( k ) − a 1 : n − 1 xn − 1 ( k ) − a 1 n xn ( k ) ] x 2 ( k + 1 ) =

a 22 [ b 2 − a 21 x 1 ( k + 1 ) − a 23 x 3 ( k ) − a 2 : n − 1 xn − 1 ( k ) − a 2 n xn ( k ) ]

x 3 ( k + 1 ) =

a 33 [ b 3 − a 31 x 1 ( k + 1 ) − a 32 x 2 ( k + 1 ) − a 3 : n − 1 xn − 1 ( k ) − a 3 n xn ( k ) ] ⦙ xn ( k + 1 ) =

ann [ bnan 1 x 1 ( k + 1 ) − an 2 x 2 ( k + 1 ) − an : n − 2 xn − 2 ( k + 1 ) − an : n − 1 xn − 1 ( k + 1 ) ] Continua-se a gerar aproximações até que um dos critérios baixo seja satisfeito: | xi ( k + 1 ) − xi ( k ) 1 ≤i ≤n | max < ε (tolerância) ou^ k^ >^ M^ (número máximo de iterações) Exemplo 5: Resolva o sistema linear abaixo pelo método iterativo de Gauss - Seidel , com   5  10 –3^ ou k  6. Iniciar com X (0)^ = (0, 0, 0, 0) { 20 x 1 + 01 x 2 + 01 x 3 + 02 x 4 =33. 01 x 1 + 10 x 2 + 02 x 3 + 04 x 4 =38. 01 x 1 + 02 x 2 + 10 x 3 + 01 x 4 =43. 02 x 1 + 04 x 2 + 01 x 3 + 20 x 4 =45. Equações de iteração : x 1 ( k + 1 ) =

[ 33 − x 2 ( k ) − x 3 ( k ) − 2 x 4 ( k ) ] x 2 ( k + 1 ) =

[ 38.4− x 1 ( k + 1 ) − 2 x 3 ( k ) − 4 x 4 ( k ) ] x 3 ( k + 1 ) =

[ 43.5− x 1 ( k + 1 ) − 2 x 2 ( k + 1 ) − x 4 ( k ) ] x 4 ( k + 1 ) =

[ 45.6−^2 x 1 ( k + 1 ) − 4 x 2 ( k + 1 ) − x 3 ( k + 1 ) ] 1ª Iteração: X (0)^ = (0, 0, 0, 0) x 1 ( 1 ) =

[ 33 − x 2 ( 0 ) − x 3 ( 0 ) − 2 x (^) 4 ( 0 ) ] = 0.05(33 – 0 – 0 – 20) = 0.0533 = 1. x 2 ( 1 ) =

[ 38.4− x 1 ( 1 ) − 2 x 3 ( 0 ) − 4 x 4 ( 0 ) ] = 0.1(38.4 –^ 1.65^ – 20 – 40) = 0.136.75 = 3. x 3 ( 1 ) =

[ 43.5− x 1 ( 1 ) − 2 x 2 ( 1 ) − x 4 ( 0 ) ] = 0.1(43.5 –^ 1.65^ – 2 3.675^ – 0) = 0.134.5 = 3. x 4 ( 1 ) =

[ 45.6−^2 x 1 ( 1 ) − 4 x 2 ( 1 ) − x 3 ( 1 ) ] = 0.05(45.6 – 2 1.65^ – 4 3.675^ –^ 3.45 ) = 0.0524.15 =^ 1. 2ª Iteração: X (1)^ = (1.65, 3.675, 3.45, 1.2075) x 1 ( 2 ) =

[ 33 − x 2 ( 1 ) − x 3 ( 1 ) − 2 x 4 ( 1 ) ] = 0.05(33 – 3.675 – 3.45 – 21.2075) = 0.0523.46 = 1.

A solução obtida X (5)^ = (1.1999, 2.40002, 3.60001, 1.5), foi encontrada com a precisão desejada, isto é, E (5)^ = 0.0006  0.0005 = 5 10 –3^ = . k (^) x^ ( 1 k )^ ϵ (^) 1 ( k )^ x^ ( 2 k )^ ϵ 2 ( k )^ x^ ( 3 k )^ ϵ 3 ( k )^ x^ ( 4 k )^ ϵ (^) 4 ( k )^  0 0 –^0 –^0 –^0 –^ – 1 1.65 1.65 3.675 3.675 3.45 3.

5 1.2075 3. 2 1.173 0.477^ 2.5497 1.^

0 0.152 1. 7 0.2652 1. 3 3 1.1951 0.0221^ 2.4110 0.^

0

2 0.0255 0. 7 4 1.1996 0.0045 2.4006 0.

1

9

0. 4 5 1.1999 0.0003 2.4000 0.

0.0001 1.5 0. 0. 6