Introdução aos Métodos...

51
Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho

Transcript of Introdução aos Métodos...

Introdução aos Métodos Numéricos

Instituto de Computação UFFDepartamento de Ciência da Computação

Otton Teixeira da Silveira Filho

Conteúdo específico

● Sistemas de Equações Lineares. Métodos Iterativos

Conteúdo temático

● Convergência dos Métodos Estacionários

● Um exemplo geométrico

Métodos iterativos – Convergência

Hora de falar de convergência...

Métodos iterativos – Convergência

Hora de falar de convergência...

Primeiramente algum formalismo

Métodos iterativos – Convergência

Raio espectral de uma matriz

O raio espectral de uma matriz é definido por

onde são os autovalores da matriz referenciada

ρ=máx i|λi|

λi

Métodos iterativos – Convergência

Convergência dos Métodos Estacionários

● Um método estacionário convergirá para qualquer vetor inicial se e somente se o raio espectral da matriz associada ao método for menor que 1.

Métodos iterativos – Convergência

Convergência dos Métodos Estacionários

● Um método estacionário convergirá para qualquer vetor inicial se e somente se o raio espectral da matriz associada ao método for menor que 1.

● Se a matriz associada a um método tiver raio espectral diferente de outra associada a outro método, então a que tiver menor raio espectral convergirá mais rápido

Métodos iterativos – Convergência

As matrizes associadas aos métodos que vimos são

● Matriz de Gauss-Jacobi:

● Matriz de Gauss-Seidel:

−D−1 ( M+N )

−( D+N )−1 M

Métodos iterativos – Convergência

Este critério é preciso mas é difícil de verificar em várias situações, pois o problema de determinar autovalores é em geral de custo mais alto do que fazer alguns passos dos métodos iterativos

Métodos iterativos – Convergência

No entanto, existem vários critérios suficientes mas não necessários.

Métodos iterativos – Convergência

No entanto, existem vários critérios suficientes mas não necessários.

Apresentaremos aqui apenas um

Métodos iterativos – Convergência

No entanto, existem vários critérios suficientes mas não necessários.

Apresentaremos aqui apenas um

Mas façamos antes algumas definições

Métodos iterativos – Convergência

Matriz de Diagonal Dominante

Seja A uma matriz de componentes aij. Então se

diremos que A é uma matriz de diagonal dominante

|aii|≥ ∑j=1 ; j≠i

n

|aij|

Métodos iterativos – Convergência

Matriz de Diagonal Estritamente Dominante

Seja A uma matriz de componentes aij. Então se

diremos que A é uma matriz de diagonal estritamente dominante

|aii|> ∑j=1; j≠i

n

|aij|

Métodos iterativos – Convergência

Vamos a alguns exemplos para esclarecer

Métodos iterativos – Convergência

A matriz abaixo é de diagonal dominante pois

(9 −1 3 42 8 2 −2

−2 3 7 13 2 2 7

) ;|−1|+|3|+|4|=8<9|2|+|2|+|−2|=6<8|−2|+|3|+|1|=6<7|3|+|2|+|2|=7=7

Métodos iterativos – Convergência

A matriz abaixo é de diagonal dominante pois

mas não é de diagonal estritamente dominante pois na última linha temos uma igualdade

(9 −1 3 42 8 2 −2

−2 3 7 13 2 2 7

) ;|−1|+|3|+|4|=8<9|2|+|2|+|−2|=6<8|−2|+|3|+|1|=6<7|3|+|2|+|2|=7=7

Métodos iterativos – Convergência

A matriz abaixo não é de diagonal dominante pois

(2 8 2 −29 −1 3 4

−2 3 7 13 2 2 7

) ;|8|+|2|+|−2|=12>2|9|+|3|+|4|=16>1|−2|+|3|+|1|=6<7|3|+|2|+|2|=7=7

Métodos iterativos – Convergência

A matriz abaixo não é de diagonal dominante pois

embora seja a matriz anterior com as duas primeiras linhas trocadas

