dcc008 - cálculo numérico - fisiocomp.ufjf.br · uma matriz é um conjunto de elementos (números...
TRANSCRIPT
DCC008 - Cálculo Numérico
Resolução de Sistemas de Equações Lineares
Bernardo Martins Rocha
Departamento de Ciência da Computação
Universidade Federal de Juiz de Fora
Conteúdo
I IntroduçãoI Conceitos fundamentaisI Métodos diretos
I Sistemas triangularesI Eliminação de GaussI Estratégias de PivoteamentoI Decomposição LUI Decomposição Cholesky e LDLT
I Usos da decomposiçãoI Métodos iterativos
I IntroduçãoI Métodos Iterativos EstacionáriosI Método de JacobiI Método de Gauss-SeidelI Análise de ConvergênciaI Método SOR
2 / 165
Introdução
Iremos estudar agora métodos computacionais para resolver umsistema de equações lineares da forma:
a11x1 + a12x2 + . . .+ a1nxn = b1
a21x1 + a22x2 + . . .+ a2nxn = b2...
...
am1x1 + am2x2 + . . .+ amnxn = bm
onde
aij ∈ R, bi ∈ R, xj ∈ R, i = 1, . . . ,m, j = 1, . . . , n
Chamamos aij de coe�cientes, bi são constantes dadas e xj são asvariáveis ou incógnitas do problema.
3 / 165
IntroduçãoExemplos de aplicações
Em uma vasta gama de problemas de ciências e engenharias asolução de um sistema de equações lineares é necessária. Podemosenumerar diversas áreas e problemas típicos, tais como:
I Solução de equações diferenciaisI Solução de EDPs através do método dos elementos �nitos,
diferenças �nitas ou volumes �nitos.I Solução de EDOs
I Programação linearI Análise de estruturasI Sistemas de equações não-linearesI Outros métodos numéricos
I Interpolação, mínimos quadrados, etc.
I Circuitos elétricos
4 / 165
IntroduçãoTensões em circuito elétrico
Calcular as tensões dos nós do circuito elétrico da �gura abaixo:
Modelagem do problema:I Lei de Kirchho�: a soma das correntes que passam em cada
nó do circuito é nula.I Lei de Ohm: a corrente do nó j para o nó k é dada pela
equaçãoIjk =
Vj−Vk
Rjk
5 / 165
IntroduçãoTensões em circuito elétrico
−6 2 1 13 −4 1 03 2 −13 61 0 2 −3
V1
V2
V3
V4
Nó 1: IA1 + I21 + I31 + I41 = 00−V11 + V2−V1
1 + V3−V12 + V4−V1
2 = 0
− 2V1 + V2 − V1 + V32 −
V12 + V4
2 −V12 = 0
− 4V1 + 2V2 + V3 − 2V1 + 2V4 = 0
−6V1 + 2V2 + V3 + V4 = 0
Nó 2:
3V1 − 4V2 + V3 = 0
Nó 3:
3V1 + 2V2 − 13V2 + 6V4 = −254
Nó 4:
V1 + 2V3 − 3V4 = 0
6 / 165
IntroduçãoTensões em circuito elétrico
−6 2 1 13 −4 1 03 2 −13 61 0 2 −3
V1V2V3V4
=
00−2540
Usando algum método que iremos estudar, encontramos a soluçãodeste sistema
V ∗ =
25.731.7549.641.6
ou seja V1 = 25.7V , V2 = 31.75V , V3 = 49.6V e V4 = 41.6V .
7 / 165
IntroduçãoEstruturas
Exemplo 1, Capítulo 3, Página, 105, Livro da Ruggiero.Determinar as forças que atuam nesta treliça.
Junção 2: ∑Fx = −αf1 + f4 + αf5 = 0∑Fy = −αf1 − f3 − αf5 = 0
Procedendo de forma análoga para todas as junções obtem-se umsistema linear de 17 equações e 17 variáveis (f1, . . . , f17).
8 / 165
Conceitos fundamentais
Antes de estudar os métodos para solução deste tipo de problema,vamos rever alguns conceitos fundamentais de Álgebra Linearnecessários para o desenvolvimento e análise dos métodos.
MatrizesUma matriz é um conjunto de elementos (números reais oucomplexos) dispostos de forma retangular. O tamanho ou dimensãoé de�nido pelo seu número de linhas e colunas. Uma matriz com mlinhas e n colunas é dita ser m× n (m por n) e se m = n, entãodizemos que a matriz é quadrada.
A =
a11 a12 . . . a1na21 a22 . . . a2n...
. . ....
am1 am2 . . . amn
Um elemento aij da matriz éreferenciado por 2 índices: oprimeiro indica a linha e osegundo a coluna.
9 / 165
Conceitos fundamentaisMatrizes especiais
I Matriz coluna e matriz linha
Matriz linha: 1× n[a11 a12 . . . a1n
]Matriz coluna: n× 1
a11a21...an1
I Matriz nula:
aij = 0, ∀i, jI Matriz diagonal:
dij = 0, ∀i 6= j
I Matriz identidade:
eij = 1, ∀i = j
eij = 0, ∀i 6= j
10 / 165
Conceitos fundamentaisMatrizes especiais
I Matriz triangular inferior: acima da diagonal principal é nula
bij = 0, ∀ i < j, Exemplo: B =
b11 0 0b21 b22 0b31 b32 b33
I Matriz triangular superior: abaixo da diagonal principal é nula
cij = 0, ∀ i > j, Exemplo: C =
c11 c12 c130 c22 c230 0 c33
I Matriz simétrica:
mij = mji, ∀ i, j
11 / 165
Conceitos fundamentaisOperações matriciais
TransposiçãoA transposta de uma matriz A, denotada por AT , é uma matrizobtida trocando-se as suas linhas pelas colunas.
Exemplo:
A =
1 2 34 5 67 8 910 11 12
, AT =
1 5 7 102 5 8 113 6 9 12
Adição e SubtraçãoSejam A e B matrizes m× n. Então a matriz C é m× n e seuselementos são dados por
cij = aij + bij , ∀ i, j12 / 165
Conceitos fundamentaisOperações matriciais
Multiplicação por escalarSeja A uma matriz m× n e seja k ∈ R um escalar qualquer. EntãoB = kA é tal que
bij = k aij , ∀ i, jMultiplicação matriz-vetorSeja A uma matriz m× n e x um vetor n× 1, então amultiplicação de A por x é
v = Ax ⇒ vi =
n∑j=1
aij xj , i = 1, 2, . . . ,m
Exemplo 1 23 45 6
[ 12
]=
51117
13 / 165
Conceitos fundamentaisOperações matriciais
Multiplicação matriz-matrizSeja A uma matriz m× p e B uma matriz p× n. O resultado damultiplicação AB é uma matriz C de tamanho m× n.
cij =
p∑k=1
aik bkj , i = 1, . . . ,m, j = 1, . . . , n
Exemplo:
A =
[3 1 0−1 6 4
], B =
−3 24 98 −1
C = AB =
[−5 1559 48
]14 / 165
Conceitos fundamentaisOperações matriciais
Produto Interno e Produto ExternoO produto interno ou escalar entre dois vetores x e y, ambos detamanho n resulta em um valor escalar k dado por
k = xTy = x1y1 + x2y2 + . . .+ xnyn =
n∑i=1
xi yi
O produto externo entre x(m× 1) e y(n× 1) resulta em umamatriz M de tamanho m× n dada por
mij = xi yj , i = 1, . . . ,m, j = 1, . . . , n
Exemplo:
x =
5−12
, y =
134
, xTy = 10, xyT = M =
5 15 20−1 −3 −42 6 8
15 / 165
Conceitos fundamentaisOperações matriciais
DeterminanteSeja A uma matriz quadrada de ordem n. Então A possui umnúmero associado chamado de determinante, o qual pode sercalculado pela seguinte fórmula:
det(A) = a11det(M11)−a12det(M12)+. . .+(−1)n+1a1ndet(M1n)
onde Mij é a matriz resultante da remoção da linha i e da coluna jda matriz A. Em particular
A = [a11] ⇒ det(A) = a11, A =
[a11 a12a21 a22
]⇒ det(A) = a11a22 − a12a21
A =
a11 a12 a13a21 a22 a23a31 a32 a33
det(A) = a11(a22a33 − a32a23)
− a12(a21a33 − a31a23)
+ a13(a21a32 − a31a22)
16 / 165
Conceitos fundamentaisOperações matriciais
De�nição (Matriz singular)Uma matriz com det(A) = 0 é dita singular. Por outro ladoquando det(A) 6= 0 dizemos que a matriz é não-singular.
De�nição (Vetores Linearmente Independentes)Um conjunto de vetores x1,x2, . . . ,xk é dito ser linearmenteindependente (LI) se
c1x1 + c2x2 + . . .+ ckxk = 0
somente se c1 = c2 = . . . = ck = 0. Caso contrário, isto é, quandoc1, c2, . . . , ck não são todos nulos, dizemos que o conjunto devetores é linearmente dependente (LD).
17 / 165
Conceitos fundamentaisOperações matriciais
De�nição (Posto)O posto (ou rank) de uma matriz A de tamanho m× n é de�nidocomo o número máximo de vetores linhas (ou de vetores colunas)linearmente independentes de A. Escrevemos posto(A) = r etemos que r ≤ min (m,n).
De�nição (Inversa)A inversa de uma matriz A quadrada n× n é representada porA−1 e de�nida de tal forma que
AA−1 = A−1A = I
onde I é a matriz identidade de ordem n.
A =
[2 14 3
], A−1 =
[32 −1
2−2 1
]18 / 165
Sistemas Lineares
Um sistema de equações lineares consiste em um conjunto de mequações polinomiais com n variáveis xi de grau um, isto é
a11x1 + a12x2 + . . .+ a1nxn = b1
a21x1 + a22x2 + . . .+ a2nxn = b2...
...
am1x1 + am2x2 + . . .+ amnxn = bm
o qual pode ser escrito da seguinte forma matricial Ax = b onde
A =
a11 a12 . . . a1na21 a22 . . . a2n...
. . ....
am1 am2 . . . amn
, x =
x1x2...xn
, b =
b1b2...bm
onde A é a matriz dos coe�cientes, b é o vetor dos termosindependentes e x é o vetor solução procurado.
19 / 165
Classi�cação de SistemasNúmero de Soluções
Vamos considerar apenas sistemas cujas matrizes dos coe�cientessão quadradas, isto é, onde A ∈ Rn×n.
Iremos tratar do caso onde A não é uma matriz quadrada e m > nmais adiante, quando estudarmos mínimos quadrados.
Para o sistema Ax = b, temos as seguintes possibilidades quantoao número de soluções:
(a) uma única solução
(b) in�nitas soluções
(c) sem solução
Vamos analisar cada caso em mais detalhes através de algunsexemplos de sistemas de equações lineares 2× 2.
20 / 165
Classi�cação de Sistemas
Caso (a) Única solução
x1 + x2 = 3
x1 − x2 = −1
[1 11 −1
] [x1x2
]=
[3−1
]⇒ x =
[12
]
4 3 2 1 0 1 2 3 44
2
0
2
4
6
8
21 / 165
Classi�cação de Sistemas
Caso (b) In�nitas Soluções
x1 + x2 = 1
2x1 + 2x2 = 2
[1 12 2
] [x1x2
]=
[12
]⇒ x =
[1− θθ
]
4 3 2 1 0 1 2 3 43
2
1
0
1
2
3
4
5x + y = 12x + 2y = 2
22 / 165
Classi�cação de Sistemas
Caso (c) Sem Solução
x1 + x2 = 1
x1 + x2 = 4⇒ 6 ∃x tal que Ax = b
4 3 2 1 0 1 2 3 44
2
0
2
4
6
8x + y = 1x + y = 4
23 / 165
Existência e unicidade da solução
A equação Ax = b possui uma única solução se e somente se amatriz A for não-singular. O Teorema a seguir, caracteriza anão-singularidade da matriz A.
TeoremaSeja A uma matriz quadrada n× n. As seguintes a�rmações sãoequivalentes:
a) A−1 existe
b) Não existe y não-zero tal que Ay = 0. Ou seja, a únicasolução do sistema homogêneo é y = 0.
c) posto(A) = n
d) det(A) 6= 0
e) Dado qualquer vetor b, existe exatamente um vetor x tal queAx = b (ou x = A−1b).
ProvaLivro texto de Álgebra Linear.
24 / 165
Existência e unicidade da solução
De fato, para os exemplos anteriores, temos
Caso (a)
det
([1 11 −1
])= −1− 1 = −2 6= 0⇒ OK, solução única
Caso (b)
det
([1 12 2
])= 2− 2 = 0
Caso (c)
det
([1 11 1
])= 1− 1 = 0
25 / 165
Métodos para solução de sistemas lineares
Iremos estudar agora diversos métodos numéricos para a solução desistemas de equações lineares. Vamos considerar que A é quadradae não-singular.
Os métodos de solução de sistemas lineares geralmente envolvem aconversão de um sistema quadrado em um sistema triangular quepossui a mesma solução que o original.
Inicialmente, vamos estudar como resolver sistemas linearestriangulares inferiores e superiores.
26 / 165
Sistema triangular inferior
Considere um sistema triangular inferior de ordem n dado porl11 0 0 . . . 0l21 l22 0 . . . 0...
. . .ln1 ln2 ln3 . . . lnn
x1x2...xn
=
b1b2...bn
A solução deste sistema é feita através de um procedimentochamado de substituição (ou substituições sucessivas):
l11x1 = b1 ⇒ x1 =b1
l11
l21x1 + l22x2 = b2 ⇒ x2 =b2 − l21x1
l22
.
.
.
ln1x1 + ln2x2 + . . .+ lnnxn = bn ⇒ xn =bn − ln1x1 − ln2x2 − . . .− lnn−1xn−1
lnn
27 / 165
Sistema triangular inferior
De forma geral para Lx = b temos
xi =
bi − i−1∑j=1
lij xj
/lii i = 1, . . . , n
Exemplo 2 0 0 03 5 0 01 −6 8 0−1 4 −3 9
x1x2x3x4
=
41480
Solução
2x1 = 4 ⇒ x1 = 2
3x1 + 5x2 = 1 ⇒ x2 =1−65 = −1
x1 − 6x2 + 8x3 = 48 ⇒ x3 =48−2−6
8 = 5
− x1 + 4x2 − 3x3 + 9x4 = 0 ⇒ x4 =2+4+15
9 = 219 28 / 165
Sistema triangular inferiorAlgoritmo
entrada: L ∈ Rn×n, b ∈ Rn
saída: x ∈ Rn
x(1) = b(1) / L(1,1);para i=2, ..., n faça
s = b(i);para j=1, ..., i-1 faça
s = s - L(i,j) * x(j);�m-parax(i) = s/L(i,i);
�m-para
29 / 165
Sistema triangular superior
O algoritmo análogo para o caso de um sistema triangular superiorUx = b é chamado de retro-substituição (ou substituiçõesretroativas).
u11 u12 u13 . . . u1n0 u22 u23 . . . u2n...
. . .0 0 0 . . . unn
x1x2...xn
=
b1b2...bn
e assim temos
unnxn = bn ⇒ xn =bn
unn
un−1n−1xn−1 + un−1nxn = bn−1 ⇒ xn−1 =bn−1 − un−1nxn
un−1n−1
.
.
.
u11x1 + u12x2 + . . .+ u1nxn = b1 ⇒ x1 =bn − u12x1 − u13x3 − . . .− u1nxn
u11
30 / 165
Sistema triangular superior
De forma geral para Ux = b temos
xi =
bi − n∑j=i+1
uij xj
/uii i = n, . . . , 1
Exemplo 2 4 −20 1 10 0 4
x1x2x3
=
248
Solução
4x3 = 8 ⇒ x3 = 2
x2 + x3 = 4 ⇒ x2 = 2
2x1 + 4x2 − 2x3 = 2 ⇒ x1 =2−8+4
2 = −22 = −1
31 / 165
Sistema triangular superiorAlgoritmo
entrada: U ∈ Rn×n, b ∈ Rn
saída: x ∈ Rn
x(n) = b(n)/U(n,n);para i=n-1, ..., 1 faça
s = b(i);para j=i+1, ..., n faça
s = s - U(i,j) * x(j);�m-parax(i) = s/U(i,i);
�m-para
32 / 165
Complexidade Computacional
Muitas vezes precisamos medir o custo de execução de umalgoritmo. Para isso usualmente de�nimos uma função decomplexidade que pode ser uma medida do tempo para o algoritmoresolver um problema cuja instância de entrada tem tamanho n (oumedir por exemplo o quanto de memória seria necessário paraexecução).
A complexidade de um algoritmo para solução de um sistema linearde ordem n é medida através do número de operações aritméticascomo adição, multiplicação e divisão.
Lembrando quen∑
i=1
i =n(n+ 1)
2
33 / 165
Complexidade Computacional
Substituição:
Divisão: n
Adição:n∑
i=2
(i− 1) =
n−1∑i=1
i =n(n− 1)
2
Multiplicação:n∑
i=2
(i− 1) =
n−1∑i=1
i =n(n− 1)
2
No total o algoritmo de substituição para sistemas triangularesinferiores realiza
n+n(n− 1)
2+n(n− 1)
2= n+ n2 − n = n2
operações de ponto �utuante.
34 / 165
Complexidade Computacional
Retro-substituição:
Divisão: n
Adição:n−1∑i=1
(n− i) = n(n− 1)− n(n− 1)
2=n(n− 1)
2
Multiplicação:n−1∑i=1
(n− i) = n(n− 1)− n(n− 1)
2=n(n− 1)
2
No total o algoritmo de retro-substituição para sistemastriangulares superiores realiza
n+n(n− 1)
2+n(n− 1)
2= n+ n2 − n = n2
operações de ponto �utuante.
35 / 165
Métodos para solução de sistemas lineares
Existem dois tipos de métodos para a solução de sistemas deequações lineares:
I Métodos diretosI Os métodos diretos são aqueles que conduzem à solução
exata após um número �nito de passos a menos de erros dearredondamento introduzidos pela máquina.
I Métodos iterativosI São aqueles que se baseiam na construção de sequências de
aproximações. Em um método iterativo, a cada passo, osvalores calculados anteriormente são usados para melhorar aaproximação. É claro que o método só será útil se a sequênciade aproximações construídas convergir para uma soluçãoaproximada do sistema.
36 / 165
Eliminação de Gauss
O primeiro método direto que iremos estudar é o método daeliminação de Gauss. A idéia fundamental do método é transformara matriz A em uma matriz triangular superior introduzindo zerosabaixo da diagonal principal, primeiro na coluna 1, depois na coluna2 e assim por diante.
x x x x
x x x x
x x x x
x x x x
→x x x x
0 x x x
0 x x x
0 x x x
→x x x x
0 x x x
0 0 x x
0 0 x x
→x x x x
0 x x x
0 0 x x
0 0 0 x
Por �m, usa-se a retro-substituição para obter a solução dosistema triangular superior obtido ao �nal dessa etapa deeliminação.
37 / 165
Eliminação de Gauss
Na eliminação de Gauss, as operações efetuadas para se obter amatriz triangular superior são tais que a matriz triangular obtidapossui a mesma solução que o sistema original.
De�nição (Sistema equivalente)Dois sistemas de equações lineares são equivalentes quandopossuem o mesmo vetor solução.
Um sistema pode ser transformado em um outro sistemaequivalente utilizando as seguintes operações elementares:
I trocar a ordem de duas equaçõesI multiplicar uma equação por uma constante não-nulaI somar um múltiplo de uma equação à outra
38 / 165
Eliminação de Gauss
Exemplo
3x1 + 5x2 = 9
6x1 + 7x2 = 4
Podemos subtrair da linha 2 ummúltiplo da linha 1, isto é
L′2 = L2 − 2L1
Efetuando esta operação obtemoso sistema equivalente
3x1 + 5x2 = 9
−3x2 = −14
7 6 5 4 3 2 1 0 11
0
1
2
3
4
5
6
7
7 6 5 4 3 2 1 0 11
2
3
4
5
6
39 / 165
Eliminação de Gauss
Vamos primeiro estudar um exemplo simples para posteriormentegeneralizar a idéia.
ExemploSeja o sistema
x1 + x3 = 0
x1 + x2 = 1
2x1 + 3x2 + x3 = 1
1 0 11 1 02 3 1
x1x2x3
=
011
Solução
Como podemos eliminar os coe�cientes abaixo da diagonal principalna primeira coluna?
L′2 = L2 − L1
L′3 = L3 − 2L1
1 0 1 00 1 −1 10 3 −1 1
40 / 165
Eliminação de Gauss
Exemplo - (cont.)
Precisamos agora de eliminar os coe�cientes abaixo da diagonal nasegunda coluna (a32). Como?
L′′3 = L′3 − 3L′2
1 0 1 00 1 −1 10 0 2 −2
Agora podemos usar a retro-substituição para encontrar facilmentea solução deste sistema:
2x3 = −2 ⇒ x3 = −1x2 − x3 = 1 ⇒ x2 = 1 + x3 = 1− 1 = 0
x1 + x3 = 0 ⇒ x1 = −x3 = 1
Encontramos assim a solução: xT =[1 0 −1
]41 / 165
Conteúdo
I Aula passadaI Conceitos fundamentaisI Sistemas triangularesI Eliminação de Gauss
I Aula de hojeI Eliminação de GaussI Estratégias de PivoteamentoI Decomposição LU
42 / 165
Revisitando a Eliminação de Gauss
Resolver o seguinte sistema 2 1 14 −6 0−2 7 2
x1x2x3
=
5−29
Passo 1
m21 =a21a11
= 4/2 = 2 ⇒ L′2 = L2 − 2L1
m31 =a31a11
= −2/2 = −1 ⇒ L′3 = L3 + L1
2 1 1 50 −8 −2 −120 8 3 14
43 / 165
Revisitando a Eliminação de Gauss
Passo 2 2 1 1 50 −8 −2 −120 8 3 14
m32 =a32a22
= 8/− 8 = −1 ⇒ L′′3 = L′3 + L′2
2 1 1 50 −8 −2 −120 0 1 2
Próxima etapa: resolver o sistema triangular superior obtido usandoo algoritmo de retro-substituição.
44 / 165
Eliminação de Gauss
De forma geral a11 a12 a13 . . . a1n b1a21 a22 a23 . . . a2n b2...
......
. . ....
...an1 an2 an3 . . . ann bn
Passo 1 (k=1): eliminamos os elementos abaixo da diagonal
principal na primeira coluna. Suponha que a11 6= 0. Então:
m21 = a21/a11
m31 = a31/a11...
mn1 = an1/a11
ou seja
mi1 = ai1/a11, i = 2 : n
Notação: i = 2 : n ⇔ i = 2, 3, . . . , n45 / 165
Eliminação de Gauss
Agora, multiplicamos a 1a equação por mi1 e subtraimos da i-ésimaequação, isto é
Para i = 2 : n a(1)ij = a
(0)ij −mi1 a
(0)1j
b(1)i = b
(0)i −mi1 b
(0)1 , j = 1 : n
Observe que não alteramos a primeira linha, pois i = 2 : n, logoesta permanece inalterada:
a(1)1j = a
(0)1j = a1j , b
(1)1 = b
(0)1 = b1
Após essa etapa zeramos todos os elementos abaixo da diagonalprincipal na 1a coluna.
a11 a12 a13 . . . a1n b10 a122 a123 . . . a12n b1
2
0 a132 a133 . . . a13n b13
......
.... . .
......
0 a1n2 a1n3 . . . a1nn b1n
46 / 165
Eliminação de Gauss
Passo 2 (k=2): consiste em introduzir zeros abaixo da diagonalprincipal na 2a coluna. Suponha a22 6= 0. De�nimos
mi2 = ai2/a22, i = 3 : n
e assim
para i = 3 : n a(2)ij = a
(1)ij −mi2 a
(1)2j
b(2)i = b
(1)i −mi2 b
(2)1 , j = 2 : n
o que resulta ema11 a12 a13 . . . a1n b10 a122 a123 . . . a12n b120 0 a233 . . . a23n b2
3...
......
. . ....
...0 0 a2n3 . . . a2nn b2
n
47 / 165
Eliminação de Gauss
Passo 3, Passo 4, ...Passo k: Considerando akk 6= 0, temos
mik = aik/akk, i = k + 1 : n
e assim fazemos
para i = k + 1 : n a(k)ij = a
(k−1)ij −mik a
(k−1)kj
b(k)i = b
(k−1)i −mik b
(k−1)k , j = k : n
Observe novamente que não alteramos as linhas de 1 a k.
48 / 165
Eliminação de Gauss
No processo de eliminação os elementos a11, a(1)22 , a
(2)33 , . . ., a
(k−1)kk
que aparecem na diagonal da matriz A são chamados de pivôs.
Se os pivôs não se anulam, isto é, se akk 6= 0, k = 1 : n, durante oprocesso, então a eliminação procede com sucesso e por �mchegamos ao seguinte sistema triangular superior
a11 a12 a13 . . . a1n−1 a1n b10 a122 a123 . . . a12n−1 a12n b120 0 a233 . . . a23n−1 a23n b23...
......
. . ....
...0 0 0 . . . 0 an−1nn bn−1
n
Em seguida resolvemos esse sistema usando retro substituição.
49 / 165
Eliminação de GaussAlgoritmo
entrada: matriz A ∈ Rn×n, vetor b ∈ Rn
saída: vetor solução x ∈ Rn
para k = 1 : n− 1 façapara i = k + 1 : n faça
m = A(i,k) / A(k,k);para j = k + 1 : n faça
A(i,j) = A(i,j) - m * A(k,j);�m-parab(i) = b(i) - m * b(k);
�m-para
�m-para
x = retroSubstituicao(A,b);retorna x;
50 / 165
Eliminação de GaussComplexidade Computacional
Novamente vamos contabilizar o número de operações aritméticasde ponto �utuante que são realizadas pelo algoritmo.
Para contar o número de operações realizadas na eliminação deGauss, vamos dividir o processo nas seguintes etapas:
(1) A→ U: o processo de transformar a matriz A em umamatriz triangular superior U
(2) b→ g: modi�cações no vetor b(3) Resolver Ux = g usando retro-substituição
I Já vimos que o número de operações deste algoritmo é n2
No que segue iremos usar
n∑i=1
i =n(n+ 1)
2
n∑i=1
i2 =n(n+ 1)(2n+ 1)
6
51 / 165
Eliminação de GaussComplexidade Computacional
(1) A→ U
I Divisões
n−1∑k=1
(n∑
i=k+1
1
)=
n−1∑k=1
(n− k)
= n(n− 1)−n−1∑k=1
k
= n(n− 1)− n(n− 1)
2
=n(n− 1)
2
52 / 165
Eliminação de GaussComplexidade Computacional
(1) A→ UI Adições
n−1∑k=1
n∑i=k+1
n∑j=k+1
1
=
n−1∑k=1
(n∑
i=k+1
(n− k)
)
=
n−1∑k=1
(n− k)(n− k)
=
n−1∑k=1
(n2 − 2kn+ k2)
= n2(n− 1)− 2nn(n−1)2 + (n−1)(n−1+1)(2n−2+1)
6
=n(n− 1)(2n− 1)
6
I Multiplicações
n(n− 1)(2n− 1)
6 53 / 165
Eliminação de GaussComplexidade Computacional
(2) b→ g
I Adições
n−1∑k=1
(n∑
i=k+1
1
)=
n−1∑k=1
(n− k)
= n(n− 1)−n−1∑k=1
k
= n(n− 1)− n(n− 1)
2
=n(n− 1)
2
I Multiplicações
n(n− 1)
2
54 / 165
Eliminação de GaussComplexidade Computacional
(Total)Em cada etapa temos
(1) 23n
3 − n2
2 −n6
(2) n2 − nAssim nas etapas (1) e (2) temos um total de 2
3n3 + n2
2 −76n.
Considerando que na etapa de retro-substituição (3) temos n2
operações, no total o algoritmo de eliminação de Gauss realiza umtotal de
2n3
3+n2
2− 7n
6︸ ︷︷ ︸eliminação
+ n2︸︷︷︸retro-substituição
=2n3
3+
3n2
2− 7n
6
55 / 165
Eliminação de Gauss
Para um valor de n muito grande, o algoritmo realizaaproximadamente 2
3n3 operações de ponto �utuante.
ExemploSe um sistema linear tem tamanho n = 100, então:
I resolver o sistema triangular: 1002 = 10 000 operaçõesI eliminação de gauss: 681 550 operações
Ou seja, nesse exemplo, a eliminação de Gauss é 68× mais lentaque a solução de um sistema triangular !!!
56 / 165
Eliminação de Gauss
Mas, e se na etapa k da eliminação de Gauss, o pivô for zero?Isso signi�ca que akk = 0, e assim, teríamos
mik =aikakk⇒ divisão por zero!
Nesse caso, se um pivô for zero, o processo de eliminação tem queparar, ou temporariamente ou permanentemente.
O sistema pode ou não ser singular.
Se o sistema for singular, i.e, det(A) = 0, e portanto como vimos osistema não possui uma única solução.
Veremos agora um caso que a matriz não é singular e podemosresolver esse problema.
57 / 165
Estratégia de Pivoteamento
Vamos ilustrar a idéia do pivoteamento através de um exemplo.Considere a seguinte matriz.
A =
1 1 12 2 54 6 8
Vamos proceder com a eliminação de Gauss.
m21 = 2, a12j = a02j − 2 a01j
m31 = 4, a13j = a03j − 4 a01j , j = 1 : 3
Então obtemos 1 1 10 0 30 2 4
58 / 165
Estratégia de Pivoteamento
No próximo passo, o pivô é a22 e usamos ele para calcular m32.Entretanto
m32 =a32a22
=2
0
Divisão por zero! E agora, o que podemos fazer?
Podemos realizar uma operação elementar de troca de linhas. Comovimos este tipo de operação quando realizado em um sistema, nãoaltera a solução. Sendo assim, vamos trocar as linhas 2 e 3.1 1 1
0 0 30 2 4
⇒
1 1 10 2 40 0 3
E assim chegamos a um sistema triangular superior, cuja soluçãopode ser obtida usando a retro-substituição.
59 / 165
Estratégia de Pivoteamento
A estratégia de pivoteamento é importante pois:I evita a propagação de erros numéricos
I nos fornece meios de evitar problemas durante a eliminação deGauss quando o pivô akk no passo k é igual a zero eprecisamos calcular o multiplicador
mik =aikakk
Assim, através da troca de linhas, podemos encontrar uma linha detal forma que o novo pivô é não-zero, permitindo que a eliminaçãode Gauss continue até obter uma matriz triangular superior.
Temos duas possibilidades:I pivoteamento parcialI pivoteamento total
60 / 165
Pivoteamento Parcial
No pivoteamento parcial, em cada passo k, o pivô é escolhidocomo o maior elemento em módulo abaixo de akk (inclusive),isto é
Encontrar r tal que: |ark| = max |aik|, k ≤ i ≤ n
Feita a escolha do pivô, trocamos as linhas r e k e o algoritmoprocede.
Isso evita a propagação de erros numéricos, pois:I O pivoteamento parcial garante que
|mik| ≤ 1
I Se akk for muito pequeno, consequentemente mik será muitogrande. Dessa forma, após a multiplicação por mik podemosampliar erros de arredondamento envolvidos no processo.
I Também evitamos o erro que pode ser causado quandosomamos um número pequeno com um número grande.
61 / 165
Pivoteamento Parcial
ExemploAplique a eliminação de Gauss com pivoteamento parcial noseguinte sistema: 2 4 −2 2
4 9 −3 8−2 −3 7 10
A cada passo k:
I encontrar o pivô do passo kI se necessário, trocar as linhasI calcular multiplicador mik
I para i = k + 1 : n, calcular
a(k)ij = a
(k−1)ij −mik a
(k−1)kj
b(k)i = b
(k−1)i −mik b
(k−1)k , j = k : n
62 / 165
Pivoteamento Parcial
Exemplo - (cont.)Passo 1Escolha do pivô: max {2, 4, 2} = 4. Trocar as linhas 1 e 2. 2 4 −2 2
4 9 −3 8−2 −3 7 10
⇒
4 9 −3 82 4 −2 2−2 −3 7 10
m21 = 2/4 = 1/2 ⇒ a12j = a02j − 1
2a01j
m31 = −2/4 = −1/2 ⇒ a13j = a03j +12a
01j , j = 1 : 3
4 9 −3 80 −1
2 −12 −2
0 32
112 14
63 / 165
Pivoteamento Parcial
Exemplo - (cont.)Passo 2Escolha do pivô: max {12 ,
32} =
32 . Trocar as linhas 2 e 3. 4 9 −3 8
0 −12 −1
2 −20 3
2112 14
⇒
4 9 −3 80 3
2112 14
0 −12 −1
2 −2
m32 = −1223 = −1
3 ⇒ a23j = a13j +13a
12j , j = 2 : 3
4 9 −3 80 3
2112 14
0 0 43
83
64 / 165
Pivoteamento Parcial
Exemplo - (cont.)Retro-substituição
4 9 −3 80 3
2112 14
0 0 43
83
43x3 =
83 ⇒ x3 = 2
32x2 + 211
2 = 14 ⇒ x2 = 2
4x1 + 9(2)− 3(2) = 8 ⇒ x1 = −1
Portanto a solução é xT = [−1, 2, 2].
65 / 165
Pivoteamento Parcial
Exemplo (efeitos numéricos)Considere o seguinte sistema:[
0.0001 11 1
] [x1x2
]=
[12
]Usando um sistema de ponto �utuante F (10, 3,−10, 10) (sistemadecimal com 3 dígitos na mantissa), com arredondamento, encontrea solução do sistema usando eliminação de Gausssem pivoteamento.
SoluçãoTemos que
m21 =1
0.0001= 10000 ⇒ L
′2 = L2 − 10000L1
66 / 165
Pivoteamento Parcial
Solução (efeitos numéricos) - Cont.[0.0001 1 1
0 −10000∗ −10000∗∗]
Note que (∗) foi obtido como
1− 10000× 1 = 0.00001× 105 − 0.10000× 105
= 0.09999× 105
= (arredondando) = 0.100× 105
e de forma análoga para (∗∗), temos
2− 10000× 1 = 0.00001× 105 − 0.10000× 105
= 0.09998× 105
= (arredondando) = 0.100× 105
67 / 165
Pivoteamento Parcial
Solução (efeitos numéricos) - Cont.Por �m, aplicando a retrosubstituição obtemos uma solução errada,devido aos erros de aritmética em ponto �utuante cometidos em(∗) e (∗∗) durante a soma/subtração de números muito pequenoscom números muito grandes.
Solução obtida → xT =[0 1
]A solução exata é dada por
Solução exata → xT =[1.00010001 0.99989999
]
68 / 165
Pivoteamento Parcial
Se durante o processo de eliminação com pivoteamento parcial nopasso k não houver nenhuma entrada não-zero abaixo de akk nacoluna k, como no exemplo abaixo (depois do passo 1):
x x x x x0 0 x x x0 0 x x x0 0 x x x0 0 x x x
então:
I podemos seguir para o próximo passo e completar a eliminaçãoI entretanto a matriz triangular superior U resultante do
processo possui um zero na diagonal principal, o que implicaque
det U = 0 ⇒ U é singular ⇒ A é singular
69 / 165
Pivoteamento ParcialAlgoritmo
para k = 1 : n− 1 façaw = |A(k,k)|;para j = k : n faça
se |A(j,k)| > w entãow = |A(j,k)|;r = j;
�m-se
�m-paratrocaLinhas(k,r);para i = k + 1 : n faça
m = A(i,k) / A(k,k);para j = k + 1 : n faça
A(i,j) = A(i,j) - m*A(k,j) ;�m-parab(i) = b(i) - m*b(k) ;
�m-para
�m-parax = retroSubstituicao(A,b) ;retorna x ;
70 / 165
Pivoteamento Total
Na estratégia de pivoteamento total, o elemento escolhido comopivô é o maior elemento em módulo que ainda atua no processo deeliminação, isto é:
Encontrar r e s tais que: |ars| = max |aij |, k ≤ i, j ≤ n
Feita a escolha do pivô é preciso trocar as linhas k e r e as colunask e s.
Observe que a troca de colunas afeta a ordem das incógnitas dovetor x.
Em geral o pivoteamento parcial é satisfatório, e o pivoteamentototal não é muito usado devido ao alto esforço computacionalrequerido na busca pelo maior elemento em módulo no resto damatriz.
71 / 165
Estratégias de Pivoteamento
maior elemento em valor absoluto maior elemento
em valor absoluto
Pivoteamento Parcial Pivoteamento Total
72 / 165
Decomposição LU
Uma matriz quadrada pode ser escrita como o produto de duasmatrizes L e U, onde
I L é uma matriz triangular inferior unitária (com elementos dadiagonal principal igual a 1)
I U é uma matriz triangular superior
Ou seja, a matriz pode ser escrita como
A = LU
Dessa forma para resolver o sistema linear Ax = b usamos A emsua forma decomposta, isto é
Ax = b ⇒ LUx = b
Então de�nimosUx = y
73 / 165
Decomposição LU
Assim para resolverL Ux︸︷︷︸
y
= b
fazemosLy = b ⇒ Ux = y
isto é, temos os seguintes passos:
1. Como L é triangular inferior podemos resolver Ly = bfacilmente usando o algoritmo de substituição. Assimencontramos o vetor y.
2. Em seguida substituimos y no sistema Ux = y. Como U éuma matriz triangular superior, podemos resolver este sistemausando o algoritmo da retro-substituição para encontrar asolução x.
Vamos ver agora em que condições podemos decompor uma matrizA na forma LU.
74 / 165
Decomposição LU
Teorema (LU)Sejam A = (aij) uma matriz quadrada de ordem n e Ak o menorprincipal, constituído das k primeiras linhas e k primeiras colunasde A.
Assumimos que det(Ak) 6= 0 para k = 1, 2, . . . , n− 1.
Então existe:
I uma única matriz triangular inferior L = (lij) comlii = 1, i = 1 : n
I uma única matriz triangular superior U = (uij)
tal que A = LU.
Além disso, det(A) = u11u22 . . . unn.
Prova (Neide, Página 123)Usa indução matemática.
75 / 165
Decomposição LU
Prova(i) Para n = 1 temos
a11 = 1 a11 = 1 u11 ⇒ u11 = a11, l11 = 1
e ainda det(A) = u11.
(ii) Assumimos que o teorema é verdadeiro para n = k− 1, ou seja,que toda matriz de ordem (k − 1) é decomponível no produto LU.
(iii) Vamos mostrar que podemos decompor A para n = k. Seja Ade ordem k, escrita da forma
A =
[Ak−1 rs akk
](1)
Por hipótese de indução temos que
Ak−1 = Lk−1Uk−1 (2)76 / 165
Decomposição LU
Prova (cont.)Usando (2) temos
A = LU ⇒ L =
[Lk−1 0m 1
], U =
[Uk−1 p0 ukk
]onde m, p e ukk são desconhecidos. Efetuando o produto temos
LU =
[Lk−1Uk−1 Lk−1pmUk−1 mp+ ukk
](3)
Comparando (1) e (3)
A =
[Ak−1 rs akk
]=
[Lk−1Uk−1 Lk−1pmUk−1 mp+ ukk
]
77 / 165
Decomposição LU
Prova (cont.)Assim
Ak−1 = Lk−1Uk−1
r = Lk−1p
s = mUk−1
mp+ ukk = akk
Observe que
I pela hip. de indução Lk−1 e Uk−1 são unicamentedeterminadas
I e ainda, Lk−1 e Uk−1 não são singulares, caso contrárioAk−1 também seria, contrariando a hipótese
78 / 165
Decomposição LU
Prova (cont.)Portanto
r = Lk−1p ⇒ p = L−1k−1r
s = mUk−1 ⇒ m = sU−1k−1
mp+ ukk = akk ⇒ ukk = akk −mp
Ou seja, m, p e ukk são determinados unicamente nesta ordem e,portanto, L e U são determinados unicamente.Finalmente
det(A) = det(L)det(U) = 1 det(U) = u11u22 . . . unn
79 / 165
Decomposição LUObtenção das matrizes L e U
Podemos obter as matrizes L e U aplicando a de�nição de produtoe igualdade de matrizes, ou seja, impondo que A seja igual a LU,onde L é triangular inferior unitária e U triangular superior. Então
LU =
1 0 0 . . . 0l21 1 0 . . . 0l31 l32 1 . . . 0...
.... . . 1 0
ln1 ln2 ln3 . . . 1
u11 u12 u13 . . . u1n0 u22 u23 . . . u2n0 0 u33 . . . u3n...
......
. . ....
0 0 0 0 unn
Vamos obter os elementos de L e U da seguinte forma:
I 1a linha de U
I 1a coluna de L
I 2a linha de U
I 2a coluna de L
I ...80 / 165
Decomposição LUObtenção das matrizes L e U
1a linha de U
a11 = 1 u11 ⇒ u11 = a11
a12 = 1 u12 ⇒ u12 = a12
. . .
a1n = 1 u1n ⇒ u1n = a1n
1a coluna de L
a21 = l21 u11 ⇒ l21 =a21u11
a31 = l31 u11 ⇒ l31 =a31u11
. . .
an1 = ln1 u11 ⇒ ln1 =an1u11
81 / 165
Decomposição LUObtenção das matrizes L e U
2a linha de U
a22 = l21u12 + 1 u22 ⇒ u22 = a22 − l21u12a23 = l21u13 + 1 u23 ⇒ u23 = a23 − l21u13. . .
a2n = l21u1n + 1 u2n ⇒ u2n = a2n − l21u1n2a coluna de L
a32 = l31u12 + l32u22 ⇒ l32 =a32 − l31u12
u22
a42 = l41u12 + l42u22 ⇒ l42 =a42 − l41u1
u22. . .
an2 = ln1u12 + ln2u22 ⇒ ln2 =an2 − ln1u12
u22
82 / 165
Decomposição LUObtenção das matrizes L e U
De forma geral temos
uij = aij −i−1∑k=1
lik ukj , i ≤ j
lij =
(aij −
j−1∑k=1
lik ukj
)/ujj , i > j
83 / 165
Decomposição LUObtenção das matrizes L e U
para i = 1 : n façapara j = i : n faça
uij = aij −∑i−1
k=1 lik ukj ;�m-parapara j = i+ 1 : n faça
lij =(aij −
∑j−1k=1 lik ukj
)/ujj ;
�m-para
�m-para
Observação: na prática as matrizes L e U nunca são criadas ealocadas explicitamente. O que fazemos é sobrescrever as entradasda matriz original A com as entradas de L e U.
84 / 165
Decomposição LUVia eliminação de Gauss
O método da eliminação de Gauss pode ser interpretado como ummétodo para obtenção das matrizes L e U. No processo da EG nopasso 1, eliminamos as entradas abaixo de a11 na coluna 1 damatriz fazendo
Para i = 2 : n mi1 =ai1a11
a1ij = a0ij −mi1 a01j
b1i = b0i −mi1 b01, j = 1 : n
essa operação é equivalente a multiplicar (A|b)0 por uma matrizM1, para obter (A|b)1, onde
M1 =
1 0 0 . . . 0−m21 1 0 . . . 0−m31 0 1 . . . 0
......
.... . . 0
−mn1 0 . . . 0 1
85 / 165
Decomposição LU
Assim
M1(A|b)0 =
1 0 0 . . . 0−m21 1 0 . . . 0−m31 0 1 . . . 0
......
.... . . 0
−mn1 0 . . . 0 1
a11 a12 . . . a1n b1a21 a22 . . . a2n b2a31 a32 . . . a3n b3...
.... . .
......
an1 an2 . . . ann bn
=
a11 a12 . . . a1n b10 a122 . . . a12n b120 a132 . . . a13n b13...
.... . .
......
0 a1n2 . . . a1nn b1n
= (A|b)1
86 / 165
Decomposição LU
No passo seguinte temos
(A|b)2 = M2(A|b)1
M2(A|b)1 =
1 0 0 . . . 00 1 0 . . . 00 −m32 1 . . . 0...
......
. . . 00 −mn2 . . . 0 1
a11 a12 . . . a1n b10 a122 . . . a12n b120 a132 . . . a13n b13...
.... . .
......
0 a1n2 . . . a1nn b1n
=
a11 a12 . . . a1n b10 a122 . . . a12n b120 0 . . . a23n b23...
.... . .
......
0 0 . . . a2nn b2n
= (A|b)2
87 / 165
Decomposição LU
Procedemos dessa forma, até que por �m temos
(A|b)(n−1) = Mn−1(A|b)(n−2)
= . . . = Mn−1Mn−2 . . .M2M1︸ ︷︷ ︸M
(A|b)(0)
Deste modo temos
A(n−1) = MA = U
onde U é a matriz triangular superior da decomposição LU. ComoM é um produto de matrizes não-singulares, M é inversível, isto é,
M = Mn−1Mn−2 . . .M2M1
M−1 = M−11 M−12 . . .M−1n−2M−1n−1
Portanto
MA = U ⇒ A = M−1︸ ︷︷ ︸L
U
88 / 165
Decomposição LU
MA = U ⇒ A = M−1︸ ︷︷ ︸L
U
onde
M−1 = L =
1 0 0 . . . 0m21 1 0 . . . 0m31 m32 1 . . . 0...
......
. . . 0mn1 mn2 mn3 . . . 1
é a matriz triangular inferior da decomposição LU.
89 / 165
Decomposição LU
Exemplo 1Decomponha a matriz A dada abaixo nos fatores L e U, usando aeliminação de Gauss.
A =
2 1 1 04 3 3 18 7 9 56 7 9 8
Solução do Exemplo 1
A =
2 1 1 04 3 3 18 7 9 56 7 9 8
=
1 0 0 02 1 0 04 3 1 03 4 1 1
︸ ︷︷ ︸
L
2 1 1 00 1 1 10 0 2 20 0 0 2
︸ ︷︷ ︸
U 90 / 165
Decomposição LU
Exemplo 2Resolva o seguinte sistema linear:1 2 −1
2 3 −21 −2 1
x1x2x3
=
230
Solução do Exemplo 2
A = LU =
1 0 02 1 01 4 1
1 2 −10 −1 00 0 2
, x∗ =
111
91 / 165
Decomposição LUCálculo do Determinante
Veremos como utilizar a decomposição A = LU para calcular odeterminante da matriz.
det(A) = det(L)det(U)
O determinante de uma matriz triangular é dado pelo produto doselementos da diagonal principal, isto é
det(L) = 1
det(U) = u11u22u33 . . . unn
Portanto
det(A) = det(L) det(U)
= 1 det(U)
= u11u22u33 . . . unn
92 / 165
Decomposição LUCálculo do Determinante
Exemplo 2Para o exemplo anterior, temos
A =
1 0 02 1 01 4 1
1 2 −10 −1 00 0 2
Portanto o determinante é
det(A) = 1 (−1) 2 = −2
93 / 165
Decomposição LU com Pivoteamento Parcial
Vamos estudar agora o uso de pivoteamento parcial para adecomposição LU.
Para de�nir o que signi�ca, de forma matricial, a troca de duaslinhas de uma matriz, iremos apresentar o conceito de matrizes depermutação.
Uma matriz de permutação é uma matriz obtida a partir da matrizidentidade através de uma reordenação de suas linhas, isto é
P =
0 0 10 1 01 0 0
Portanto se P é uma matriz de permutação e A uma matrizqualquer, então
I PA é uma versão da matriz A com as linhas permutadasI AP é uma versão da matriz A com as colunas permutadas
94 / 165
Decomposição LU com Pivoteamento Parcial
Na prática (implementação) uma matriz de permutação P dedimensão n× n nunca é armazenada explicitamente. É muito maise�ciente representar P por um vetor p de valores inteiros detamanho n.
Uma forma de implementar isso é fazer com que p[k] seja o índiceda coluna que tem apenas um "1"na k-ésima linah de P. Para oexemplo anterior
p = [3 2 1]
Para aplicar a estratégia de pivoteamento parcial nos exercícios,basta trocar efetivamente as linhas da matriz. Vejamos umexemplo.
95 / 165
Decomposição LU com Pivoteamento Parcial
Para resolver Ax = b, segue-se o procedimento:I Calcular P, L e U tal que PA = LU
I Atualizar vetor b = Pb
I Resolver Ly = b
I Resolver Ux = y
Dicas para calcular L e U via eliminação de Gauss compivoteamento:
I se trocar linhas, atualizar o vetor p;I guardar os multiplicadores da eliminação de Gauss na posição
que foi zerada, ao invés de colocar os zeros.
96 / 165
Decomposição LU com Pivoteamento Parcial
Exemplo 3Resolver o sistema linear abaixo usando a decomposição LU compivoteamento parcial.3 −4 1
1 2 24 0 −3
x1x2x3
=
93−2
Solução do Exemplo 3
L =
1 0 034 1 014 −1
2 1
, U =
4 0 −30 −4 13
40 0 35
8
, p =[3 1 2
]
xT =[1 −1 2
]97 / 165
Decomposição LU com Pivoteamento Parcial
Solução do Exemplo 3 - Passo a passoEtapa 1 3 −4 1
1 2 24 0 −3
, p =[1 2 3
]Troca as linhas 1 e 3 e atualiza vetor p4 0 −3
1 2 23 −4 1
, p =[3 2 1
]Elimina e guarda os multiplicadores nas suas posições (em azul): 4 0 −3
1/4 2 11/43/4 −4 13/4
, p =[3 2 1
]98 / 165
Decomposição LU com Pivoteamento Parcial
Solução do Exemplo 3 - Passo a passoEtapa 2 4 0 −3
1/4 2 11/43/4 −4 13/4
, p =[3 2 1
]Troca as linhas 2 e 3 e atualiza vetor p 4 0 −3
3/4 −4 13/41/4 2 11/4
, p =[3 1 2
]Elimina e guarda os multiplicadores nas suas posições (em azul): 4 0 −3
3/4 −4 13/41/4 −1/2 35/8
, p =[3 1 2
]99 / 165
Decomposição LU com Pivoteamento Parcial
Solução do Exemplo 3 - Passo a passoResultado 4 0 −3
3/4 −4 13/41/4 −1/2 35/8
, p =[3 1 2
]Decomposição PA = LU:
P =
0 0 11 0 00 1 0
, A =
3 −4 11 2 24 0 −3
L =
1 0 03/4 1 01/4 −1/2 1
, U =
4 0 −30 −4 13/40 0 35/8
100 / 165
Decomposição LU com Pivoteamento Parcial
Solução do Exemplo 3Para resolver PAx = Pb ⇒ LUx = Pb, de�ne-se Ux = y eentão:
1. Resolva Ly = Pb
2. Resolva Ux = y
Procedendo desta forma, chega-se em
L =
1 0 034 1 014 −1
2 1
, U =
4 0 −30 −4 13
40 0 35
8
, p =[3 1 2
]
xT =[1 −1 2
]
101 / 165
Conteúdo
I Aula passadaI Eliminação de GaussI Estratégias de PivoteamentoI Decomposição LU
I Aula de hojeI Decomposição de CholeskyI Decomposição LDLT
I Cálculo da Matriz InversaI Sistema com Matriz Singular
102 / 165
Revisitando algumas de�nições
De�nição (Matriz Simétrica)Uma matriz real A ∈ Rn×n é simétrica se possui as mesmasentradas acima e abaixo da diagonal principal, isto é, se
aij = aji, ∀ i, j
Portanto A = AT .
Tais matrizes satisfazem a seguinte relação
xTAy = yTAx, ∀ x,y ∈ Rn
De�nição (Matriz Positiva De�nida)Se a matriz A é simétrica, então é dita ser positiva de�nida se
xTAx > 0, ∀x 6= 0
103 / 165
Revisitando algumas de�nições
Matriz Positiva De�nida: de imediato veri�ca-se que se A é nãosingular, caso contrário haveria um x diferente de zero tal queAx = 0.
Além disso, escolhendo vetores escritos na forma
xT =[x1 x2 . . . xk 0 0 . . . 0
]podemos veri�car que todas as matrizes menores principais (Ak)são positivas de�nidas, portanto não singular (det(Ak) 6= 0) econsequentemente podemos decompor A na forma A = LU.
Na prática muitas matrizes que surgem em aplicações deengenharias e ciências são simétricas e positiva de�nidas, devido aleis físicas que estão por trás da origem dessas matrizes.
104 / 165
Testes para matrizes positivas de�nidas
1. Critério de Sylvester: uma matriz A ∈ Rn×n é positivade�nida, se e somente se
det(Ak) > 0, k = 1, 2, . . . , n
onde Ak é a matriz menor principal de ordem k (a matrizk × k formada pelas k primeiras linhas e pelas k primeirascolunas).
2. Se realizarmos a eliminação de Gauss sem troca de linha oucoluna na matriz A, podemos dizer que A é positiva de�nida,se e somente se, todos os pivôs forem positivos.
ExemploVeri�que se as seguintes matrizes são positivas de�nidas:
A =
4 1 21 3 02 0 5
, B =
4 4 24 3 02 0 5
, K =
2 −1 0−1 2 −10 −1 2
105 / 165
Decomposição de Cholesky
Quando a matriz do sistema linear é simétrica, podemos simpli�caros cálculos da decomposição LU levando em conta a simetria damatriz. Essa é a idéia do método de Cholesky.
Se A é simétrica positiva de�nida, pelo critério de Sylvester temosque
det(Ak) > 0
portanto, todos os menores principais são não singulares econsequentemente (Teorema LU), a matriz pode ser escrita comoA = LU.
Se A é simétrica, então A = AT . Logo
LU = A = AT = (LU)T = UTLT
106 / 165
Decomposição de Cholesky
Assim
LU = UTLT
L−1LU = L−1UTLT
U = L−1UTLT
U(LT )−1 = L−1UTLT (LT )−1
U(LT )−1 = L−1UT
Temos queU(LT )−1︸ ︷︷ ︸
triangular superior
= L−1UT︸ ︷︷ ︸triangular inferior
Portanto, essa igualdade só pode ser uma matriz diagonal!Seja
D = U(LT )−1 (ou D = L−1UT )
107 / 165
Decomposição de Cholesky
Seja
D = U(LT )−1 (ou D = L−1UT )
então
DLT = U (ou UT = LD)
Sendo assim temos que
A = LDLT = UTDU (4)
E assim o determinante pode ser calculado como
det(A) = det(L)det(D)det(LT ) = 1 · (d11d22 . . . dnn) · 1= d11d22 . . . dnn
108 / 165
Decomposição de Cholesky
Assim de (4), como todos dii > 0, podemos escrever
A = LDLT = L(D)1/2(D)1/2LT = GGT
onde
G = L(D)1/2
GT = (D)1/2LT
A decomposição de Cholesky é um caso especial da fatoração LUaplicada para matrizes simétricas e positiva de�nida (SPD) e suadecomposição pode ser obtida a partir de
A = GGT
onde G é uma matriz triangular inferior tal que
A =
a11 a12 . . . a1na21 a22 . . . a2n...
.
.
.. . .
.
.
.
an1 an2 . . . ann
=
g11 0 . . . 0g21 g22 . . . 0...
.
.
.. . . 0
gn1 gn2 . . . gnn
g11 g21 . . . gn1
0 g22 . . . g2n...
.
.
.. . .
.
.
.
0 0 . . . gnn
109 / 165
Decomposição de Cholesky
Pelo produto e igualdade de matrizes podemos obter os elementosde G. Elementos da diagonal principal:
a11 = g211
a22 = g221 + g222...
ann = g2n1 + g2n2 + . . .+ g2nn
de forma geral
gii =
√√√√aii −i−1∑k=1
g2ik , i = 1 : n (5)
110 / 165
Decomposição de Cholesky
Para os elementos fora da diagonal principal, temos
a21 = g21g11
a31 = g31g11...
an1 = gn1g11
a32 = g31g21 + g32g22
a42 = g41g21 + g42g22...
an2 = gn1g21 + gn2g22
de forma geral
gij =
aij −j−1∑k=1
gikgjk
gjj, i = j + 1 : n, j = 1 : n (6)
111 / 165
Decomposição de CholeskyAlgoritmo
Observando as equações (5) e (6), vemos que podemos calcular oselementos de G da seguinte forma:
I a cada passo j:I calcula-se termo da diagonal principal gjjI calcula-se termos da coluna j abaixo da diagonal principal isto
é gij com i = j + 1 : n
para j = 1 : n faça
gjj =
√√√√ajj −j−1∑k=1
g2jk ;
para i = j + 1 : n faça
gij =
(aij −
j−1∑k=1
gikgjk
)/gjj ;
�m-para
�m-para
112 / 165
Decomposição de Cholesky
Observações:I Se A é SPD, então a aplicação do método de Cholesky requer
menos operações de ponto �utuante do que a decomposiçãoLU.
I Como A é positiva de�nida, isto garante que só teremos raízesquadradas de números positivos, isto é, os termosajj −
∑j−1k=1 g
2jk são sempre maiores do que zero.
I Exemplo do caso 2× 2
I Caso o algoritmo falhe, podemos concluir que A não ésimétrica e positiva de�nida.
I Determinante
det(A) = det(G)det(GT ) = det(G)2 = (g11g22 . . . gnn)2
113 / 165
Decomposição de Cholesky
Podemos usar a decomposição de Cholesky para encontrar asolução de Ax = b da seguinte forma:
1. Determinar a decomposição
A = GGT
então
GGTx︸ ︷︷ ︸y
= b
2. Resolver Gy = b, usando substituição
3. Resolver GTx = y, retro-substituição
114 / 165
Decomposição de Cholesky
ExemploConsidere a matriz
A =
4 −2 2−2 10 −72 −7 30
a) Veri�car se A satisfaz as condições da decomposição de
Cholesky
b) Decompor A em GGT
c) Calcular o determinante
d) Resolver o sistema Ax = b com b =
811−31
115 / 165
Decomposição de Cholesky
Solução do Exemplo
a) A é simétrica e positiva de�nida
det(A1) = 4, det(A2) = 36, det(A3) = 900
b) A decomposição é
A =
2 0 0−1 3 01 −2 5
︸ ︷︷ ︸
G
2 −1 10 3 −20 0 5
︸ ︷︷ ︸
GT
c) det(A) = (2 · 3 · 5)2 = 302 = 900
d) x =
31−1
116 / 165
Decomposição de Cholesky
Podemos usar as fórmulas (5) e (6) para calcular os elementos damatriz G da decomposição, mas também podemos proceder deoutra forma.
Idéia:I Decompor A = LU via eliminação de GaussI Como U = DLT , calcular DI E assim calcular G = LD1/2
ExemploA partir da decomposição LU da matriz A do exemplo anterior,obtenha G.
A =
4 −2 2−2 10 −72 −7 30
=
1 0 0−1
2 1 012 −2
3 1
︸ ︷︷ ︸
L
4 −2 20 9 −60 0 25
︸ ︷︷ ︸
U
117 / 165
Decomposição de Cholesky
ExercícioMostrar que, se o sistema linear Ax = b, onde A é não singular, étransformado no sistema linear equivalente
ATAx = ATb
então esse último sistema linear pode sempre ser resolvido pelométodo de Cholesky (isto é B = ATA satisfaz as condições para aaplicação do método).
Aplicar a técnica anterior para encontrar a solução do seguintesistema linear: 1 0 1
1 1 01 −1 0
x1x2x3
=
422
118 / 165
Decomposição de Cholesky
ExercícioDicas:
I Mostre que B satisfaz as condições da decomposição deCholesky
I Irá precisar de usar
||x|| =√x21 + x22 + . . .+ x2n
||x||2 = x21 + x22 + . . .+ x2n = xTx
119 / 165
Decomposição LDLT
Como vimos anteriormente também podemos decompor A naforma A = LDLT , onde L é uma matriz triangular inferior unitáriae D é uma matriz diagonal.
De forma análoga ao que �zemos para a decomposição deCholesky, podemos determinar os elementos da decomposição daseguinte forma:
djj = ajj −j−1∑k=1
l2jkdkk , j = 1 : n
lij =
aij −j−1∑k=1
likdkkljk
djjj = 1 : n− 1, i = j + 1 : n
120 / 165
Decomposição LDLT
Solução de sistema linear
A solução do sistema linear Ax = b é dada por
Ax = b ⇒ LDLTx︸︷︷︸y
= b
⇒ L Dy︸︷︷︸w
= b
e assim temos os seguintes passos para a solução do sistema:
1. Lw = b
2. Dy = w
3. LTx = y
Cálculo do determinante
det(A) = det(L)det(D)det(LT )
= 1 · det(D) · 1 = d11d22 . . . dnn
121 / 165
Decomposição LDLT
Algoritmo
para j = 1 : n faça
djj =
√√√√ajj −j−1∑k=1
l2jk dkk ;
para i = j + 1 : n faça
lij =
(aij −
j−1∑k=1
lik dkk ljk
)/djj ;
�m-para
�m-para
122 / 165
Decomposição LDLT
Algoritmo
det = 1 ;para j = 1 : n faça
soma = 0 ;para k = 1 : j − 1 faça
soma = soma + A(j,k)*A(j,k)*A(k,k) ;�m-para
A(j,j) = A(j,j) - soma ;r = 1 / A(j,j) ;det = det * A(j,j) ;para i = j + 1 : n faça
soma = 0 ;para k = 1 : j − 1 faça
soma = soma + A(i,k)*A(k,k)*A(j,k) ;�m-para
A(i,j) = (A(i,j) - soma) * r ;�m-para
�m-para
123 / 165
Cálculo da Matriz Inversa
Iremos descrever como calcular a matriz inversa através dadecomposição LU. Sejam A uma matriz de dimensão n, nãosingular (det(A 6= 0) e A−1 a matriz inversa de A. Vamos escrevera matriz inversa como:
A−1 =
v1 v2 . . . vn
Seja ainda ej a coluna j da matriz identidade. Por exemplo,e2 =
[0 1 0 . . . 0
], en =
[0 0 0 . . . 1
]. Resolvendo o
seguinte sistema linearAv1 = e1
encontramos a primeira coluna v1 da matriz inversa de A.Repetindo o procedimento para cada coluna temos
Avj = ej, j = 1 : n (7)
124 / 165
Cálculo da Matriz Inversa
Agora basta usar algum dos métodos que vimos para resolver ossistemas lineares da equação (7).
1. Decomposição LU
LUvj = ej, j = 1 : n
Basta fatorar a matriz na forma LU uma única vez, e com osfatores resolver os seguintes sistemas
Lyj = ej
Uvj = yj
2. Se a matriz for SPD, podemos usar decomposição de Cholesky
GGTvj = ej ⇒ (1) Gyj = ej, (2) GTvj = yj
125 / 165
Cálculo da Matriz Inversa
3. Eliminação de Gauss.Montar [
A I]
e efetuar a eliminação de Gauss de uma vez só. Assim obtemos[U T
]onde T é uma matriz triangular inferior. Em seguida dado quetemos U triangular superior, basta resolver a seguintesequência de sistemas
Uvj = tj
onde tj é a coluna j da matriz T.
126 / 165
Cálculo da Matriz Inversa
ExemploCalcular a inversa da seguinte matriz
A =
4 1 −63 2 −63 1 −5
Assim temos 4 1 −6 1 0 0
3 2 −6 0 1 03 1 −5 0 0 1
Efetuando a eliminação de Gauss obtemos 4 1 −6 1 0 0
0 5/4 −3/2 −3/4 1 00 0 −1/5 −3/5 −1/5 1
127 / 165
Cálculo da Matriz Inversa
ExemploAgora basta resolver 4 1 −6
0 5/4 −3/20 0 −1/5
v1 =
1−3/4−3/5
4 1 −6
0 5/4 −3/20 0 −1/5
v2 =
01−1/5
4 1 −6
0 5/4 −3/20 0 −1/5
v3 =
001
128 / 165
Conteúdo
I Aula passadaI Decomposição de CholeskyI Decomposição LDLT
I Cálculo da Matriz InversaI Aula de hoje
I Métodos IterativosI Método de JacobiI Método de Gauss-SeidelI Método SOR
129 / 165
Métodos Iterativos
O sistema de equações lineares Ax = b pode ser resolvido por umprocesso que gera a partir de um vetor inicial x(0) uma sequênciade vetores x(1), x(2), x(3), . . . que deve convergir para a solução.
Existem muitos métodos iterativos para a solução de sistemaslineares, entretanto só iremos estudar os chamados métodositerativos estacionários.
Algumas perguntas importantes são:I Como construir a sequência {x(0),x(1),x(2), . . .}?I x(k) → x∗?I Quais são as condições para convergência?I Como saber se x(k) está próximo de x∗?I Critério de parada?
130 / 165
Métodos Iterativos
Um método iterativo escrito na forma
x(k+1) = Bx(k) + c (8)
é dito estacionário quando a matriz B for �xa durante o processoiterativo.
Veremos como construir a matriz B para cada um dos métodos queiremos estudar: Jacobi, Gauss-Seidel e Sobre-relaxação (SOR).
Antes, é preciso rever alguns conceitos como norma de vetores ematrizes, os quais serão importantes no desenvolvimento do critériode parada e na análise de convergência dos métodos.
131 / 165
Normas de Vetores e Matrizes
Para discutir o erro envolvido nas aproximações é preciso associar acada vetor e matriz um valor escalar não negativo que de algumaforma mede sua magnitude. As normas para vetores mais comunssão:
I Norma euclideana (ou norma L2)
||x||2 = (x21 + x22 + . . .+ x2n)1/2
I Norma in�nito (ou norma do máximo)
||x||∞ = max1≤i≤n
|xi|
Normas vetoriais devem satisfazer às seguintes propriedades:
1. ||x|| > 0 se x 6= 0, ||x|| = 0 se x = 0
2. ||αx|| = α||x||, onde α é um escalar
3. ||x+ y|| ≤ ||x||+ ||y||132 / 165
Normas de Vetores e Matrizes
Normas de matrizes tem que satisfazer a propridades similares:1. ||A|| > 0 se A 6= 0, ||A|| = 0 se A = 0
2. ||αA|| = α||A||, onde α é um escalar3. ||A+B|| ≤ ||A||+ ||B||4. ||AB|| ≤ ||A|| ||B||5. ||Ax|| ≤ ||A|| ||x||
Iremos fazer uso em diversos momentos da seguinte norma matricial
||A||∞ = max1≤i≤n
n∑j=1
|aij |
Exemplo
A =
[4 6−3 4
]⇒ ||A||∞ = max{10, 7} = 10
133 / 165
Critério de Parada
A distância entre dois vetores x e y pode ser calculada como
||x− y||2 ou ||x− y||∞Iremos usar a norma in�nito nos algoritmos que iremos descrever.Seja x(k+1) e x(k) duas aproximações para o vetor solução x∗ deum sistema de equações lineares.
Critério de parada
||x(k+1) − x(k)||∞||x(k+1)||∞
=max |x(k+1)
i − x(k)i |max |x(k+1)
i |< ε
onde ε é a precisão desejada (Ex: 10−3).
Na prática também adotamos um número máximo de iteraçõespara evitar que o programa execute inde�nidamente, caso o métodonão convirja para um determinado problema.
k < kmax
134 / 165
Método de Jacobi
Vamos ilustrar a idéia do método de Jacobi através de um exemplo.Seja o seguinte sistema:
a11x1 + a12x2 + a13x3 = b1
a21x1 + a22x2 + a23x3 = b2
a31x1 + a32x2 + a33x3 = b3
o qual pode ser escrito como
x1 = (b1 − a12x2 − a13x3)/a11x2 = (b2 − a21x1 − a23x3)/a22x3 = (b3 − a31x1 − a32x2)/a33
A partir de uma aproximação inicial
x(0) =
x(0)1
x(0)2
x(0)3
135 / 165
Método de Jacobi
Calculamos uma nova aproximação x(1) através de
x(1)1 =
(b1 − a12x(0)2 − a13x
(0)3
)/a11
x(1)2 =
(b2 − a21x(0)1 − a23x
(0)3
)/a22
x(1)3 =
(b3 − a31x(0)1 − a32x
(0)2
)/a33
Após obter x(1), calculamos x(2) substituindo x(1) no lugar de x(0)
na expressão anterior e assim procedemos até que o critério deparada seja satisfeito.
Para um sistema de n equações e n incógnitas, a cada passo k,temos:para i = 1 : n faça
x(k+1)i =
bi − i−1∑j=1
aijx(k)j −
n∑j=i+1
aijx(k)j
/aii ;
�m-para136 / 165
Método de JacobiAlgoritmo
entrada: A, b, x(0), max, εsaída: x
para k = 1 : max façapara i = 1 : n faça
x(k+1)i =
bi − i−1∑j=1
aijx(k)j −
n∑j=i+1
aijx(k)j
/aii ;
�m-para
se max |x(k+1)i − x(k)i | < ε então
retorna x(k+1) ;�m-se
�m-para
137 / 165
Método de Jacobi
ExemploResolver o seguinte sistema:
4x1 + 0.24x2 − 0.08x3 = 8
0.09x1 + 3x2 − 0.15x3 = 9
0.04x1 − 0.08x2 + 4x3 = 20
usando o método de Jacobi com vetor inicial x(0) = 0.
Solução do Exemplo
k 0 1 2 3x1 0 2 1.92 1.91x2 0 3 3.19 3.1944x3 0 5 5.04 5.0446
138 / 165
Método de Jacobi
Solução do ExemploFórmula de iteração
x(k+1)1 = 2− 0.06x
(k)2 + 0.02x
(k)3
x(k+1)2 = 3− 0.03x
(k)1 + 0.05x
(k)3
x(k+1)3 = 5− 0.01x
(k)1 + 0.02x
(k)2
Passo 1 → x(0) = 0
x(1)1 = 2− 0.06x
(0)2 + 0.02x
(0)3 = 2
x(1)2 = 3− 0.03x
(0)1 + 0.05x
(0)3 = 3
x(1)3 = 5− 0.01x
(0)1 + 0.02x
(0)2 = 5
139 / 165
Método de Jacobi
Solução do ExemploPasso 2 → (x(1))T =
[2 3 5
]x(2)1 = 2− 0.06(3) + 0.02(5) = 2− 0.08 = 1.92
x(2)2 = 3− 0.03(2) + 0.05(5) = 3 + 0.19 = 3.19
x(2)3 = 5− 0.01(2) + 0.02(3) = 5 + 0.04 = 5.04
Passo 3 → (x(2))T =[1.92 3.19 5.04
]x(3)1 = 2− 0.06(3.19) + 0.02(5.04) = 1.91
x(3)2 = 3− 0.03(1.92) + 0.05(5.04) = 3.1944
x(3)3 = 5− 0.01(1.92) + 0.02(3.19) = 5.0446
Erro: ||x(3) − x(2)||∞ = max{0.01, 0.0044, 0.0046} = 0.01
140 / 165
Método de Gauss-Seidel
Observe no exemplo anterior, que o método de Jacobi, não usa osvalores atualizados de x(k) até completar por inteiro a iteração dopasso k.
O método de Gauss-Seidel pode ser visto como uma modi�caçãodo método de Jacobi. Nele usaremos a mesma forma de iterar queo método de Jacobi, entretanto vamos aproveitar os cálculos jáatualizados, de outras componentes, para atualizar a componenteque está sendo calculada.
Dessa forma o valor de x(k+1)1 será usado para calcular x(k+1)
2 , os
valores de x(k+1)1 e x(k+1)
2 serão usados para calcular x(k+1)3 , e
assim por diante.
141 / 165
Método de Gauss-Seidel
Para um sistema 3× 3 temos o seguinte esquema:
x(k+1)1 =
(b1 − a12x(k)2 − a13x
(k)3
)/a11
x(k+1)2 =
(b2 − a21x(k+1)
1 − a23x(k)3
)/a22
x(k+1)3 =
(b3 − a31x(k+1)
1 − a32x(k+1)2
)/a33
No caso geral temos
para i = 1 : n faça
x(k+1)i =
bi − i−1∑j=1
aijx(k+1)j −
n∑j=i+1
aijx(k)j
/aii ;
�m-para
Obs: Note que no método de GS apenas 1 aproximação para xiprecisa ser armazenada. No método de Jacobi é preciso manter 2vetores em memória, um para x(k+1) e outro para x(k).
142 / 165
Método de Gauss-Seidel
ExemploResolva o sistema de equações do exemplo anterior usando ométodo de Gauss-Seidel.
Solução do ExemploFórmula de iteração (*)
x(k+1)1 = 2− 0.06x
(k)2 + 0.02x
(k)3
x(k+1)2 = 3− 0.03x
(k+1)1 + 0.05x
(k)3
x(k+1)3 = 5− 0.01x
(k+1)1 + 0.02x
(k+1)2
Passo 1 → x(0) = 0
x(1)1 = 2− 0.06(0) + 0.02(0) = 2
x(1)2 = 3− 0.03(2) + 0.05(0) = 3− 0.06 = 2.94
x(1)3 = 5− 0.01(2) + 0.02(2.94) = 5.0388 143 / 165
Método de Gauss-Seidel
Solução do ExemploPasso 2 → (x(1))T =
[2 2.94 5.0388
]x(2)1 = 2− 0.06(2.94) + 0.02(5.0388) = 1.924376
x(2)2 = 3− 0.03(1.924376) + 0.05(5.0388) = 3.194209
x(2)3 = 5− 0.01(1.924376) + 0.02(3.194209) = 5.044640
Passo 3 → (x(2))T =[1.924376 3.194209 5.044640
]x(2)1 = 2− 0.06(1.924376) + 0.02(5.04464) = 1.909240
x(2)2 = 3− 0.03(1.909240) + 0.05(5.04464) = 3.194955
x(2)3 = 5− 0.01(1.909240) + 0.02(3.194955) = 5.044807
144 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Para estudar a convergência dos métodos, vamos primeirosescrevê-los na seguinte forma:
x(k+1) = Bx(k) + c
Para isso, vamos dividir a matriz A como
A = L︸︷︷︸triangular inferior
+ D︸︷︷︸diagonal
+ U︸︷︷︸triangular superior
isto é, para uma matriz 3× 3 temosa11 a12 a13a21 a22 a23a31 a32 a33
=
0 0 0a21 0 0a31 a32 0
+
a11 0 00 a22 00 0 a33
+
0 a12 a130 0 a230 0 0
145 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Sendo assim o método de Jacobi pode ser escrito como:
Ax = b ⇒ (L+D+U)x = b
⇒ Dx = b− (L+U)x
e assim
Dx(k+1) = b− (L+U)x(k)
x(k+1) = −D−1(L+U)x(k) +D−1b
x(k+1) = BJx(k) + c
onde para o método de Jacobi
BJ = −D−1(L+U)
c = D−1b
146 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Para o método de Gauss-Seidel temos
(L+D)x(k+1) = −Ux(k) + b
x(k+1) = −(L+D)−1Ux(k) + (L+D)−1b
x(k+1) = BGSx(k) + c
onde para o método de Gauss-Seidel
BGS = −(L+D)−1U
c = (L+D)−1b
Ou seja, ambos os métodos podem ser escritos como
x(k+1) = Bx(k) + c (9)
onde B é chamada de matriz de iteração
BJ = −D−1(L+U)
BGS = −(L+D)−1U
147 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Se o método de Jacobi ou Gauss-Seidel converge ou não, dependedos autovalores da matriz de iteração B.
Dizemos que λi, i = 1 : n é um autovalor da matriz B se
Bu = λiu
para algum vetor u 6= 0. O seguinte teorema caracteriza a condiçãopara convergência desses métodos.
TeoremaA condição necessária e su�ciente para que o método iterativodescrito por x(k+1) = Bx(k) + c convirja usando um vetor inicialx(0) qualquer é
ρ(B) = max1≤i≤n
|λi(B)| < 1
148 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Na prática encontrar os autovalores de B é tão custoso quantoresolver um sistema de equações lineares e portanto o Teorema 1 édifícil de usar. Vamos estudar outra forma de analisar aconvergência para esses métodos.
Seja x∗ a solução exata. Então x∗ = Bx∗ + c. Subtraindo de (9)temos
x(k+1) − x∗ = Bx(k) −Bx∗ + c− c
= B(x(k) − x∗)
de forma análoga
x(k) − x∗ = B(x(k−1) − x∗)
e assim
x(k+1) − x∗ = B2(x(k−1) − x∗) = . . . = Bk+1(x(0) − x∗)
149 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
x(k+1) − x∗ = Bk+1(x(0) − x∗) (10)
Aplicando a norma in�nito em (10), obtemos
||x(k+1) − x∗||∞ = ||Bk+1(x(0) − x∗)||∞≤ ||Bk+1||∞ ||(x(0) − x∗)||∞≤ ||B||k+1
∞ ||(x(0) − x∗)||∞ (11)
Assim de (11) �ca claro que só haverá convergência se
||B||∞ < 1 (12)
Vamos analisar agora critérios especí�cos para atender ao critériogeral dado por (12) para o método de Jacobi e Gauss-Seidel.
150 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Para o método de Jacobi, a matriz de iteraçãoBJ = −D−1(L+U) é da forma
D =
a11
a22. . .
ann
⇒ D−1 =
1
a111
a22. . .
1ann
portanto
BJ = −
0 a12
a11a12a11
. . . a1na11
a21a22
0 a23a22
. . . a2na22
.... . .
...an1ann
an2ann
. . . ann−1
ann0
ou seja, seus elementos são
bij = −aijaii
151 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Para termos convergência, então precisamos que ||BJ ||∞ < 1
||BJ ||∞ = max1≤i≤n
n∑j=1
|bij | = max1≤i≤n
n∑j=1,i 6=j
∣∣∣∣∣aijaii∣∣∣∣∣ < 1
Teorema (Critério das Linhas)
Seja Ax = b e seja αk =
n∑j=1,i 6=j
∣∣∣aijaii
∣∣∣, para k = 1 : n. Se
α = max{αk} < 1, então o método de Jacobi convergeindependentemente da aproximação inicial x(0).
ExemploVeri�car se as seguintes matrizes satisfazem o critério das linhas. 4 0.24 −0.08
0.09 3 −0.150.04 −0.08 4
,1 3 15 2 20 6 8
152 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
De�niçãoUma matriz A é estritamente diagonal dominante se
n∑j=1, j 6=i
|aij | < |aii|, i = 1 : n
Fica claro então que para matrizes estritamente diagonal dominanteo critério das linhas é sempre satisfeito. Portanto, uma outra formade veri�car se o método de Jacobi converge para uma certa matrizé veri�car se esta é estritamente diagonal dominante.
Exemplo10 2 11 5 12 3 10
|a12|+ |a13| = |2|+ |1| < |10| = |a11||a21|+ |a23| = |1|+ |1| < |5| = |a22||a31|+ |a32| = |2|+ |3| < |10| = |a33|
153 / 165
Convergência dos métodos de Jacobi e Gauss-SeidelGauss-Seidel
Para ter convergência é preciso satisfazer pelo menos um doscritérios:
I critério das linhas, isto é
max1≤i≤n
n∑j=1, j 6=i
|aij ||aii| < 1
I critério de Sassenfeld
max1≤i≤n
βi < 1 (13)
onde βi são calculados como
βi =
i−1∑j=1
|aij |βj +n∑
j=i+1
|aij |
/|aii|154 / 165
Convergência dos métodos de Jacobi e Gauss-SeidelGauss-Seidel
É possível mostrar que para BGS dado por
BGS = −(L+D)−1U
temos que||BGS ||∞ ≤ max
1≤i≤nβi
Sendo assim, para mostrar que o método converge, basta mostrarque o critério de Sassenfeld (13) é satisfeito.
* Para ver que o critério das linhas também é válido para o métodode Gauss-Seidel, basta veri�car que
max1≤i≤n
n∑j=1, j 6=i
|aij ||aii| < 1 ⇒ βi < 1, i = 1 : n
155 / 165
Convergência dos métodos de Jacobi e Gauss-SeidelGauss-Seidel
Prova: Considere que: max∑n
j=1, j 6=i|aij ||aii| < 1 (CL → OK)
β1 =
n∑j=2
|a1j ||a11|
≤ max1≤i≤n
n∑j=1, j 6=i
|aij ||aii|
< 1
Suponha agora que βj < 1 para i = 1, 2, . . . , i− 1. Então
βi =
i−1∑j=1
|aij ||aii|
βj +
n∑j=i+1
|aij ||aii|
≤n∑
j=1, j 6=i
|aij ||aii|
≤ max1≤i≤n
n∑j=1, j 6=i
|aij ||aii|
< 1
Fica claro que o critério de Sassenfeld pode ser menor que o daslinhas. Logo, o critério de Sassenfeld pode ser satisfeito e o critériodas linhas não, e portanto o processo iterativo converge.
156 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Algumas observações:I Para um certo sistema de equações lineares pode acontecer do
método de Jacobi convergir, enquanto o Gauss-Seidel não, ouvice-versa.
I Quanto menor o valor de ||B||∞, mais rápida será aconvergência do método.
I Permutação de linhas ou colunas pode reduzir ||B||∞I A convergência dos métodos de Jacobi e Gauss-Seidel não
depende do vetor inicial x(0).
157 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
ExemploResolva o sistema utilizando o método de Jacobi.10 2 1
1 5 12 3 10
x1x2x3
=
7−86
Solução do ExemploCritério das linhas:
α1 = (|a12|+ |a13|)/|10| = 0.2 + 0.1 = 0.3 < 1
α2 = (|a21|+ |a23|)/|5| = 0.2 + 0.2 = 0.4 < 1
α3 = (|a31|+ |a32|)/|10| = 0.2 + 0.3 = 0.5 < 1
Logo α = α3 = 0.5 < 1 e portanto o método de Jacobi convergepara essa matriz.
158 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Solução do ExemploOu então basta veri�car que a matriz A é estritamente diagonaldominante.
Fórmula de iteração:
x(k+1)1 = 0.7− 0.2x
(k)2 − 0.1x
(k)3
x(k+1)2 = −1.6− 0.2x
(k)1 − 0.2x
(k)3
x(k+1)3 = 0.6− 0.2x
(k)1 − 0.3x
(k)2
Assim temos as seguintes iterações para o vetor inicial x(0) = 0
k 1 2 3 4 5x1 0.7 0.96 0.978 0.9994 0.9979x2 -1.6 -1.86 -1.98 -1.9888 -1.9996x3 0.6 0.94 0.966 0.966 0.9968
159 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
ExemploResolva o sistema utilizando o método de Gauss-Seidel.5 1 1
3 4 13 3 6
x1x2x3
=
560
Solução do Exemplo1) A matriz não é estritamente diagonal dominante. Nada podemosa�rmar sobre a convergência.2) Critério das linhas:
α1 = (|a12|+ |a13|)/|5| = 0.2 + 0.2 = 0.4 < 1
α2 = (|a21|+ |a23|)/|4| = 0.75 + 0.25 = 1
α3 = (|a31|+ |a32|)/|6| = 0.5 + 0.5 = 1
Não satisfaz o critério das linhas.160 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Solução do Exemplo3) Critério de Sassenfeld:
β1 = |0.2|+ |0.2| = 0.4
β2 = |0.75|(0.4) + |0.25| = 0.3 + 0.25 = 0.55
β3 = |0.5|(0.4) + |0.5|(0.55) = 0.2 + 0.275 = 0.475
Assimmax1≤i≤n
βi = max{0.4, 0.55, 0.475} = 0.55 < 1
Portanto, como o critério de Sassenfeld é satisfeito, podemosgarantir que o processo de Gauss-Seidel converge para essa matriz.
161 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Solução do ExemploFórmula de iteração:
x(k+1)1 = 1− 0.2x
(k)2 − 0.2x
(k)3
x(k+1)2 = 1.5− 0.75x
(k+1)1 − 0.25x
(k)3
x(k+1)3 = 0− 0.5x
(k+1)1 − 0.5x
(k+1)2
Usando x(0) = 0 como aproximação inicial, temos
x(1)1 = 1− 0.2(0)− 0.2(0) = 1
x(1)2 = 1.5− 0.75(1)− 0.25(0) = 0.75
x(1)3 = 0− 0.5(1)− 0.5(0.75)
162 / 165
Convergência dos métodos de Jacobi e Gauss-Seidel
Solução do ExemploIterando para k = 1, 2, . . . temos
k 1 2 3 4x1 1.0 1.025 1.0075 1.0016x2 0.75 0.95 0.9913 0.9987x3 -0.875 -0.9875 -0.9994 -1.0002
Podemos veri�car o erro
||x(4) − x(3)||∞||x(4)||∞
= max{|1.0016−1.0075|,|0.9987−0.9913|,|−1.0002+0.9994|}max{|1.0016|,|0.9987|,|−1.0002|}
=0.0074
1.0016= 0.0074 < 10−2
163 / 165
Método SOR
É possível acelerar a convergência dos métodos iterativos visto atéentão através do método da sobre-relaxação sucessiva, ou do inglêsSOR (sucessive over relaxation).
Nesse método de�nimos a aproximação na iteração (k + 1) comouma média entre o valor de x(k) obtido na iteração (k) e o valor dex(k+1), que seria obtido pelo método de Gauss-Seidel.
As iterações associadas ao parâmetro ω do método SOR sãode�nidas por:
xSOR(k+1) = (1− ω)xSOR
(k) + ωxGS(k+1) (14)
onde xSOR(k) é a aproximação do passo anterior obtida pelo
método SOR e xGS(k+1) é a aproximação atual obtida pelo método
de Gauss-Seidel.
164 / 165
Método SOR
Lembrando que para o método de Gauss-Seidel temos
x(k+1)i =
bi − i−1∑j=1
aijx(k+1)j −
n∑j=i+1
aijx(k)j
/aii
chegamos ao seguinte esquema para o método SOR:
x(k+1)i = (1− ω)x(k)i + ω
aii
bi − i−1∑j=1
aijx(k+1)j −
n∑j=i+1
aijx(k)j
I Quando ω = 1 temos o método de Gauss-Seidel.I O método só converge se 0 < ω < 2.I 1 < ω < 2: sobre-relaxação.I 0 < ω < 1: sub-relaxação.I Em alguns casos particulares é possível encontrar um valor
ótimo para ω, de forma que o método apresenta uma boaconvergência com relação a outras escolhas de ω
165 / 165