• Nenhum resultado encontrado

CCI-22 CCI-22. EXEMPLO Forma geral: SISTEMAS DE EQUAÇÕES LINEARES Forma geral: Forma matricial: 5 x. = 1. Prof. Paulo André

N/A
N/A
Protected

Academic year: 2021

Share "CCI-22 CCI-22. EXEMPLO Forma geral: SISTEMAS DE EQUAÇÕES LINEARES Forma geral: Forma matricial: 5 x. = 1. Prof. Paulo André"

Copied!
14
0
0

Texto

(1)

CCI - 22

M

ATEMÁTICA

C

OMPUTACIONAL

R

ESOLUÇÃO DE

S

ISTEMAS

L

INEARES

Prof. Paulo André

http://www.comp.ita.br/~pauloac

[email protected] Sala 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

 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: n n nn 2 2 n 1 1 n 2 n n 2 2 22 1 21 1 n n 1 2 12 1 11 b x a ... x a x a b x a ... x a x a b x a ... x a x a = + + + = + + + = + + + M M O M M onde: a aijijsão os coeficientes x xiisão as incógnitas b

biisão os termos independentes

n né a ordem do sistema



Forma matricial:

Ax = b Ax = b                     = nn 3 n 2 n 1 n n 2 22 21 n 1 12 11 a a a a a a a a a a A M O M M K K             = n 2 1 b b b b M             = n 2 1 x x x x M onde: onde:

EXEMPLO

1 x 5 x 4 x 2 2 x 5 x 1 x 4 5 x 5 x 4 x 2 3 2 1 3 2 1 3 2 1 − = + + = − + = − + 

Forma matricial:

=

1

2

5

x

x

x

.

5

4

2

5

1

4

5

4

2

3 2 1



Forma geral:

(2)

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 17 1 2 3 4 5 6 7 8 9 10 F1 F2 F3 Fh Fh         = − − − = = + + − = = ° + + ° − =

0 f a f f a F 0 f a f f a F 0 45 cos f f 45 cos f F 5 3 1 y 5 4 1 x a 5 4 a 1 x 14243 14243



Condições de equilíbrio:

 Na junção 2:  Na junção 3:     = + − = = + − =

0 f F F 0 f f F 3 1 y 6 2 x

 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 + 14 (.... ( 3m + 3 ( 2m )....))))) multiplicações 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 + + 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 1015multiplicaçõ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 104s ≈1 dia

Se o sistema fosse de ordem 20, exigiria cerca de 28

anosde processamento nesse mesmo computador!

Um algoritmo bem mais eficiente é o

(3)

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:



Triangular inferior:

                = nn n 3 33 n 2 23 22 n 1 13 12 11 a 0 0 0 a a 0 0 a a a 0 a a a a A K M O M M M K K K                 = nn 3 n 2 n 1 n 33 32 31 22 21 11 a a a a 0 a a a 0 0 a a 0 0 0 a A K M O M M M K K K

RESOLUÇÃO DE UM SISTEMA TRIANGULAR



Exemplo:



Passos da resolução:

