dcc008 - cálculo numérico - fisiocomp.ufjf.br · uma matriz é um conjunto de elementos (números...

165

Upload: truongthuan

Post on 22-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

[email protected]

Page 2: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 3: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 4: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 5: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 6: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 7: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 8: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 9: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 10: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 11: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 12: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 13: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 14: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 15: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 16: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 17: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 18: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 19: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 20: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 21: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 22: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 23: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 24: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 25: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 26: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 27: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 28: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 29: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 30: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 31: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 32: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 33: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 34: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 35: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 36: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 37: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 38: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 39: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 40: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 41: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 42: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 43: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 44: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 45: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 46: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 47: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 48: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 49: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 50: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 51: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 52: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 53: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 54: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 55: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 56: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 57: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 58: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 59: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 60: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 61: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 62: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 63: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 64: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 65: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 66: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 67: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 68: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 69: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 70: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 71: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 72: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

Estratégias de Pivoteamento

maior elemento em valor absoluto maior elemento

em valor absoluto

Pivoteamento Parcial Pivoteamento Total

72 / 165

Page 73: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 74: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 75: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 76: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 77: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 78: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 79: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 80: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 81: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 82: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 83: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 84: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 85: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 86: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 87: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 88: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 89: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 90: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 91: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 92: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 93: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 94: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 95: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 96: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 97: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 98: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 99: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 100: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 101: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 102: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 103: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 104: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 105: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 106: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 107: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 108: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 109: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 110: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 111: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 112: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 113: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 114: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 115: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 116: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 117: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 118: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 119: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 120: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 121: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 122: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 123: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 124: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 125: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 126: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 127: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 128: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 129: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 130: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 131: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 132: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 133: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 134: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 135: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 136: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 137: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 138: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 139: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 140: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 141: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 142: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 143: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 144: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 145: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 146: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 147: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 148: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 149: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 150: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 151: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 152: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 153: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 154: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 155: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 156: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 157: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 158: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 159: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 160: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 161: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 162: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 163: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 164: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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

Page 165: DCC008 - Cálculo Numérico - fisiocomp.ufjf.br · Uma matriz é um conjunto de elementos (números reais ou complexos) dispostos de forma retangular. ... Determinante Seja A uma

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