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

Upload: others

Post on 09-Feb-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

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