2 x 3 1 5 x 4 3 x 5 x 4 3 3 4 3 = = ⋅ − = − 1 x 1 1 2 2 x 1 x 2 x x 2 2 4 3 2 − = − = ⋅ − + − = − + 1 x 10 1 2 5 ) 1 ( 4 x 3 10 x x 5 x 4 x 3 1 1 4 3 2 1 = − = + ⋅ − − ⋅ + − = + − + 1 2 2 x4= = 2 x 2 3 x 5 x 4 1 x 2 x x 10 x x 5 x 4 x 3 4 4 3 4 3 2 4 3 2 1 = = − − = − + − = + − +

PASSOS

Considere a matriz aumentada Ab:

[ ]

            = n nn 3 n 2 n 1 n 2 n 2 22 21 1 n 1 12 11 b a a a a b a a a b a a a Ab M M O M M K K

 Passo 1: anular os coeficientes de x1nas linhas L2a Ln

 Substituir a linha L2pela combinação linear: 11 21 21 1 21 2 a a m onde , L m L − ⋅ = Linha L1 Linha L2 Linha Ln

 Se a11= 0, trocar L1com Lk, onde ak1≠ 0

 Se Lknã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 xinas linhas

Li+1a Ln

EXEMPLO

1

1

x

x

3

x

2

3

x

3

x

4

x

4

5

x

x

3

x

2

3 2 1 3 2 1 3 2 1

=

+

=

+

=

+

[ ]

          − − − − = 1 1 3 2 3 3 4 4 5 1 3 2 Ab 2 a a m , L m L L 11 21 21 1 21 2 2= − ⋅ = =

[

]

[

]

[

0 2 1 7

]

L 5 1 3 2 2 3 3 4 4 L 2 2 − − − = − ⋅ − − = 1 , 11 31 31 1 31 3 3= − ⋅ = = a a m L m L L

[

]

[

]

[

0 6 2 6

]

L 5 1 3 2 1 1 1 3 2 L 3 3 − − = − ⋅ − − − =

[ ]

          − − − − − − = 6 2 6 0 7 1 2 0 5 1 3 2 Ab

(4)

EXEMPLO

1

[ ]

          − − − − − − = 6 2 6 0 7 1 2 0 5 1 3 2 Ab 3 , 22 32 32 2 32 3 3= − ⋅ = = a a m L m L L

[

]

[

]

[

0 0 5 15

]

7 1 2 0 3 6 2 6 0 3 3 = − − − ⋅ − − − = L L

[ ]

          − − − − = 15 5 0 0 7 1 2 0 5 1 3 2 Ab      = ⇒ = ⇒ = − + ⇒ = − ⋅ + = ⇒ − = − − ⇒ − = − − = ⇒ = 1 2 2 5 3 6 2 5 3 2 2 7 3 2 7 2 3 15 5 1 1 1 3 2 1 2 2 3 2 3 3 x x x x x x x x x x x x

EXEMPLO

2 (MANTISSA IGUAL A

3)

38 x 14 x 2 x 22 134 x 3 x 110 x 27 57 x 52 x 4 x 3 2 1 3 2 1 3 2 1 = + + = − + = + +           − = 38 14 2 22 134 3 110 27 57 52 4 1 ] Ab [

[

]

[

]

[

]

[

]

(

)

[

]

[

0 86 1130 1210

]

L 57 52 4 1 1 / 22 38 14 2 22 L m L L 1410 1400 2 0 L 57 52 4 1 ) 1 / 27 ( 134 3 110 27 L m L L 3 1 31 3 3 2 1 21 2 2 − − − = ⋅ − = ⋅ − = − − = ⋅ − − = ⋅ − =           − − − − − = 1210 1130 86 0 1410 1400 2 0 57 52 4 1 ] Ab [

EXEMPLO

2

          − − − − − = 1210 1130 86 0 1410 1400 2 0 57 52 4 1 ] Ab [

[

] (

)

[

]

[

0 0 61300 61800

]

1410 1400 2 0 2 / 86 1210 1130 86 0 3 2 32 3 3 − − = − − ⋅ − − − − − = ⋅ − = L L m L L           − − − − = 61800 61300 0 0 1410 1400 2 0 57 52 4 1 ] 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ção

Para cada pivô k do primeiro até o penúltimo Faça Para todas as linhas i exceto a primeira Faça

Li =L i +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)

s=s+a(k,j)*x(j)

(5)

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 (pivoteamento completo)

Iremos resolver o exemplo 2 anterior com pivoteamento

parcial e precisão de 3 casas decimais:

          − 38 14 2 22 134 3 110 27 57 52 4 1

38

14

2

22

57

52

4

1

134

3

110

27

EXEMPLO