(2 8 2 −29 −1 3 4

−2 3 7 13 2 2 7

) ;|8|+|2|+|−2|=12>2|9|+|3|+|4|=16>1|−2|+|3|+|1|=6<7|3|+|2|+|2|=7=7

Métodos iterativos – Convergência

Esta observação é importante pois a solução de um sistema de equações lineares é invariante sob trocas de linhas, ou seja, talvez seja possível fazer com que a matriz de um sistema pode ser de diagonal dominante por permuta de linhas.

Métodos iterativos – Convergência

Um critério suficiente mas não necessário

Seja A uma matriz de componentes aij associada a um sistema de equações lineares. Se a matriz for de diagonal dominante sendo estritamente dominante em pelo menos uma linha, então

● Os métodos de Gauss-Jacobi e Gauss-Seidel convergirão

● O método de Gauss-Seidel convergirá mais rápido

Métodos iterativos – Convergência

Atenção!

O fato de Gauss-Seidel convergir mais rápido que Gauss-Jacobi nas condições aqui apresentadas, significa que ele executará mais rápido num computador convencional.

Se você implementar Gauss-Jacobi num código/máquina paralela, poderemos ter um código com Gauss-Jacobi sendo mais rápido.

Métodos iterativos – Convergência

Observe que a matriz do primeiro sistema que resolvemos é de diagonal estritamente dominante dando garantida de convergência

(8 1 0 −11 9 1 0

−1 2 10 00 1 1 12

) x⃗=(13/2−8−35

)

Métodos iterativos – Convergência

Reforçando: O fato da matriz de um sistema não cumprir o critério da diagonal dominante não significa que os métodos aqui vistos divergirão!

Métodos iterativos – Convergência

Reforçando: O fato da matriz de um sistema não cumprir o critério da diagonal dominante não significa que os métodos aqui vistos divergirão!

O critério é apenas suficiente

Métodos iterativos – Convergência

Exercício: Faça alguns passos usando Gauss-Seidel para obter uma solução aproximada do sistema abaixo.

Observe que a matriz não satisfaz o critério dado mas Gauss-Seidel convergirá. Solução:

(9 1 1 31 9 1 31 1 9 36 3 3 9

) x⃗=(12616812663

)

x⃗T=(15,

814

,15,−594 )

Métodos iterativos – Convergência

Outro exemplo disto foi apresentado pelo matemático Lothar Collatz: A matriz abaixo também não é de diagonal dominante

Qualquer sistema criado com esta matriz fará com que Gauss-Jacobi convirja e Gauss-Seidel divirja

(1 2 −21 1 12 2 1 )

Métodos iterativos – Convergência

Uma grande quantidade de sistemas de equações lineares que surgem em problemas de tecnologia, ciência e engenharia tem suas matrizes com diagonal dominante

Métodos Iterativos – Mais um exemplo

Um exemplo mais “geométrico“

Resolveremos o sistema abaixo por Gauss-Seidel

com o vetor inicial .

(3 21 2 ) x⃗=( 45 )

x⃗0=( 1−1 )

Métodos Iterativos – Mais um exemplo

Montando o método de Gauss-Seidel

com o vetor inicial .

x⃗ i+1=( 0 0−1/2 0 ) x⃗i+1+ (0 −2/3

0 0 ) x⃗i+(4 /35 /2 )

x⃗0=( 1−1 )

Métodos Iterativos – Mais um exemplo

Calculando teremos

e a solução é

x⃗0=( 1−1 ) ; x⃗1=( 2

1,5 ) ; x⃗2=(0,332,33 ) ; x⃗3=(−0,22

2,6 11 ) ; x⃗4=(−0,407 4072,703703 )

x⃗= ( −0,52,75 )

Métodos Iterativos – Mais um exemplo

Façamos uma figura

Métodos Iterativos – Mais um exemplo

Evolução dos vetores posição iterados

Métodos Iterativos – Mais um exemplo

Este sistema foi criado para ter convergência particularmente lenta para que pudéssemos ver o processo de convergência evoluindo graficamente.

