3.3.4 Fatoração LU - labspot.ufsc.brcampagno/numerico/Aula_9_SL_Direto.pdf · 73 Como u11 =1: ai1...
Transcript of 3.3.4 Fatoração LU - labspot.ufsc.brcampagno/numerico/Aula_9_SL_Direto.pdf · 73 Como u11 =1: ai1...
69
3.3.4 Fatoração LU Ax = b A = LU L – triangular inferior U – triangular superior Vamos observar o exemplo introdutório
( )
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡Α
234211423
0
343
1.
3
31
21
=Μ
=Μ
=
mult
Pivo
( ) 1.31
322
310
32
310
423
321 =Μ=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−Α multpivo
( )
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−Α
8003
23
10423
2
Observe que a matriz ( )1Α pode ser obtida de ( )0Α pré-multiplicado-a por uma matriz conveniente, no caso:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
Μ−Μ−=Μ
1001001
31
211 =
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
1034
0131
001
Da mesma forma a matriz ( )2Α é obtida pré-multiplicando-a por:
70
( )
( ) ( )
( )
( ) ( )
( )
( )
( )
( )
( )
( )
( ) UL
eriortriângularmatrizumaé
Assim
=Α
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ Α
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
ΜΜΜ=Α
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ Α
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
Μ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
ΜΜ=Α
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ Α
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
Μ−⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
Μ−Μ−=Α
ΑΜΜ=Α
Α
ΑΜΜ=Α
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
Μ−=Μ
−
−−
0
2
3231
210
2
323
210
2
32
1
31
210
012
11
0
2
012
2
32
2
001001
10010001
1001001
10010001
1001001
.sup
,
010010001
10010001
71
A matriz L é uma matriz triangular inferior, pois é resultante do produto de matrizes triangulares inferiores elementares.
A decomposição LU não é única..
Seja D uma matriz diagonal não singular qualquer, então:
L = LD é triangular inferior U = UD 1− é triangular superior A = LU = L DD 1− = UL
De modo que UL também é uma decomposição LU. Isto sugere a possibilidade de
se normalizar as decomposições LU.
Seja a transformação A= LDU Onde: L é triangular inferior unitário (diagonal) D é diagonal U triangular superior unitária (diagonal) Pode-se mostrar que a decomposição LDU de uma matriz A é única, se suas submatrizes principais guias [ ] [ ] [ ]121 ,.......,, −ΑΑΑ n são todos não-singulares.
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
Α
−
−−−−−
−
−
nnnnnn
nnnnnn
nn
nn
aaaaaaaa
aaaaaaaa
121
1111211
2122221
1111211
..........................
.................................................
........
.............
isto garante pivôs não nulos. Α = 222111 UDLUDL =Α
222111 UDLUDL =
72
unitárioeriortriangDLLDUU
UUDLDUUDLLD
unitárioSuperiorTriangUunitárioeriorTriangL
existeD
existeU
existeL
sup.
.inf.
221
11
11
21
1222
11
11
12111
11
11
2
1
11
12
11
→=
=−−−
−−−−−−
−
−
−
Produto de 2 matrizes triang. sup. unitário resulta matriz triang sup. unitário. Isto força o ser diagonal ⇒ Identidade.
211
21 UUIUU ==− da mesma forma pode-se chegar .2121 DDeLL == Diferentes decomposições LU:
( ) LULD ==Α U →onde: U é triângular superior unitário – Decomposição de Crout ( ) ULDUL ==Α → onde: L é triângular superior unitário – Decomposição de Doolittle
Se A for simétrica:
CholeskydeãoDecomposiçLLUDLDA
DDDse
LDL
t→=⎟
⎠⎞⎜
⎝⎛⎟
⎠⎞⎜
⎝⎛=
=>
=Α +
21
21
21
21
0
Algoritmo para Decomposição de Crout →= ULA U é triângular superior com diagonal unitária
{ } njiula jkjimim
k kiji ,.....1,,
1== ∑ =
73
Como :111 =u nilula iii ,.....,1,11111 === ou seja a primeira coluna de é igual a primeira coluna de L. Além disso:
jij ula 111=
njla
u jj ,.......1
11
11 ==
Assim determinamos 1° linha de U. Suponha que as primeiras (p –1) colunas de L e as primeiras (p – 1) linhas de U tenham sido calculadas e como 1=kku .
).....,.........1,(1
1nppiulla
p
kkpikipip +=+= ∑
−
=
portanto a esimap coluna de L é dada por:
( )∑ −
=+=−=
1
1,.....1,p
k kpikipip nppiUlal Da mesma forma ( )∑ −
=+=+=
1
1,....1p
k kjpkpjpppj npjulula onde
( ) ( )npjulal
u kjp
k pjpjpp
pj ,..11 1
1+=−= ∑ −
=
Observe que não há necessidade de calcular-se para j = p, pois, 1=ppu . OBS: Pode-se verificar que, após ija Ter sido utilizado para calcular jiji uoul , ele não é mais utilizado, assim, os elementos não nulos de L e U podem ser escritos sobre os elementos correspondentes de A. Algoritmo para Redução de Crout: para p = 1, 2,.....,n: 1. npiulala pkki
p
kpipipi ,.....,,1
1=−=← ∑ −
−
2. ( ) npjUlalua p
k jkkpjpppjpjp ,......1,1
11 +=−=← ∑ −
=−
- Os elementos ppl são pivôs na redução de Grauss e são ≠ 0, se as submatrizes
principais guias de A são não – singulares. - Produtos internos devem ser acumulados em precisão dupla.
74
A utilização de pivôs pequenos podem provocar erros de arredondamento que contaminam significativamente a solução. Uma solução é utilizar o pivoteamento parcial, isto é, fazer uma pesquisa na coluna do pivô de forma a encontrar o elemento de maior valor absoluto. O elemento com maior valor absoluto é utilizado como pivô, para tanto, permuta-se a linha do elemento com a linha do pivô.
É importante observar que, quando forem executadas as etapas de substituição direta e inversa, as permutações realizada no pivotemameto devem ser realizados no vetor independente do sistema de equação linear. Def. Matriz de Permutação
Matriz quadrada de ordem n obtida da matriz identidade de ordem n pela permutação de suas linhas.
A pré-multiplicação de uma matriz A por uma matriz de permutação P resulta em uma matriz A’, obtida de A com a mesma seqüência de permutações de linhas , realizados na matriz P.
Seja o sistema linear bxA = e sejam os fatores LU obtidos por redução de Crout com pivoteamento parcial. Portanto, LU são fatores de A’. Onde: A’= PA
As mesmas permutações devem ser efetuados sobre b . bPb =' Algoritmo redução de Crout com permutação de linhas. Para p=1, 2,.........n 1. ( )∑ −
==−=←
1
1.......,,p
k kpikipipip npiUlala
2. ( )npillquetalAchar ippp p,......, =≥ρρ
3. ( )njaa jpj p,......2,1=← ρ
4. ( ) ( )nkjulalua p
k kjpkppppjpj ,.....11
111 +=−=← ∑ −
=−
OBS: O algoritmo de Crout com pivoteamneto parcial pode ser considerado um algoritmo estável.
75
3.3.5 Decomposição de Cholesky Considerando: A Simétrica e definida positiva Tem-se
tLLA =
Teorema: Se A é simétrica positiva definida então existe uma única matriz L com elementos diagonais positivos tal que tLLA = . OBS 1: A matriz A é positiva definida se 0>xAxT para qualquer vetor x diferente de zero. OBS 2: Os elementos diagonais de uma matriz definida positiva são sempre positivos. 0>= iii
Ti aeAe
ie – vetor com elemento igual a 1 na posição i e o restante igual a zero. A prova do teorema é feita por indução.
11: −×−⎥⎦
⎤⎢⎣
⎡= nnordemdesubmatrizHepositivaescalardonde
Hvvd
AT
A matriz particionada pode ser escrito como o produto:
⎥⎥⎦
⎤
⎢⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡⎥⎥
⎦
⎤
⎢⎢
⎣
⎡
−−
in
T
n Id
vdHI
dvd
00010
1
dvvHH
T
−= a matriz H é simétrica e também positiva definida, pois para qualquer vetor
x de comprimento n-1.
xHxxd
vvHxxd
vx
Hvvd
xd
vx TT
T
TT
TT
=⎟⎟⎠
⎞⎜⎜⎝
⎛−=
⎥⎥
⎦
⎤
⎢⎢
⎣
⎡−
⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡− ,
0>xHxT , pois a matriz original é positiva definida por.
76
Por indução H, pode ser fatorado como THH LL com elementos diagonais positivos.
Portanto, A pode ser dada por:
T
TH
T
Hn
T
THHn
LLL
dvd
Ldvd
Id
vdLLo
oI
dvd
=⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥
⎦
⎤
⎢⎢
⎣
⎡=
⎥⎥⎦
⎤
⎢⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡⎥⎥
⎦
⎤
⎢⎢
⎣
⎡
−− 0
0
000110
11
Para provar a unidade, tem-se:
( )1⎥⎦
⎤⎢⎣
⎡=
Hvvd
AT
( )20⎥⎦
⎤⎢⎣
⎡= − Ll
Lλ
( )30
0 2
⎥⎥⎦
⎤
⎢⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡== T
T
T
TT
LLll
Ll
LlLLA
λλλλλ
De (1) e (3) tem-se:
λλ
λλ
λλ
vlvl
vlvl
doudT
TTT
==
==
==2
Como podemos ver, os fatores l são únicos para λ positivo. Este procedimento pode ser estendido por indução aos fatores seguintes. Computação dos fatores
Suponha a matriz particionado como ⎥⎦
⎤⎢⎣
⎡=
5TuuM
A onde os fatores TMM LL da
submatriz principal M já foram obtidos. Os fatores da matriz A podem se dado por:
⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡=Α
suuM
twL
twL
T
TM
TM
00
uwLM =
212 )( wwststww TT −=⇒=+
77
Para i = 1, 2, ......n
Solucione
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
−−− 1,11,1
11
...
....
..0
iii ll
l
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
−1,
1
ii
i
l
l
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
−1,
1
ii
i
a
a
Compute ⎥⎦
⎤⎢⎣
⎡−= ∑
−
=
21
1ki
i
Kiiii lal
Exemplo 2x2.
( )
⎥⎦
⎤⎢⎣
⎡=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=−=
=+
==
⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
3114
411
212
411
21
2
4113
32
112
3114
0202
512131214
21
2
wwt
tww
ww
tw
tw
t
T
T
( ) 21
2
1
5
12
411
212
WWt
ww
uwL
T
M
−=
⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡
⎥⎥⎦
⎤
⎢⎢⎣
⎡
=
78
Computado e acessado iil
TiKl
Elemento não Calculado Pela simetria de A, apenas é necessário se trabalhar com sua metade inferior. Além disso, os elementos de L podem ser escritos sobre os de A. Algoritmo Para K = 1, 2, ....n
⎟⎟⎠
⎞⎜⎜⎝
⎛−=←
−=
∑−
=
1
1
1
1.........,2,1.1i
jjKjiiK
iiiKiK lla
lla
KiPara
∑−
=
−=←1
1
2.2K
jjkKKKKKK lala
OBS: A decomposição de Cholesky requer 6
3n multiplicações, isto é, a metade das
exigidas pela redução de Crout. Os produtos internos devem ser acumulados em precisão dupla, para se obter exatidão adicional. O algoritmo de Cholesky é incondicionalmente estável. Como A é positiva definida, não há necessidade de pivoteamento, pois neste caso ela sempre é diagonal dominante. 3.4 Solução de Sistemas Lineares A partir das decomposições de Crout e Cholesky vistas anteriormente, pode-se resolver os sistemas lineares através de substituições. Seja o sistema Linear: bxA = 3.4.1 Decomposição LU LUPA = bPxLU =
79
Substituição Direta 'bbPyL == Substituição Inversa yxU = Substituição Direta 'bbPyL == Atualização por linhas
nilylby iij
i
jijii .........,2,1/
1
1
, =⎟⎟⎠
⎞⎜⎜⎝
⎛−= ∑
−
=
Substituição Inversa yxU =
1,.......,11
−=⎟⎟⎠
⎞⎜⎜⎝
⎛−= ∑
+=
nixuyxn
ijjijii
Substituição Direta Atualização por colunas.
80
22
23233
22
2'2
,11
,,'
,131
'3
,'3
,121
,2
,2
11
1'1
2
11
2
1
1
2221
11
''
'
'2
.
1
blbb
blbblb
b
Colunablbb
blbb
blbblb
b
Coluna
b
bb
y
yy
ll
lll
nnn
nnn
nnnnn
−=
−=
=
−=
−=
−=
=
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
M
M
Coluna n
nn
nn l
bb
'' =
No final 'by = , observe que as atualizações foram feitas por colunas. Algoritmo para atualização por colunas
'
''
''',1
/''1.......1
byl
bb
ContinueContinue
lbbbnjkPara
lbbnjPara
nn
nn
kjjKK
jjjj
=
=
−=+=
=−=
As substituições direta e inversa requerem 2η multiplicações.
81
3.4.2 Decomposição de Cholesky
Neste caso não há necessidade de utilizar permutações.
bxLL
LLT
T
=
=Α
Substituições direta bYL = Substituições Inversa yxLT =