2 COM PIVOTEAMENTO PARCIAL

] 71 5 . 16 6 . 87 0 [ L ] 134 3 110 27 [ ) 27 / 22 ( ] 38 14 2 22 [ L m L L ] 52 1 . 52 07 . 0 0 [ L ] 134 3 110 27 [ ) 27 / 1 ( ] 57 52 4 1 [ L m L L 3 1 31 3 3 2 1 21 2 2 − − − − − − − − = == = − −− − ⋅⋅⋅⋅ − −− − = = = = ⋅⋅⋅⋅ − −− − = == = − − − − = == = − −− − ⋅⋅⋅⋅ − − − − = == = ⋅⋅⋅⋅ − −− − = == =           − − − − 71 5 . 16 6 . 87 0 52 1 . 52 07 . 0 0 134 3 110 27           − − − − 52 1 . 52 07 . 0 0 71 5 . 16 6 . 87 0 134 3 110 27 ] 56 . 52 08 . 52 0 0 [ L ] 71 5 . 16 6 . 87 0 [ ) 6 . 87 / 07 . 0 ( ] 52 1 . 52 07 . 0 0 [ L m L L 3 2 32 3 3 = − − ⋅ − − = ⋅ − =           − − − 56 . 52 08 . 52 0 0 71 5 . 16 6 . 87 0 134 3 110 27 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 aijda 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 depois acima da diagonal principal.

=

nn 33 22 11

a

0

0

0

0

a

0

0

0

0

a

0

0

0

0

a

]

A

[

K

K

O

M

M

M

L

K

K

EXEMPLO

GAUSS-JORDAN

4 x 2 x 3 x 2 2 x 3 x 2 x 5 1 x x 5 x 3 2 1 3 2 1 3 2 1 = + + = + + = + +

[ ]

          =           = 4 2 3 2 1 1 5 1 2 3 2 5 4 2 3 2 2 3 2 5 1 1 5 1 Ab

[

]

[

]

[

0

4

.

6

0

.

4

0

.

6

]

2

3

2

5

)

5

/

1

(

1

1

5

1

2 1 21 2 2

=

=

=

L

L

m

L

L

[

]

[

]

[

0

2

.

2

0

.

8

3

.

2

]

2

3

2

5

)

5

/

2

(

4

2

3

2

3 1 31 3 3

=

=

=

L

L

m

L

L

[ ]

          = 2 . 3 8 . 0 2 . 2 0 6 . 0 4 . 0 6 . 4 0 2 3 2 5 Ab

EXEMPLO

GAUSS-JORDAN

[ ]

          = 2 . 3 8 . 0 2 . 2 0 6 . 0 4 . 0 6 . 4 0 2 3 2 5 Ab

[

]

[

]

[

0 0 0.609 2.913

]

6 . 0 4 . 0 6 . 4 0 ) 6 . 4 / 2 . 2 ( 2 . 3 8 . 0 2 . 2 0 3 2 32 3 3 = ⋅ − = ⋅ − = L L m L L

[ ]

          = 913 . 2 609 . 0 0 0 6 . 0 4 . 0 6 . 4 0 2 3 2 5 Ab

[

]

[

]

[

0 4.6 0 1.313

]

217 . 3 609 . 0 0 0 ) 609 . 0 / 4 . 0 ( 6 . 0 4 . 0 6 . 4 0 2 3 23 2 2 − = ⋅ − = ⋅ − = L L m L L A ELIMINAÇÃO CONTINUA....

(6)

EXEMPLO

[

]

[

]

[

5 0 3 2.571

]

314 . 1 0 6 . 4 0 ) 6 . 4 / 2 ( 2 3 2 5 1 2 12 1 1 = − ⋅ − = − = L L m L L

[ ]

          − = 913 . 2 609 . 0 0 0 314 . 1 0 6 . 4 0 2 3 2 5 Ab

[

]

[

]

[

5

0

0

11

.

7790

]

913

.

2

609

.

0

0

0

)

609

.

0

/

3

(

571

.

2

3

0

5

1 3 13 1 1

=

=

=

L

L

m

L

L

[ ]           − − = 913 . 2 609 . 0 0 0 314 . 1 0 6 . 4 0 779 . 11 0 0 5 Ab Asoluçã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):

 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.

resíduo

EXEMPLO

Vamos refinar o sistema abaixo:

3 , 106 x 5 , 21 x 2 , 13 x 0 , 81 x 0 , 21 8 , 80 x 4 , 11 x 5 , 23 x 8 , 8 x 3 , 53 7 , 49 x 1 , 45 x 5 , 11 x 8 , 8 x 5 , 24 4 , 16 x 0 , 11 x 3 , 9 x 0 , 3 x 7 , 8 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 − = + − − − = + − − − = − + − = + + +