Métodos Iterativos – Outro exemplo

Determine a solução do sistema abaixo usando Gauss-Seidel. Pare quando o critério der um valor menor que 0,01. Sabe-se que a norma do máximo da solução é menor ou igual a 2.

(7 3 0 −1

−2 9 2 03 2 10 11 2 0 8

) x⃗= (80

−34

)

Métodos Iterativos – Outro exemplo

Preparando a matriz e o vetor

(7 3 0 −1

−2 9 2 03 2 10 11 2 0 8

)⇒ (0 3/7 0/7 −1 /7

−2 /9 0 2/9 0 /93 /10 2 /10 0 1/101 /8 2/8 0 0

)⇒ (0 −3/7 0 1/7

2 /9 0 −2/9 0−3/10 −1/5 0 −1 /10−1/8 −1 /4 0 0

)

(80

−34

)⇒ (8 /70 /9

−3 /104 /8

)⇒ (8 /70

−3/101/2

)

Métodos Iterativos – Outro exemplo

Montando o método

x⃗i+1=(

0 0 0 02 /9 0 0 0

−3 /10 −1/5 0 0−1/8 −1/4 0 0

) x⃗i+1+(0 −3 /7 0 1/70 0 −2/9 00 0 0 −1 /100 0 0 0

) x⃗i+(8/70

−3 /101/2

)

(0 −3 /7 0 1 /7

2 /9 0 −2/9 0−3 /10 −1/5 0 −1 /10−1/8 −1/ 4 0 0

);(8 /70

−3 /101 /2

)

Métodos Iterativos – Outro exemplo

Usaremos o seguinte vetor inicial que é compatível com a informação dada

x⃗0= (1

−101

)

Métodos Iterativos – Outro exemplo

Usaremos o seguinte vetor inicial que é compatível com a informação dada

mas existem muitas outras possibilidades.

x⃗0= (1

−101

)

Métodos Iterativos – Outro exemplo

Usaremos o seguinte vetor inicial que é compatível com a informação dada

mas existem muitas outras possibilidades. Use sempre algo simples...

x⃗0= (1

−101

)

Métodos Iterativos – Outro exemplo

No intuito de facilitar a compreenção do algorítmo, colocaremos em negrito os valores calculados durante o passo do método.

Métodos Iterativos – Outro exemplo

x⃗ i+1=(0 0 0 0

2/9 0 0 0−3/10 −1/5 0 0−1/8 −1/4 0 0

) x⃗ i+1+(0 −3 /7 0 1/70 0 −2/9 00 0 0 −1/100 0 0 0

) x⃗ i+(8/70

−3/101/2

); x⃗0=(1

−101

)

x⃗1=([0]+[−3 /7×(−1)+0×0+1/7×1]+8/7

[2/9×12 / 7 ]+[−2 /9×0+0×1]+0[−3 /10×12 /7−1/5×8 / 21 ]+[−1 /10×1]−3 /10

[−1/8×12/ 7−1 /4×8 / 21+0×(−104 /105 )]+[0]+1/2)=(

12 /78 /21

−104 / 1054 /21

)=(1,7142850,380952

−0,9904760,190476

)

Métodos Iterativos – Outro exemplo

x⃗ i+1=(0 0 0 0

2/9 0 0 0−3/10 −1/5 0 0−1/8 −1/4 0 0

) x⃗ i+1+(0 −3 /7 0 1/70 0 −2/9 00 0 0 −1/100 0 0 0

) x⃗ i+(8/70

−3/101/2

); x⃗0=(1

−101

)

