resoluÇÃo de istemas ineares - iecpauloac/cci22/cap02_slides.pdf · cci-22 introdução métodos...
TRANSCRIPT
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