Através do método de Gauss, podemos

encontrar a solução abaixo:

T ) 1 ( [0,97 1,98 0,97 1,00] x = −



Cálculo do resíduo:

            − = − = 594 , 0 594 , 0 214 , 0 042 , 0 Ax b r(1) (1) Não está bom...

EXEMPLO

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

            − =             δ δ δ δ             − − − − − − 594 , 0 594 , 0 214 , 0 042 , 0 5 , 21 2 , 13 0 , 81 0 , 21 4 , 11 5 , 23 8 , 8 3 , 53 1 , 45 5 , 11 8 , 8 5 , 24 0 , 11 3 , 9 0 , 3 7 , 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 x x(2) (1) (1)

EXEMPLO

Novo resíduo:             − − = − = 013 , 0 024 , 0 011 , 0 009 , 0 Ax b r(2) (2) Melhor que o anterior



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:      = + + = + + = + + 64 , 0 x 25 , 0 x 21 , 0 x 15 , 0 52 , 0 x 24 , 0 x 16 , 0 x 12 , 0 84 , 0 x 12 , 0 x 36 , 0 x 24 , 0 3 2 1 3 2 1 3 2 1

 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

(7)

CONDICIONAMENTO DE PROBLEMAS

Um problema é dito mal condicionado se pequenas

alterações nos dados de entrada ocasionam grandes erros no resultado final Exemplo:    = + = + 060 , 0 y 421 , 0 x 481 , 0 119 , 0 y 873 , 0 x 992 , 0 Solução: x=1 e y=-1

 Suponha que os valores desse sistema sejam obtidos

experimentalmente, e por isso os termos independentes possam variar de ±0,001:    = + = + 060 , 0 y 421 , 0 x 481 , 0 120 , 0 y 873 , 0 x 992 , 0 Valor 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 , 16 y 501 , 4 x 5 , 1 11 y 3 x    = + = + 503 , 16 y 501 , 4 x 5 , 1 11 y 3 x 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

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

Resolução de Aδ(1)= r(1):      − = − + = − + = + + 67890 , 0 x 4794 , 1 x 8965 , 2 x 6951 , 2 0473 , 1 x 3253 , 1 x 95890 , 0 x 4725 , 1 064700 , 0 x 6231 , 4 x 6235 , 1 x 4759 , 2 3 2 1 3 2 1 3 2 1

 Considere o sistema abaixo

          − − = 24419 , 0 0717 , 2 8406 ,1 x(1)  Primeiro refinamento           − − − =           − −           − = − = 000076696 , 0 000055377 , 0 000121801 , 0 678823304 , 0 047355377 , 1 064821801 , 0 6789 , 0 0473 , 1 0648 , 0 Ax b r(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 bem condicionado

UMA OUTRA FORMA DE VER...

Consideremos o sistema de 3 equações Ax = b:

) 0 ( 33 32 31 23 22 21 13 12 11 A a a a a a a a a a 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:

          − − = =           = 1 0 m 0 1 m 0 0 1 M onde , A . M a a 0 a a 0 a a a 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:

          − = =           = 1 m 0 0 1 0 0 0 1 M onde , A . M a 0 0 a a 0 a a a 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)

É fácil comprovar que:

          = − − 1 m m 0 1 m 0 0 1 ) M ( ) M ( 32 31 21 1 ) 1 ( 1 ) 0 (  Portanto: U . L a 0 0 a a 0 a a a 1 m m 0 1 m 0 0 1 A ) 2 ( 33 ) 2 ( 23 ) 2 ( 22 ) 2 ( 13 ) 2 ( 12 ) 2 ( 11 32 31 21 =                     =

(8)

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                 ⋅                 = = nn n 3 33 n 2 23 22 n 1 13 12 11 3 n 2 n 1 n 32 31 21 u 0 0 0 u u 0 0 u u u 0 u u u u 1 m m m 0 0 1 m m 0 0 1 m 0 0 0 1 U . L A K M O M M M K K K K O M M M K K K

 Dada uma matriz quadrada de ordem n, seja Aka 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

 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

3 x 2 x 3 x 4 2 x 2 x x 1 x 4 x 2 x 3 3 2 1 3 2 1 3 2 1 = − + = + + = + +           − = 2 3 4 2 1 1 4 2 3 A           −10/3 3 / 1 0 3 / 2 3 / 1 0 4 2 3           − 4 1 3 / 4 3 / 2 3 / 1 3 / 1 4 2 3           = 1 1 3 / 4 0 1 3 / 1 0 0 1 L           − = 4 0 0 3 / 2 3 / 1 0 4 2 3 U           −10/3 3 / 1 3 / 4 3 / 2 3 / 1 3 / 1 4 2 3 multiplicadores

EXEMPLO

3 x 2 x 3 x 4 2 x 2 x x 1 x 4 x 2 x 3 3 2 1 3 2 1 3 2 1 = − + = + + = + +           = 1 1 3 / 4 0 1 3 / 1 0 0 1 L           − = 4 0 0 3 / 2 3 / 1 0 4 2 3 U b y L = 3 y y y 3 / 4 2 y y 3 / 1 1 y 3 2 1 2 1 1 = + + = + =           = 0 3 / 5 1 y          − = 0 5 3 x y x U = 0 x 4 3 / 5 x 3 / 2 x 3 / 1 1 x 4 x 2 x 3 3 3 2 3 2 1 = − = + = + +

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 matrizes

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:           =                     = 4 1 3 5 6 2 9 5 1 5 6 2 9 5 1 4 1 3 . 0 0 1 1 0 0 0 1 0 A . P           = 5 6 2 9 5 1 4 1 3 A

(9)

EXEMPLO COM PIVOTEAMENTO PARCIAL

2 x 3 x 4 3 x 2 x 2 x 9 x x 4 x 3 3 1 3 2 1 3 2 1 − = − = + + = + −           − − = 3 0 4 2 2 1 1 4 3 A(0)           − − = 4 / 13 4 4 / 3 4 / 11 2 4 / 1 3 0 4 A(1)           = 0 0 1 0 1 0 1 0 0 P(0)           − = = 1 4 3 2 2 1 3 0 4 A . P A('0) (0) (0)           = 0 1 0 1 0 0 0 0 1 P(1)           − − = = 4 / 11 2 4 / 1 4 / 13 4 4 / 3 3 0 4 A . P A('1) (1) (1)

EXEMPLO COM PIVOTEAMENTO PARCIAL

          − − − = 8 / 35 2 / 1 4 / 1 4 / 13 4 4 / 3 3 0 4 A(2)           − = 1 2 / 1 4 / 1 0 1 4 / 3 0 0 1 L           − − = 8 / 35 0 0 4 / 13 4 0 3 0 4 U

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

          − =           − −           = = 2 2 1 1 4 3 3 0 4 3 0 4 2 2 1 1 4 3 . 0 1 0 0 0 1 1 0 0 A . P A'

EXEMPLO COM PIVOTEAMENTO PARCIAL

Pb Ly =           − = 4 / 35 2 / 21 2 y           − = 2 1 1 x y x U = 2 x 3 x 4 3 x 2 x 2 x 9 x x 4 x 3 3 1 3 2 1 3 2 1 − = − = + + = + −           − = 1 2 / 1 4 / 1 0 1 4 / 3 0 0 1 L           − − = 8 / 35 0 0 4 / 13 4 0 3 0 4 U           −           =                     − 2 3 9 . 0 1 0 0 0 1 1 0 0 y y y . 1 2 / 1 4 / 1 0 1 4 / 3 0 0 1 3 2 1           =                     − − 4 / 35 2 / 21 2 x x x . 8 / 35 0 0 4 / 13 4 0 3 0 4 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),

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

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)