x⃗1=([0]+[−3 /7×(−1)+0×0+1/7×1]+8/7

[2/9×12 / 7 ]+[−2 /9×0+0×1]+0[−3 /10×12 /7−1/5×8 / 21 ]+[−1 /10×1]−3 /10

[−1/8×12/ 7−1 /4×8 / 21+0×(−104 /105 )]+[0]+1/2)=(

12 /78 /21

−104 / 1054 /21

)=(1,7142850,380952

−0,9904760,190476

)x⃗2=(

[0 ]+[−3 /7×8/21+0×(−104 /105)+1/7×4 /21]+8/7[2 /9×148 /147 ]+[−2/9×(−104 /105)+0×4 /21 ]+0

[−3 /10×148 /147−1 /5×2936 /6615]+[−1/10×4 /21 ]−3/10[−1/8×148 /147−1/4×2936 /6615+0×(−46957 / 66150)]+[0 ]+1/2

)=(148 / 147

2936 / 6615−46957 /66150

1741 /6615)=(

1,0068020,443839

−0,7098560,263189

)

Métodos Iterativos – Outro exemplo

Avaliemos a evolução dos vetores obtidos

x⃗2− x⃗1=(1,0068020,443839

−0,7098560,263189

)−(1,7142850,380952

−0,9904760,190476

)≈(−0,707483

0,0628870,280620,072713

)⇒‖x⃗2− x⃗1‖max≈0,707483

‖x⃗1‖max=1,714285⇒

‖x⃗2− x⃗1‖max

‖x⃗1‖max

≈0,4126

Métodos Iterativos – Outro exemplo

Continuando...

x⃗ i+1=(0 0 0 0

2/9 0 0 0−3/10 −1/5 0 0−1/8 −1/4 0 0

) x⃗ i+1+(0 −3 /7 0 1/70 0 −2/9 00 0 0 −1/100 0 0 0

) x⃗ i+(8/70

−3/101/2

); x⃗2=(1,0068020,443839

−0,7098560,263189

)

x⃗3=([0 ]+[−3 /7×(1,006802)+0×(−0,709856 )+1/7×0,263189 ]+8 /7

[2 /9×0,990238 ]+[−2/9×(−0,709856)+0×0,263189 ]+0[−3 /10×0,990238−1/5×0,377798 ]+[−1/10×0,263189 ]−3 /10[−1/8×0,990238−1/ 4×0,377798+0×(−0,698949)]+[0 ]+1 /2

)=(0,9902380,377798

−0,6989490,281770

)

Métodos Iterativos – Outro exemplo

Continuando...

x⃗ i+1=(0 0 0 0

2/9 0 0 0−3/10 −1/5 0 0−1/8 −1/4 0 0

) x⃗ i+1+(0 −3 /7 0 1/70 0 −2/9 00 0 0 −1/100 0 0 0

) x⃗ i+(8/70

−3/101/2

); x⃗2=(1,0068020,443839

−0,7098560,263189

)

x⃗3=([0 ]+[−3 /7×(1,006802)+0×(−0,709856 )+1/7×0,263189 ]+8 /7

[2 /9×0,990238 ]+[−2/9×(−0,709856)+0×0,263189 ]+0[−3 /10×0,990238−1/5×0,377798 ]+[−1/10×0,263189 ]−3 /10[−1/8×0,990238−1/ 4×0,377798+0×(−0,698949)]+[0 ]+1 /2

)=(0,9902380,377798

−0,6989490,281770

)x⃗3− x⃗2=(

0,9902380,377798

−0,6989490,281770

)−(1,0068020,443839

−0,7098560,263189

)≈(−0,016564−0,0660410,0109070,018581

)⇒‖x⃗3− x⃗2‖max≈0,06604

‖x⃗2‖max=1,006802 ⇒‖x⃗3− x⃗2‖max

‖x⃗2‖max

≈0,06559

Métodos Iterativos – Outro exemplo

E continuando...

x⃗ i+1=(0 0 0 0

2/9 0 0 0−3/10 −1/5 0 0−1/8 −1/4 0 0

) x⃗ i+1+(0 −3 /7 0 1 /70 0 −2/9 00 0 0 −1 /100 0 0 0

) x⃗ i+(8 /7

0−3 /10

1/2); x⃗3=(

0,9902380,377798

−0,6989490,281770

)

