CCI - 22
M
ATEMÁTICAC
OMPUTACIONALR
ESOLUÇÃO DES
ISTEMASL
INEARESProf. 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 finaisCCI-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 finaisMÉ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 1Forma geral:
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 14243Condiçõ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 xIdem 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 finaisREGRA 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çõesTEMPO DE PROCESSAMENTO
Quantidade de multiplicações: ≈ 9,6 x 1015Utilizando 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
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 finaisMÉ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 KRESOLUÇÃ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 KPasso 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 AbEXEMPLO
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 xEXEMPLO
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.5No 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)
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 finaisMÉ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 11a
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 AbEXEMPLO
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....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,783RESÍ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 anteriorCá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
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 1Considere 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 = =
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 finaisDECOMPOSIÇÃ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 multiplicadoresEXEMPLO
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
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ãoaux=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*br=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 finaisMÉ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 finaisMÉ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
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
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 finaisMÉ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)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 ≤ nEXEMPLO
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 finaisCONSIDERAÇÕ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