(10)

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 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:

n n nn 2 2 n 1 1 n 2 n n 2 2 22 1 21 1 n n 1 2 12 1 11 b x a ... x a x a b x a ... x a x a b x a ... x a x a = + + + = + + + = + + + M M O M M



Isolando a i-ésima incógnita na i-ésima equação:

 x1= (1/a11) (b1- a12 x2- ... - a1nxn)  x2= (1/a22) (b2- a21 x1- ... - a2nxn)

...

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

MÉTODO DE

GAUSS-JACOBI

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

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)|) < ε

            − − − − − − = 0 a / a a / a a / a 0 a / a a / a a / a 0 C nn 2 n nn 1 n 22 n 2 22 21 11 n 1 11 12 L M O M M L L             = nn n 22 2 11 1 a / b a / b a / b g M

(11)

EXEMPLO

          − = 6 , 0 6 , 1 7 , 0 x(0) ε = 0,05           − − − − − − = 0 10 / 3 5 / 1 5 / 1 0 5 / 1 10 / 1 10 / 2 0 C           = 10 / 6 5 / 8 10 / 7 g 6 x 10 x 3 x 2 8 x x 5 x 7 x x 2 x 10 3 2 1 3 2 1 3 2 1 = + + = + + = + +           − = + = 94 , 0 86 , 1 96 , 0 g Cx x(1) (0) |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

          − − − − − − = 0 10 / 3 5 / 1 5 / 1 0 5 / 1 10 / 1 10 / 2 0 C           − − − = 10 / 6 5 / 8 10 / 7 g           − = 94 , 0 86 , 1 96 , 0 x(1)           − = + = 966 , 0 98 , 1 978 , 0 g Cx x(2) (1) dr(2)= 0,12/1,98 = 0,0606 > ε dr(1)= 0,0324/1,9888 = 0,0163 < ε           − = + = 9984 , 0 9888 , 1 9994 , 0 g Cx x(3) (2)

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 suficientepara

