RESOLUÇÃO DE ISTEMAS INEARES - IECpauloac/cci22/cap02_slides.pdf · CCI-22 Introdução Métodos...

80
CCI - 22 MATEMÁTICA COMPUTACIONAL RESOLUÇÃO DE SISTEMAS LINEARES Prof. Paulo André http://www.comp.ita.br/~pauloac [email protected] Sala 110 – Prédio da Computação

Transcript of RESOLUÇÃO DE ISTEMAS INEARES - IECpauloac/cci22/cap02_slides.pdf · CCI-22 Introdução Métodos...

CCI - 22MATEMÁTICA COMPUTACIONAL

RESOLUÇÃO DE SISTEMAS LINEARESRESOLUÇÃO DE SISTEMAS LINEARES

Prof. Paulo Andréhttp://www.comp.ita.br/~pauloac

[email protected] 110 – Prédio da Computação

CCI-22

� Introdução

� Métodos diretos

� Regra de Cramer

� Eliminação de Gauss

� Gauss-Jordan

� Decomposição LU

� Métodos iterativos

� Gauss-Jacobi

� Gauss-Seidel

� Considerações finais

CCI-22

� Introdução

� Métodos diretos

� Regra de Cramer

� Eliminação de Gauss

� Gauss-Jordan

� Decomposição LU

� Métodos iterativos

� Gauss-Jacobi

� Gauss-Seidel

� Considerações finais

MÉTODOS DE RESOLUÇÃO� Para a resolução de um sistema linear de equações, há

dois grupos de métodos:� Métodos diretos: a solução é obtida através da aplicação de

um número finito de operações aritméticas� Regra de Cramer� Eliminação de Gauss e de Gauss-Jordan� Decomposição LU� Decomposição LU

� Métodos iterativos: a solução é obtida através de uma sequência de aproximações sucessivas, até se alcançar uma resposta que satisfaça a precisão exigida� Gauss-Jacobi� Gauss-Seidel

SISTEMAS DE EQUAÇÕES LINEARES� Forma geral:

2nn2222121

1nn1212111

bxa...xaxa

bxa...xaxa

=+++

=+++

MMOMM

onde:

aaijij são os coeficientes

xxii são as incógnitas

bbii são os termos independentes

nnnn22n11n bxa...xaxa =+++

MMOMM bbii são os termos independentes

nn é a ordem do sistema

� Forma matricial:

Ax = bAx = b

=

nn3n2n1n

n22221

n11211

aaaa

aaa

aaa

AMOMM

K

K

=

n

2

1

b

b

b

bM

=

n

2

1

x

x

x

xM

onde:onde:

EXEMPLO

1x5x4x2

2x5x1x4

5x5x4x2

321

321

321

−=++

=−+

=−+

� Forma geral:

1x5x4x2 321 −=++

�Forma matricial:

=

1

2

5

x

x

x

.

542

514

542

3

2

1

CÁLCULO DAS FORÇAS EM UMA TRELIÇA� Um exemplo:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

171

2

3

4

5

6

7

8

9

10

F1 F2 F3

Fh Fh

F1 F2 F3

=−−−=

=++−=

=°++°−=

∑∑

0faffaF

0faffa F

045cosff45cosfF

531y

541x

a54

a1x 4342143421

� Condições de equilíbrio:� Na junção 2: � Na junção 3:

=+−=

=+−=

∑∑

0fFF

0ff F

31y

62x

� Idem para demais junções

� Gerará um sistema de ordem 17

CCI-22� Introdução

� Métodos diretos

� Regra de Cramer

� Eliminação de Gauss

� Gauss-Jordan

� Decomposição LU

� Métodos iterativos

� Gauss-Jacobi

� Gauss-Seidel

� Considerações finais

REGRA DE CRAMER

� Em um sistema de ordem n, quantos determinantes seriam calculados?� n para os numeradores e 1 para o denominador

TEMPO DE PROCESSAMENTO

� Número m de multiplicações, no caso de 17 equações:

18 det17 = 18 ( 17m + 17 det16 )= 18 ( 17m + 17 ( 16m + 16 det15 )) = 18 ( 17m + 17 ( 16m + 16 ( 15m + 15 det14 ))) = 18 ( 17m + 17 ( 16m + 16 ( 15m + 15 ( 14m +

multiplicações

= 18 ( 17m + 17 ( 16m + 16 ( 15m + 15 ( 14m + 14 (.... ( 3m + 3 ( 2m )....)))))

Lembrando:

TEMPO DE PROCESSAMENTO

= 18 ( 17m + 17 ( 16m + 16 ( 15m + 15 ( 14m + 14 (.... ( 3m + 3 ( 2m )....)))))

= m ( 2 x 3 x 4 x 5 x .... x 17 x 18 +

+ 3 x 4 x 5 x .... x 17 x 18 +

+ 4 x 5 x .... x 17 x 18 + + 4 x 5 x .... x 17 x 18 +

+ 5 x .... x 17 x 18 +

: :

+ 16 x 17 x 18 +

+ 17 x 18 )

= 18! (1 + (1/2!) + (1/3!) + ... + (1/16!) ) multiplicações

≈ 9,6 x 1015 multiplicações

TEMPO DE PROCESSAMENTO

� Quantidade de multiplicações: ≈ 9,6 x 1015

� Utilizando um supercomputador atual:� 1011 multiplicações por segundo� Tempo gasto: 9,6 x 104 s ≈ 1 dia

� Se o sistema fosse de ordem 20, exigiria cerca de 28 anos de processamento nesse mesmo computador!

� Um algoritmo bem mais eficiente é o Método da Eliminação de Gauss

CCI-22� Introdução

� Métodos diretos

� Regra de Cramer

� Eliminação de Gauss

� Gauss-Jordan

� Decomposição LU

� Métodos iterativos

� Gauss-Jacobi

� Gauss-Seidel

� Considerações finais

MÉTODO DA ELIMINAÇÃO DE GAUSS

� Objetivo

� Transformação do sistema linear a ser resolvido em um sistema linear triangular

� Operações válidas

� Troca da ordem das linhas

� Multiplicação de uma equação por um número real não nulo

� Substituição de uma equação por uma combinação linear dela mesma com outra equação

SISTEMAS LINEARES TRIANGULARES� Triangular superior:

= 333231

2221

11

0aaa

00aa

000a

A

MOMMM

K

K

K

� Triangular inferior:

=

nn

n333

n22322

n1131211

a000

aa00

aaa0

aaaa

A

K

MOMMM

K

K

K

nn3n2n1n aaaa K

MOMMM

RESOLUÇÃO DE UM SISTEMA TRIANGULAR

�Exemplo:

� Passos da resolução:

2x2

3x5x4

1x2xx

10xx5x4x3

4

43

432

4321

=

=−

−=−+

−=+−+

� Passos da resolução:

2x

315x4

3x5x4

3

3

43

=

=⋅−

=−

1x

1122x

1x2xx

2

2

432

−=

−=⋅−+

−=−+

1x

10125)1(4x3

10xx5x4x3

1

1

4321

=

−=+⋅−−⋅+

−=+−+

122

x4 ==

PASSOS� Considere a matriz aumentada Ab:

[ ]

=

nnn3n2n1n

2n22221

1n11211

baaaa

baaa

baaa

AbMMOMM

K

K

� Passo 1: anular os coeficientes de x nas linhas L a L

Linha L1Linha L2

Linha Ln

� Passo 1: anular os coeficientes de x1 nas linhas L2 a Ln� Substituir a linha L2 pela combinação linear:

11

21211212 a

amonde,LmL =⋅−

� Se a11 = 0, trocar L1 com Lk, onde ak1 ≠ 0� Se Lk não existir, então o sistema não tem solução

� Continuar analogamente para linhas Li , 2 < i ≤ n

� Passo i, 1 < i < n: anular os coeficientes de xi nas linhas Li+1 a Ln

EXEMPLO 1

1xx3x2

3x3x4x4

5xx3x2

321

321

321

−=+−

=−+

=−+

[ ]

−−

=

1132

3344

5132

Ab

a [ ] [ ]513223344L −⋅−−=2aa

m,LmLL11

212112122 ==⋅−= [ ] [ ]

[ ]7120L

513223344L

2

2

−−−=

−⋅−−=

1,11

31

3113133 ==⋅−=a

amLmLL [ ] [ ]

[ ]6260L

513211132L

3

3

−−=

−⋅−−−=

[ ]

−−

−−−

=

6260

7120

5132

Ab

EXEMPLO 1

[ ]

−−

−−−

=

6260

7120

5132

Ab

3, 32 ==⋅−=a

mLmLL 3,22

32

3223233==⋅−=

a

amLmLL

[ ] [ ][ ]15500

712036260

3

3

=

−−−⋅−−−=

L

L [ ]

−−−

=

15500

7120

5132

Ab

=⇒=⇒=−+⇒=−⋅+

=⇒−=−−⇒−=−−

=⇒=

1225362532

273272

3155

111321

2232

33

xxxxxx

xxxx

xx

EXEMPLO 2 (MANTISSA IGUAL A 3)

38x14x2x22

134x3x110x27

57x52x4x

321

321

321

=++

=−+

=++

−=

3814222

134311027

575241

]Ab[

[ ] [ ][ ]

575241)1/27(134311027LmLL 12122 ⋅−−=⋅−= [ ] [ ][ ]

[ ] ( ) [ ][ ]12101130860L

5752411/223814222LmLL

1410140020L

3

13133

2

12122

−−−=

⋅−=⋅−=

−−=

−−−

−−=

12101130860

1410140020

575241

]Ab[

EXEMPLO 2

−−−

−−=

12101130860

1410140020

575241

]Ab[

[ ] ( ) [ ][ ]618006130000

14101400202/8612101130860

3

23233

−−=

−−⋅−−−−−=⋅−=

L

LmLL

[ ]6180061300003 −−=L

−−

−−=

618006130000

1410140020

575241

]Ab[

x3 = -61800/(-61300)=1.01

x2 =[ -1410 – (-1400)⋅⋅⋅⋅1.01]/2 = 0.0

x1 = [57 - 52⋅⋅⋅⋅1.01 -4⋅⋅⋅⋅0.0]/1 = 4.5

No entanto, a solução exata é:

� X1 = 1

� X2 = 1

� X3 = 1

ELIMINAÇÃO DE GAUSS

� EliminaçãoPara cada pivô k do primeiro até o penúltimo Faça

Para todas as linhas i exceto a primeira FaçaLi

= Li +mik*Li

� Resolução� x(n)=b(n)/a(n,n)� Substitui o valor de x(n) na linha n-1 e determinar

x(n-1). � Substituir o valor de x(n) e x(n-1) na linha n-2 e

determinar x(n-2) � continuar até determinar todos x(k)

ALGORITMO ELIMINAÇÃO DE GAUSS

� Para k=1...n-1 � Para i=k+1...n

� m=a(i,k)/a(k,k)� a(i,k)=0� Para j=k+1,n

� a(i,j)=a(i,j)-m*a(k,j)� b(i)=b(i)-m*b(k)

RESOLUÇÃO DO SISTEMA LINEAR

� %Resolução após a Eliminação� x(n)=b(n)/a(n,n)� Para k =n-1...1

� s=0� Para j=k+1 ... n % Coloca os valores de x(n-1) a x(1)Para j=k+1 ... n % Coloca os valores de x(n-1) a x(1)

� s=s+a(k,j)*x(j)� x(k)=(b(k)-s))/a(k,k)

PIVOTEAMENTOS PARCIAL E COMPLETO� Pivôs pequenos geram multiplicadores grandes, que

aumentam os erros de arredondamento...� Uma simples alteração no método de Gauss é escolher

como pivô o elemento de maior módulo:� em cada coluna (pivoteamento parcial)� dentre todos os elementos possíveis no processo de eliminação � dentre todos os elementos possíveis no processo de eliminação

(pivoteamento completo)

� Iremos resolver o exemplo 2 anterior com pivoteamento parcial e precisão de 3 casas decimais:

3814222

134311027

575241

3814222

575241

134311027

EXEMPLO 2 COM PIVOTEAMENTO PARCIAL

]715.166.870[L

]134311027[)27/22(]3814222[LmLL

]521.5207.00[L

]134311027[)27/1(]575241[LmLL

3

13133

2

12122

−−−−−−−−====

−−−−⋅⋅⋅⋅−−−−====⋅⋅⋅⋅−−−−====

−−−−====

−−−−⋅⋅⋅⋅−−−−====⋅⋅⋅⋅−−−−====

− 134311027

− 134311027

−−

715.166.870

521.5207.00

134311027

−−

521.5207.00

715.166.870

134311027

]56.5208.5200[L

]715.166.870[)6.87/07.0(]521.5207.00[LmLL

3

23233

=

−−⋅−−=⋅−=

−−

56.5208.5200

715.166.870

134311027 X3 = 52.08/52.56 = 0.991

X2 = [-71-16.5⋅0,991]/(-87.6) = 0.997

X1 = [134 – (-3)⋅0,991 – 110⋅0.997]/27 = 1.011

CCI-22� Introdução

� Métodos diretos

� Regra de Cramer

� Eliminação de Gauss

� Gauss-Jordan

� Decomposição LU

� Métodos iterativos

� Gauss-Jacobi

� Gauss-Seidel

� Considerações finais

MÉTODO DE GAUSS-JORDAN� Consiste em efetuar operações sobre as equações do

sistema, com a finalidade de obter um sistema

diagonal equivalente, isto é, os elementos aij da matriz A, onde i≠j, são todos nulos.

� A idéia é similar a Eliminação de Gauss porém sendo feito para criar zeros abaixo da diagonal principal e feito para criar zeros abaixo da diagonal principal e depois acima da diagonal principal.

=

nn

33

22

11

a000

0a00

00a0

000a

]A[

K

KOMMM

L

K

K

EXEMPLO GAUSS-JORDAN

4x2x3x2

2x3x2x5

1xx5x

321

321

321

=++

=++

=++

[ ]

=

=

4232

1151

2325

4232

2325

1151

Ab

[ ] [ ][ ]6.04.06.40

2325)5/1(115112122

=

⋅−=⋅−=

L

LmLL

[ ]6.04.06.402

=L

[ ] [ ][ ]2.38.02.20

2325)5/2(4232

3

13133

=

⋅−=⋅−=

L

LmLL

[ ]

=

2.38.02.20

6.04.06.40

2325

Ab

EXEMPLO GAUSS-JORDAN

[ ]

=

2.38.02.20

6.04.06.40

2325

Ab

[ ] [ ][ ]913.2609.000

6.04.06.40)6.4/2.2(2.38.02.20

3

23233

=

⋅−=⋅−=

L

LmLL

[ ]

=

913.2609.000

6.04.06.40

2325

Ab

[ ] [ ][ ]313.106.40

217.3609.000)609.0/4.0(6.04.06.40

2

32322

−=

⋅−=⋅−=

L

LmLL

A ELIMINAÇÃO CONTINUA....

EXEMPLO

[ ] [ ][ ]

314.106.40)6.4/2(232521211

=

−⋅−=−= LmLL

[ ]

−=

913.2609.000

314.106.40

2325

Ab

[ ]571.23051 =L

[ ] [ ][ ]7790.11005

913.2609.000)609.0/3(571.2305

1

31311

−=

⋅−=−=

L

LmLL

[ ]

=

913.2609.000

314.106.40

779.11005

Ab

A solução é:

� X1 = -2,356

� X2 = -0,286

� X3 = 4,783

RESÍDUOS� Se x(1) for encontrado como solução do sistema Ax = b,

então o erro dessa solução é x – x(1).� Multiplicando o erro por A:

� A(x- x(1)) = Ax – Ax(1) = b – b(1) = r(1)

� O resíduo pode ser utilizado para se encontrar uma solução melhorada x(2):

resíduo

solução melhorada x(2):� x(2) = x(1) + δ(1), onde δ(1) é um vetor de correção� Ax(2) = b ⇔ A(x(1) + δ(1)) = b ⇔ Aδ(1) = b - Ax(1) = r(1)

� δ(1) é solução do sistema Aδ = r(1)

� Esses cálculos permitem um processo de refinamento da solução do sistema Ax = b.

EXEMPLO� Vamos refinar o sistema abaixo:

3,106x5,21x2,13x0,81x0,21

8,80x4,11x5,23x8,8x3,53

7,49x1,45x5,11x8,8x5,24

4,16x0,11x3,9x0,3x7,8

4321

4321

4321

4321

−=+−−

−=+−−

−=−+−

=+++

3,106x5,21x2,13x0,81x0,21 4321 −=+−−

� Através do método de Gauss, podemos encontrar a solução abaixo:

T)1( ]00,197,098,197,0[x −=

� Cálculo do resíduo:

=−=

594,0

594,0

214,0

042,0

Axbr )1()1(

Não estábom...

EXEMPLO� Cálculo do vetor de correção δ(1):

=

δ

δ

δ

δ

−−

−−

−−

594,0

594,0

214,0

042,0

5,212,130,810,21

4,115,238,83,53

1,455,118,85,24

0,113,90,37,8

4

3

2

1

� Solução:

−=δ

0000,0

0294,0

0195,0

0295,0

)1(

� Solução melhorada:

−=δ+=

0000,1

9999,0

0000,2

0000,1

xx )1()1()2(

EXEMPLO� Novo resíduo:

=−=

013,0

024,0

011,0

009,0

Axbr )2()2(

Melhor queo anterior

− 0002,0� Cálculo do novo

vetor de correção:

0000,0

0007,0

0002,0

0002,0)2(

� Outra solução melhorada:

−=

0000,1

0000,1

0000,2

0000,1

x )3(

� Novo resíduo:

=

0

0

0

0

r )3(

MELHOR APROXIMAÇÃO� Dado um sistema Ax = b, sejam y e z duas aproximações

da solução exata x. Como saber qual delas é a melhor?� A estratégia mais lógica parece ser comparar os

respectivos resíduos: o menor seria da melhor solução� Infelizmente, isso nem sempre é verdade...� Exemplo:� Exemplo:

=++

=++

=++

64,0x25,0x21,0x15,0

52,0x24,0x16,0x12,0

84,0x12,0x36,0x24,0

321

321

321

� Conclusão: nem sempre a aproximação de menor resíduo é a melhor ou a mais exata

� Se encontrar resíduos menores não garante melhores soluções, como saber se o processo de refinamento por resíduos funciona?

−=

1

14

25

y

=

0

4

3

z

=

08,0

00,0

00,0

ry

=

25,0

24,0

12,0

rz

=

1

4

3

x

CONDICIONAMENTO DE PROBLEMAS� Um problema é dito mal condicionado se pequenas

alterações nos dados de entrada ocasionam grandes erros no resultado final

� Exemplo:

=+

=+

060,0y421,0x481,0

119,0y873,0x992,0Solução: x=1 e y=-1

=+ 060,0y421,0x481,0

� Suponha que os valores desse sistema sejam obtidos experimentalmente, e por isso os termos independentes possam variar de ±0,001:

=+

=+

060,0y421,0x481,0

120,0y873,0x992,0Valor perturbado

Solução: x=0,815 e y=-0,789

Erro na entrada: (|0,119-0,120|/|0.119|) ≈ 0,8%

Erro no resultado: (|1.0-0,815|/|1.0|) ≈ 18,5%

OUTRO EXEMPLO� Considere os seguintes sistemas:

Solução: x=2 e y=3

=+

=+

500,16y501,4x5,1

11y3x

=+

=+

503,16y501,4x5,1

11y3x

Solução: x=10,28 e y=0,24

(a)

(b)

(a)

(c)

(a)

(c)

(b)

MÉTRICAS DE CONDICIONAMENTO� Há métricas para o condicionamento de sistemas de

equações, baseadas em normas de vetores e matrizes (vide Cláudio & Marins)

� No entanto, esses cálculos não resolvem o mal condicionamento apenas indicam a existência...

� Pode ser demonstrado que é possível detectar o mau � Pode ser demonstrado que é possível detectar o mau condicionamento de um sistema de equações apenas com o uso dos refinamentos:� Se os resíduos r(1), r(2), ..., r(n) são pequenos, mas as correções δ(1), δ(2), ..., δ(n) são grandes, então o sistema é mal condicionado

� Para sistemas bem condicionados, bastam no máximo dois refinamentos

� Ao longo desse processo, os resíduos e as correções devem ser calculados com precisão dupla

EXEMPLO

−=−+

=−+

=++

67890,0x4794,1x8965,2x6951,2

0473,1x3253,1x95890,0x4725,1

064700,0x6231,4x6235,1x4759,2

321

321

321

� Considere o sistema abaixo

−=

24419,0

0717,2

8406,1

x )1(

� Primeiro refinamento

� Resolução de Aδ(1) = r(1):

� Primeiro refinamento

=

=−=

000076696,0

000055377,0

000121801,0

678823304,0

047355377,1

064821801,0

6789,0

0473,1

0648,0

Axbr )1()1(

000057765,0

000025110,0

0000042282,0)1(

� Solução melhorada x(2) = x(1) + δ(1):

−=

24419,0

0717,2

8405,1

x )2(

Resíduos pequenos

Correções pequenas

Sistema bemcondicionado

UMA OUTRA FORMA DE VER...� Consideremos o sistema de 3 equações Ax = b:

)0(

333231

232221

131211

A

aaa

aaa

aaa

A =

=

=

3

2

1

b

b

b

b

=

3

2

1

x

x

x

x

� Após a primeira fase da eliminação de Gauss:� Após a primeira fase da eliminação de Gauss:

−==

=

10m

01m

001

Monde,A.M

aa0

aa0

aaa

A

31

21)0()0()0(

)1(33

)1(32

)1(23

)1(22

)1(13

)1(12

)1(11

)1(

� Após a segunda fase da eliminação de Gauss:

==

=

1m0

010

001

Monde,A.M

a00

aa0

aaa

A

32

)1()1()1(

)2(33

)2(23

)2(22

)2(13

)2(12

)2(11

)2(

UMA OUTRA FORMA DE VER...� Resumindo:

� A = A(0)

� A(1) = M(0).A(0) = M(0).A� A(2) = M(1).A(1) = M(1).M(0).A� A = (M(1).M(0))-1.A(2)

� A = (M(0))-1.(M(1))-1.A(2)� A = (M ) .(M ) .A

� É fácil comprovar que:

=−−

1mm

01m

001

)M()M(

3231

211)1(1)0(

� Portanto:

U.L

a00

aa0

aaa

1mm

01m

001

A)2(

33

)2(23

)2(22

)2(13

)2(12

)2(11

3231

21 =

=

CCI-22� Introdução

� Métodos diretos

� Regra de Cramer

� Eliminação de Gauss

� Gauss-Jordan

� Decomposição LU

� Métodos iterativos

� Gauss-Jacobi

� Gauss-Seidel

� Considerações finais

DECOMPOSIÇÃO LU� A comprovação anterior pode ser generalizada em um

teorema

== n333

n22322

n1131211

3231

21

u000

uu00

uuu0

uuuu

1mmm

0

01mm

001m

0001

U.LA

K

MOMMM

K

K

K

K

OMMM

K

K

K

nn3n2n1n u0001mmm KK

� Dada uma matriz quadrada de ordem n, seja Ak a matriz constituída das primeiras k linhas e colunas de A. Suponha que det(Ak) ≠ 0, 0 ≤ k ≤ n-1. Então:� Existe uma única matriz triangular inferior L=(mij), com mii = 1, 1 ≤ i ≤ n. Os demais são os multiplicadores da Eliminação de Gauss

� Existe uma única matriz triangular superior U=(uij), tais que L.U = A.

� det(A) = u11.u12. ... .unn

DECOMPOSIÇÃO LU� Portanto, dados o sistema linear Ax = b e a

decomposição (ou fatoração) L.U da matriz A, temos:� Ax = b ⇔ (L.U)x = b

� Seja y = Ux. A solução do sistema pode ser obtida da resolução de dois sistemas triangulares:� Ly = b� Ly = b� Ux = y

� É possível verificar que y é o vetor constante do lado direito obtido ao final da Eliminação de Gauss

� No exemplo do sistema com 3 equações:� Ly = b ⇔ y = L-1b� Como L = (M(0))-1.(M(1))-1, L-1 = M(1).M(0)

� Portanto, y = M(1).M(0).b

EXEMPLO

3x2x3x4

2x2xx

1x4x2x3

321

321

321

=−+

=++

=++

423 423 423 423

multiplicadores

=

234

211

423

A

− 3/103/10

3/23/10

423

−413/4

3/23/13/1

423

=

113/4

013/1

001

L

=

400

3/23/10

423

U

− 3/103/13/4

3/23/13/1

423

EXEMPLO

3x2x3x4

2x2xx

1x4x2x3

321

321

321

=−+

=++

=++

=

113/4

013/1

001

L

=

400

3/23/10

423

U

1y1 = 1byL =

3yyy3/4

2yy3/1

1y

321

21

1

=++

=+

=

=

0

3/5

1

y

=

0

5

3

xyxU =

0x4

3/5x3/2x3/1

1x4x2x3

3

32

321

=−

=+

=++

DECOMPOSIÇÃO LU COM PIVOTEAMENTO� É possível incorporar as estratégias de pivoteamento

parcial ou total à decomposição LU� As eventuais permutações de linhas na matriz A(k)

podem ser realizadas através da multiplicação de matrizesUma matriz quadrada de ordem n é uma matriz de � Uma matriz quadrada de ordem n é uma matriz de

permutação se for obtida da correspondente matriz identidade através das permutações de suas linhas ou colunas

� Exemplo:

=

=

413

562

951

562

951

413

.

001

100

010

A.P

=

562

951

413

A

EXEMPLO COM PIVOTEAMENTO PARCIAL

2x3x4

3x2x2x

9xx4x3

31

321

321

−=−

=++

=+−

− 143 100 304

=

304

221

143

A )0(

=

4/1344/3

4/1124/1

304

A )1(

=

001

010

100

P )0(

==

143

221

304

A.PA )0()0()0('

=

010

100

001

P )1(

==

4/1124/1

4/1344/3

304

A.PA )1()1()1('

EXEMPLO COM PIVOTEAMENTO PARCIAL

=

8/352/14/1

4/1344/3

304

A )2(

= 014/3

001

L

= 4/1340

304

U

=

12/14/1

014/3L

−=

8/3500

4/1340U

� A’ = P.A, onde P = P(1).P(0):

−=

==

221

143

304

304

221

143

.

010

001

100

A.PA'

EXEMPLO COM PIVOTEAMENTO PARCIAL

−2

2x3x4

3x2x2x

9xx4x3

31

321

321

−=−

=++

=+−

=

12/14/1

014/3

001

L

=

8/3500

4/1340

304

U

9100y001 1

PbLy =

=

4/35

2/21

2

y

−=

2

1

1

xyxU =

=

− 2

3

9

.

010

001

100

y

y

y

.

12/14/1

014/3

001

3

2

1

=

4/35

2/21

2

x

x

x

.

8/3500

4/1340

304

3

2

1

ALGORITMO DA FATORAÇÃO LU COM

PIVOTEAMENTO PARCIAL

� Para cada linha k da matriz A� Selecionar linha r com maior módulo possível para

pivô� Trocar linha r por linha k� Fazer eliminação dos elementos abaixo de a(k,k), � Fazer eliminação dos elementos abaixo de a(k,k),

armazenando os multiplicadores m

� Fazer troca de linhas correspondente em b, c=P.b� Resolver Ly=c=Pb� Resolver Ux=y

ALGORITMO DA FATORAÇÃO LU COM

PIVOTEAMENTO PARCIAL – 1/3

� Para i=1..n� p(i)=i

� Para k=1....(n-1) % para cada linha� pv=|a(k,k)|

r=k� r=k� Para i=(k+1)....n % seleciona linha

� Se (|a(i,k)| > pv então� pv=| a(i,k)|� r=i

� Se pv==0 então Escreva(‘matriz singular’); sair;� .....

ALGORITMO DA FATORAÇÃO LU COM

PIVOTEAMENTO PARCIAL – 2/3

� Se r ≠ k então� aux=p(k)� p(k)=aux� p(r)=aux� Para j=1....n % troca linha r por linha k

� aux=a(k,j)� a(k,j)=a(r,j)� a(r,j)=aux

� Para i=(k+1)....n % eliminação� m=a(i,k)/a(k,k)� a(i,k)=m� Para j=(k+1)....n

� a(i,j)=a(i,j)-m*a(k,j)

� % Fim do Para k=1....(n-1)

ALGORITMO DA FATORAÇÃO LU COM

PIVOTEAMENTO PARCIAL – 3/3

� Para i=1...n% troca de linhas em b, isto é c=P*b� r=p(i)� c(i)=b(r)

� Para i=1...n % Resolução do sistema Ly=c� soma=0� Para j=1...(i-1)

� soma=soma+a(i,j)*y(i)

� y(i)=c(i)-soma

� Para i=n....1 % Resolução do sistema Ux=y� soma=0� Para j=(i+1)...n

� soma=soma+a(i,j)*x(j)

� x(i)=(y(i)-soma)/a(k,k)

CCI-22� Introdução

� Métodos diretos

� Regra de Cramer

� Eliminação de Gauss

� Gauss-Jordan

� Decomposição LU

� Métodos iterativos

� Gauss-Jacobi

� Gauss-Seidel

� Considerações finais

MÉTODOS ITERATIVOS� Como foi inicialmente comentado, os métodos iterativos

para resolução de sistemas lineares consistem em encontrar uma sequência de aproximações sucessivas

� Dada uma estimativa inicial x(0), calcula-se a sequência x(1), x(2), x(3) ..., até que determinado critério de parada seja satisfeitoseja satisfeito

� O sistema Ax = b é transformado em x(k), = Cx(k-1) + g, k>0, onde C é uma matriz e g um vetor

� Critérios de parada:� Máximo erro absoluto ou máximo erro relativo� Número de iterações

� Métodos: Gauss-Jacobi e Gauss-Seidel

CCI-22� Introdução

� Métodos diretos

� Regra de Cramer

� Eliminação de Gauss

� Gauss-Jordan

� Decomposição LU

� Métodos iterativos

� Gauss-Jacobi

� Gauss-Seidel

� Considerações finais

MÉTODO DE GAUSS-JACOBI� Considere o sistema em sua forma inicial:

2nn2222121

1nn1212111

bxa...xaxa

bxa...xaxa

=+++

=+++

nnnn22n11n bxa...xaxa =+++

MMOMM

� Isolando a i-ésima incógnita na i-ésima equação:� x1 = (1/a11) (b1 - a12 x2 - ... - a1n xn)

� x2 = (1/a22) (b2 - a21 x1 - ... - a2n xn)

...

� xn = (1/ann) (bn - an1 x1 - ... - an,n-1 xn-1)

MÉTODO DE GAUSS-JACOBI

� Dessa forma, para x(k) = Cx(k-1) + g:

−−

−−

=a/a0a/a

a/aa/a0

C 22n22221

11n11112

MOMM

L

L

=222

111

a/b

a/b

gM

� Exemplos de critérios de parada:� Erro absoluto: d(k) = maxi |x(k) – x(k-1)| < ε� Erro relativo: dr

(k) = d(k)/(maxi |x(k)|) < ε

−− 0a/aa/a nn2nnn1n L

nnn a/b

EXEMPLO

7,0

−−

−−

−−

=

010/35/1

5/105/1

10/110/20

C

=

10/6

5/8

10/7

g

6x10x3x2

8xx5x

7xx2x10

321

321

321

=++

=++

=++

96,0

−=

6,0

6,1x )0(ε = 0,05

−=+=

94,0

86,1gCxx )0()1(

|x1(1) – x1

(0)| = 0,26

|x2(1) – x2

(0)| = 0,26

|x3(1) – x3

(0)| = 0,34

dr(1) = 0,34/(max xi

(1))= 0,1828 > ε

EXEMPLO

−−

−−

−−

=

010/35/1

5/105/1

10/110/20

C

=

10/6

5/8

10/7

g

−=

94,0

86,1

96,0

x )1(

978,0

−=+=

966,0

98,1

978,0

gCxx )1()2( dr(2) = 0,12/1,98 = 0,0606 > ε

dr(1) = 0,0324/1,9888 = 0,0163 < ε

−=+=

9984,0

9888,1

9994,0

gCxx )2()3(

CRITÉRIO DAS LINHAS� A convergência de um método iterativo para a solução

exata não é garantida: é preciso que o sistema satisfaça algumas condições

� De acordo com Demidovich & Maron (Computational

Mathematics, 1973), há um critério suficiente para convergência do método de Gauss-Jacobi:convergência do método de Gauss-Jacobi:

� Essa condição é conhecida como o critério das linhas

n,...,2,1ipara,aa ii

n

ij1j

ij =<∑≠=

EXEMPLOS� Considere o exemplo anterior:

Considere o exemplo abaixo:

6x10x3x2

8xx5x

7xx2x10

321

321

321

=++

=++

=++ 2+1 < 10

1+1 < 5

2+3 < 10

Garantia de convergência

� Considere o exemplo abaixo:

� No entanto, o método de Gauss-Jacobi converge neste sistema para a solução exata x1 = x2 = 3/2. Verifique!

� Isso mostra que o critério das linhas é suficiente, mas não necessário

3x3x

3xx

21

21

−=−

=+ 1 = 1

1 < 3Não há garantia de convergência

EXEMPLOS

� Reescrevendo o sistema anterior como :

Agora, o método de Gauss-Jacobi diverge para este

3

33

21

21

=+

−=−

xx

xx

1 = 1

1 < 3 Não há garantia de convergência

� Agora, o método de Gauss-Jacobi diverge para este sistema

� Quando o critério não é valido nada se pode afirmar sobre a convergência,

� ....a não ser aplicando o próprio método Gauss-Jacobi e verificando a convergência...

MAIS UM EXEMPLO� Considere o sistema a seguir:

No entanto, uma permutação entre as duas primeiras linhas

6x8x6

3x2x2x5

2xx3x

32

321

321

−=+

=++

−=++ 3+1 > 1

5+2 > 2

6 < 8

Não há garantia de convergência

� No entanto, uma permutação entre as duas primeiras linhas garante a convergência:

� Quando o critério das linhas não for satisfeito, convém tentar uma permutação de linhas e/ou colunas

6x8x6

2xx3x

3x2x2x5

32

321

321

−=+

−=++

=++ 2+2 < 5

1+1 < 3

6 < 8

Garantia de convergência

CCI-22� Introdução

� Métodos diretos

� Regra de Cramer

� Eliminação de Gauss

� Gauss-Jordan

� Decomposição LU

� Métodos iterativos

� Gauss-Jacobi

� Gauss-Seidel

� Considerações finais

MÉTODO DE GAUSS-SEIDEL

� Analogamente ao método de Gauss-Jacobi, calcula-se x(k)

= Cx(k-1) + g:

−−

−−

=a/a0a/a

a/aa/a0

C 22n22221

11n11112

MOMM

L

L

=222

111

a/b

a/b

gM

� No entanto, utiliza-se no cálculo de :

� Valores calculados na mesma iteração:

� Valores da iteração anterior:

−−

=

0a/aa/a

C

nn2nnn1n L

MOMM

=

nnn a/b

gM

)1k(jx +

)1k(1j

)1k(1 x,...,x +

−+

)k(n

)k(1j x,...,x +

EXEMPLO

� Processo iterativo:

=

0

0

0

x )0(ε = 0,05

0x6x3x3

6xx4x3

5xxx5

321

321

321

=++

=++

=++

)1k(2

)1k(1

)1k(3

)k(3

)1k(1

)1k(2

)k(3

)k(2

)1k(1

x5,0x5,00x

x25,0x75,05,1x

x2,0x2,01x

+++

++

+

−−=

−−=

−−=

EXEMPLO

� Primeira iteração (k=0):

)1k(2

)1k(1

)1k(3

)k(3

)1k(1

)1k(2

)k(3

)k(2

)1k(1

x5,0x5,00x

x25,0x75,05,1x

x2,0x2,01x

+++

++

+

−−=

−−=

−−=

875,075,0.5,01.5,0x

75,001.75,05,1x

1001x

)1(3

)1(2

)1(1

−=−−=

=−−=

=−−=

|x1(1) – x1

(0)| = 1

|x2(1) – x2

(0)| = 0,75

|x3(1) – x3

(0)| = 0,875

dr(1) = 1/(max xi

(1)) = 1 > ε

=

875,0

75,0

1

x )1(

EXEMPLO

� Segunda iteração (k=1):

)1k(2

)1k(1

)1k(3

)k(3

)1k(1

)1k(2

)k(3

)k(2

)1k(1

x5,0x5,00x

x25,0x75,05,1x

x2,0x2,01x

+++

++

+

−−=

−−=

−−=

9875,095,0.5,0025,1.5,0x

95,0875,0.25,0025,1.75,05,1x

025,1875,0.2,075,0.2,01x

)2(3

)2(2

)2(1

−=−−=

=−−−=

=+−=

|x1(2) – x1

(1)| = 0,025

|x2(2) – x2

(1)| = 0,20

|x3(2) – x3

(1)| = 0,1125

dr(2) = 0,2/(max xi

(2)) = 0,1951 > ε

=

9875,0

95,0

025,1

x )2(

EXEMPLO

� Terceira iteração (k=2):

)1k(2

)1k(1

)1k(3

)k(3

)1k(1

)1k(2

)k(3

)k(2

)1k(1

x5,0x5,00x

x25,0x75,05,1x

x2,0x2,01x

+++

++

+

−−=

−−=

−−=

9993,09912,0.5,00075,1.5,0x

9912,09875,0.25,00075,1.75,05,1x

0075,19875,0.2,095,0.2,01x

)3(3

)3(2

)3(1

−=−−=

=−−−=

=+−=

|x1(3) – x1

(2)| = 0,0175

|x2(3) – x2

(2)| = 0,0412

|x3(3) – x3

(2)| = 0,0118

dr(2) = 0,0412/(max xi

(3)) = 0,0409 < ε

=

9993,0

9912,0

0075,1

x )3(

INTERPRETAÇÃO GEOMÉTRICA� No caso de um sistema de ordem 2, é possível

visualizar a convergência do método:

x2� Os pontos (x1(k+1), x2(k))

satisfazem a primeira equação, enquanto os pontos (x1(k+1), x2(k+1))

x1

x*enquanto os pontos (x1(k+1), x2(k+1)) satisfazem a segunda

x1

x2

x*

� Alterando a ordem das linhas, no mesmo sistema a convergência pode não ocorrer...

CRITÉRIO DE SASSENFELD� Sejam os seguintes valores:

∑=

⋅=βn

2jj1

111 a

a1

+β⋅⋅=β ∑∑

− n

ij

1i

jiji aaa1

, para 1 < i ≤ n

� Se β < 1, então o método de Gauss-Seidel gera uma sequência convergente, qualquer que seja x(0)

� Quanto menor for β, mais rápida será a convergência

� Exercício: Demonstre a validade do critério!

+β⋅⋅=β ∑∑+== 1ij

ij1j

jijii

i aaa , para 1 < i ≤ n

β = max {βj}, 1 ≤ j ≤ n

EXEMPLO

0,10x4x8,0x2,1x4,0

0,1x2,0xx2,0x1,0

8,7x3,0x6,0x3x6,0

4,0x2,0x2,0xx2

4321

4321

4321

4321

−=+++

=++−−

−=−−+

=+−+

( )

( )

( )

( )

17,0

2736,0358,08,044,02,17,04,04

1

358,02,044,02,07,01,01

1

44,03,06,07,06,03

1

7,02,02,012

1

4

3

2

1

<=β

=⋅+⋅+⋅⋅=β

=+⋅+⋅⋅=β

=++⋅⋅=β

=++⋅=β

EXEMPLOS� Considere o sistema abaixo, anteriormente visto:

� No entanto, o método de Gauss-Seidel converge neste sistema para a solução exata x1 = x2 = 3/2. Verifique!

3x3x

3xx

21

21

−=−

=+( )

1

3/13/1.1

11/1

2

1

==β

==β

para a solução exata x1 = x2 = 3/2. Verifique!� Isso mostra que o critério de Sassenfeld, como o das linhas, é

suficiente, mas não necessário

EXEMPLOS - 2

18x2x6

23xx10

21

21

=−

=+

� Considere mais um sistema:

( )13,0

3,02/1,0.6

1,010/1

2

1

<=β

==β

==β

13,0 <=β

� O critério de Sassenfeld garante a convergência, mas o das linhas, não fornece garantias nesse caso...

� Na verdade, sempre que o critério das linhas for verdadeiro o critério de Sassenfeld também será...

� Exercício: Demonstre que se o critério das linhas é satisfeito Sassenfeld também é satisfeito!

CCI-22� Introdução

� Métodos diretos

� Regra de Cramer

� Eliminação de Gauss

� Gauss-Jordan

� Decomposição LU

� Métodos iterativos

� Gauss-Jacobi

� Gauss-Seidel

� Considerações finais

CONSIDERAÇÕES FINAIS� Se um sistema satisfaz o critério das linhas, então

satisfará também o critério de Sassenfeld (vide Ruggiero & Lopes). Portanto, pode ser aplicado também ao método de Gauss-Seidel

� Os critérios apresentados são condições suficientes, mas não necessáriasnão necessárias

� Em sistemas esparsos (com grande número de coeficientes nulos), o método de Eliminação de Gauss não é apropriado, pois não preserva esta qualidade vantajosa. Nesses casos, convém utilizar métodos iterativos

� Os métodos iterativos são menos suscetíveis ao acúmulo de erros de arredondamento

MÉTODOS DIRETOS VERSUS ITERATIVOS� Solução

� Diretos: sempre ocorre (em sistemas não singulares)� Iterativos: ocorre sob determinadas condições (convergência)

� Esparsidade da matriz de coeficientes� Diretos: alteram a estrutura da matriz

Iterativos: não alteram a estrutura da matriz� Iterativos: não alteram a estrutura da matriz

� Erros de arredondamento� Diretos: ocorrem a cada etapa e podem acumular-se� Iterativos: somente os erros da última etapa afetam a

solução