x⃗4=([0]+[−3 /7×0,377798+0×(−0,698949 )+1 /7×0,281770 ]+8/7

[2 /9×1,021196 ]+[−2/9×(−0,698949 )+0×0,281770 ]+0[−3/10×1,021196−1/5×0,382254 ]+[−1/10×0,281770 ]−3/10[−1 /8×1,021196−1/4×0,382254+0×(−0,710986 )]+[0]+1/2

)=(1,0211960,382254

−0,7109860,276787

)

Métodos Iterativos – Outro exemplo

E continuando...

x⃗ i+1=(0 0 0 0

2/9 0 0 0−3/10 −1/5 0 0−1/8 −1/4 0 0

) x⃗ i+1+(0 −3 /7 0 1 /70 0 −2/9 00 0 0 −1 /100 0 0 0

) x⃗ i+(8 /7

0−3 /10

1/2); x⃗3=(

0,9902380,377798

−0,6989490,281770

)

x⃗4=([0]+[−3 /7×0,377798+0×(−0,698949 )+1 /7×0,281770 ]+8/7

[2 /9×1,021196 ]+[−2/9×(−0,698949 )+0×0,281770 ]+0[−3/10×1,021196−1/5×0,382254 ]+[−1/10×0,281770 ]−3/10[−1 /8×1,021196−1/4×0,382254+0×(−0,710986 )]+[0]+1/2

)=(1,0211960,382254

−0,7109860,276787

)x⃗4−x⃗3=(

1,0211960,382254

−0,7109860,276787

)−(0,9902380,377798

−0,6989490,281770

)≈(0,0309580,004456

−0,012037−0,004983

)⇒‖x⃗4− x⃗3‖max≈0,030958

‖x⃗3‖max=0,990238⇒‖x⃗4− x⃗3‖max

‖x⃗3‖max

≈0,0312

Métodos Iterativos – Outro exemplo

E mais ainda...

x⃗ i+1=(0 0 0 0

2/9 0 0 0−3/10 −1/5 0 0−1/8 −1/4 0 0

) x⃗ i+1+(0 −3 /7 0 1/70 0 −2/9 00 0 0 −1/100 0 0 0

) x⃗ i+(8/70

−3/101/2

); x⃗4=(1,0211960,382254

−0,7109860,276787

)

x⃗5=([0]+[−3/7×0,382254 +0×(−0,710986 )+1 /7×0,276787 ]+8/7

[2 /9×1,018575 ]+[−2 /9×(−0,710986 )+0×0,276787 ]+0[−3 /10×1,018575−1 /5×0,384346 ]+[−1/10×0,276787 ]−3/10[−1/8×1,018575−1/4×0,384346+0×(−0,710120 )]+[0]+1/2

)=(1,0185750,384346

−0,7101200,276591

)

Métodos Iterativos – Outro exemplo

E mais ainda...

x⃗ i+1=(0 0 0 0

2/9 0 0 0−3/10 −1/5 0 0−1/8 −1/4 0 0

) x⃗ i+1+(0 −3 /7 0 1/70 0 −2/9 00 0 0 −1/100 0 0 0

) x⃗ i+(8/70

−3/101/2

); x⃗4=(1,0211960,382254

−0,7109860,276787

)

x⃗5=([0]+[−3/7×0,382254 +0×(−0,710986 )+1 /7×0,276787 ]+8/7

[2 /9×1,018575 ]+[−2 /9×(−0,710986 )+0×0,276787 ]+0[−3 /10×1,018575−1 /5×0,384346 ]+[−1/10×0,276787 ]−3/10[−1/8×1,018575−1/4×0,384346+0×(−0,710120 )]+[0]+1/2

)=(1,0185750,384346

−0,7101200,276591

)x⃗5− x⃗4=(

1,0185750,384346

−0,7101200,276591

)−(1,0211960,382254

−0,7109860,276787

)≈(0,0026210,0020920,000866

−0,000196)⇒‖x⃗5− x⃗4‖max≈0,00262

‖x⃗4‖max=1,021196 ⇒‖x⃗5− x⃗4‖max

‖x⃗4‖max

≈0,00256