convergência do método de Gauss-Jacobi:

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

n ,..., 2 , 1 i para , a a ii n i j1 j ij < =

≠ =

EXEMPLOS

Considere o exemplo anterior:

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 6 x 10 x 3 x 2 8 x x 5 x 7 x x 2 x 10 3 2 1 3 2 1 3 2 1 = + + = + + = + + 2+1 < 10 1+1 < 5 2+3 < 10 Garantia de convergência 3 x 3 x 3 x x 2 1 2 1 − = − = + 1 = 1 1 < 3 Não há garantia de convergência

EXEMPLOS

Reescrevendo o sistema anterior como :

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... 3 3 3 2 1 2 1 = + − = − x x x x 1 = 1 1 < 3 Não há garantia de convergência

MAIS UM EXEMPLO

Considere o sistema a seguir:

 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

6 x 8 x 6 3 x 2 x 2 x 5 2 x x 3 x 3 2 3 2 1 3 2 1 − = + = + + − = + + 3+1 > 1 5+2 > 2 6 < 8 Não há garantia de convergência 6 x 8 x 6 2 x x 3 x 3 x 2 x 2 x 5 3 2 3 2 1 3 2 1 − = + − = + + = + + 2+2 < 5 1+1 < 3 6 < 8 Garantia de convergência

(12)

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:

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

 Valores calculados na mesma iteração:

 Valores da iteração anterior:

            − − − − − − = 0 a / a a / a a / a 0 a / a a / a a / a 0 C nn 2 n nn 1 n 22 n 2 22 21 11 n 1 11 12 L M O M M L L             = nn n 22 2 11 1 a / b a / b a / b g M ) 1 k ( j x + ) 1 k ( 1 j ) 1 k ( 1 ,...,x x + − + ) k ( n ) k ( 1 j ,...,x x+

EXEMPLO

Processo iterativo:           = 0 0 0 x(0) ε = 0,05 0 x 6 x 3 x 3 6 x x 4 x 3 5 x x x 5 3 2 1 3 2 1 3 2 1 = + + = + + = + + ) 1 k ( 2 ) 1 k ( 1 ) 1 k ( 3 ) k ( 3 ) 1 k ( 1 ) 1 k ( 2 ) k ( 3 ) k ( 2 ) 1 k ( 1 x 5 , 0 x 5 , 0 0 x x 25 , 0 x 75 , 0 5 , 1 x x 2 , 0 x 2 , 0 1 x + + + + + + − − = − − = − − =

EXEMPLO

Primeira iteração (k=0): ) 1 k ( 2 ) 1 k ( 1 ) 1 k ( 3 ) k ( 3 ) 1 k ( 1 ) 1 k ( 2 ) k ( 3 ) k ( 2 ) 1 k ( 1 x 5 , 0 x 5 , 0 0 x x 25 , 0 x 75 , 0 5 , 1 x x 2 , 0 x 2 , 0 1 x + + + + + + − − = − − = − − = 875 , 0 75 , 0 . 5 , 0 1 . 5 , 0 x 75 , 0 0 1 . 75 , 0 5 , 1 x 1 0 0 1 x ) 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): ) 1 k ( 2 ) 1 k ( 1 ) 1 k ( 3 ) k ( 3 ) 1 k ( 1 ) 1 k ( 2 ) k ( 3 ) k ( 2 ) 1 k ( 1 x 5 , 0 x 5 , 0 0 x x 25 , 0 x 75 , 0 5 , 1 x x 2 , 0 x 2 , 0 1 x + + + + + + − − = − − = − − = 9875 , 0 95 , 0 . 5 , 0 025 , 1 . 5 , 0 x 95 , 0 875 , 0 . 25 , 0 025 , 1 . 75 , 0 5 , 1 x 025 , 1 875 , 0 . 2 , 0 75 , 0 . 2 , 0 1 x ) 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): ) 1 k ( 2 ) 1 k ( 1 ) 1 k ( 3 ) k ( 3 ) 1 k ( 1 ) 1 k ( 2 ) k ( 3 ) k ( 2 ) 1 k ( 1 x 5 , 0 x 5 , 0 0 x x 25 , 0 x 75 , 0 5 , 1 x x 2 , 0 x 2 , 0 1 x + + + + + + − − = − − = − − = 9993 , 0 9912 , 0 . 5 , 0 0075 , 1 . 5 , 0 x 9912 , 0 9875 , 0 . 25 , 0 0075 , 1 . 75 , 0 5 , 1 x 0075 , 1 9875 , 0 . 2 , 0 95 , 0 . 2 , 0 1 x ) 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)

(13)

INTERPRETAÇÃO GEOMÉTRICA

No caso de um sistema de ordem 2, é possível

visualizar a convergência do método:

x1

x2

x*

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

satisfazem a primeira equação, 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:

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!

= ⋅ = β n 2 j j 1 11 1 a a 1       + β ⋅ ⋅ = β

+ = − = n 1 i j ij 1 i 1 j j ij ii i a a a 1 , para 1 < i ≤ n β = max {βj}, 1 ≤ j ≤ n

EXEMPLO

0 , 10 x 4 x 8 , 0 x 2 , 1 x 4 , 0 0 , 1 x 2 , 0 x x 2 , 0 x 1 , 0 8 , 7 x 3 , 0 x 6 , 0 x 3 x 6 , 0 4 , 0 x 2 , 0 x 2 , 0 x x 2 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 − = + + + = + + − − − = − − + = + − +

(

)

(

)

(

)

(

)

1 7 , 0 2736 , 0 358 , 0 8 , 0 44 , 0 2 , 1 7 , 0 4 , 0 4 1 358 , 0 2 , 0 44 , 0 2 , 0 7 , 0 1 , 0 1 1 44 , 0 3 , 0 6 , 0 7 , 0 6 , 0 3 1 7 , 0 2 , 0 2 , 0 1 2 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!

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

3 x 3 x 3 x x 2 1 2 1 − = − = +

( )

1 3 / 1 3 / 1 . 1 1 1 / 1 2 1 = β = = β = = β

EXEMPLOS

- 2

18 x 2 x 6 23 x x 10 2 1 2 1 = − = +

 Considere mais um sistema:

(

)

1 3 , 0 3 , 0 2 / 1 , 0 . 6 1 , 0 10 / 1 2 1 < = β = = β = = β

 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

(14)

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á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

Erros de arredondamento

 Diretos: ocorrem a cada etapa e podem acumular-se

 Iterativos: somente os erros da última etapa afetam a

Referências

Documentos relacionados