DECOMPOSIÇÃO LU

Propaganda
Métodos de decomposição LU
A decomposição LU é das técnicas mais usadas para resolver sistemas de
equações algébricas. Vamos abordar dois tipos de decomposição LU: por eliminação de
Gauss e pelo método de Crout.
1. Eliminação de Gauss e decomposição LU
A eliminação de Gauss pode ser usada para decompor uma matriz dos
coeficientes [A], em duas matrizes [L] e [U], onde [U] é uma matriz triangular superior
(todos os elementos abaixo da diagonal principal são nulos), e [L] é uma matriz
triangular inferior. Seja [A] uma matriz quadrada, por exemplo 3x3,
 a11
A =  a 21
 a 31
a12
a 22
a 32
a13 
a 23 
a 33 
Através de passos de eliminação, podemos reduzir a matriz original dos
coeficientes, [A], numa matriz [U]
 a11
A =  a 21
 a 31
a12
a 22
a 32
a13 
a 23 
a 33 
 a11
⇔ U =  0
 0
a12
a' 22
0
a13 
a´23 
a' 33 
O 1º passo na eliminação de Gauss é multiplicar a 1ª linha da matriz [A] pelo
factor f21=
a 21
e subtrair este resultado à 2ª linha de [A], eliminando a 21 . Igualmente,
a11
multiplica-se a 1ª linha pelo factor f 31=
a 31
, e subtrai-se este resultado à 3ª linha de
a11
modo a eliminar a31 . O passo final (note-se que é uma matriz 3x3) consiste em
multiplicar a 2ª linha pelo factor f 32=
a ' 32
, e subtrair à 3ª linha eliminando a' 32 .
a' 22
A matriz [L]é uma matriz triangular inferior, cujos os elementos da diagonal
principal são 1’s e os restantes elementos são os factores f21, f31, f32
1
L =  f 21
 f 31
0
1
f 32
0
0
1
Multiplicando as matrizes [L] e [U], obtemos a matriz original [A].
A eliminação de Gauss representa uma decomposição LU de [A]. O exemplo
seguinte mostra uma aplicação deste método. Considerando um sistema de três
equações:
 2x + y + 4z = 2

 6 x + y = −10
− x + 2 y − 10 z = −4

Este sistema pode ser representado matricialmente por Ax = b, ou seja
4 
2 1
6 1
0 

 − 1 2 − 10
 x
 2 
 y  =  − 10

 

 z 
 − 4 
Aplicando os passos de eliminação, que consistem em subtrair a certas linhas
múltiplos de outras linhas, obteve-se um sistema Ux = d
4 
2 1
0 − 2 − 12 


0 0 − 23
 x
 2 
 y  =  − 16 
 


 z 
 − 23
O 1º passo da eliminação consistiu em subtrair à 2ª linha a 1ª multiplicada por 3.
No 2º passo multiplicou-se a 1ª linha por –1/2 e subtraiu-se à 3ª linha. O último passo
(neste caso por ser uma matriz 3x3), consistiu em subtrair à 3ª linha a 2ª multiplicada
por –5/4. A matriz [L] será:
0
0
 1

1
0
L=  3
 − 1 / 2 − 5 / 4 1 
Note-se que os elementos por baixo da diagonal principal são exactamente os
multiplicadores 3,-1/2, -5/4, utilizados nos passos do processo de eliminação, e verificase a seguinte igualdade: [L]{ Ux – d } = Ax – b, de onde se conclui que:
4 
4 
0
0  2 1
 1
2 1





LU = A ⇔  3
0 
1
0 0 − 2 − 12  =  6 1
 − 1 2 − 10
 − 1 / 2 − 5 / 4 1  0 0 − 23
e que
0
0  2 
 1
 2 




Ld = b ⇔  3
1
0  − 16  =  − 10
 − 1 / 2 − 5 / 4 1   − 23
 − 4 
2. Método de decomposição de Crout
Esta decomposição é um algoritmo eficiente para decompor a matriz [A] nas
matrizes [L] e [U]. Seja [U] uma matriz 4x4, triangular superior com 1’s na diagonal
principal:
1 u12 u13 u14 
0 1 u
u24 
23

U=
0 0
1 u34 


0
1
0 0
e [L] uma matriz triangular inferior
 l11 0
l
l
L =  21 22
l31 l32

l41 l42
0
0
l33
l43
0
0 
0

l44 
Poderemos então escrever LU = A,
 l11
l
 21
l 31

l 41
0
l 22
l 32
l 42
0
0
l 33
l 43





l 44 
0
0
0
1 u12
0 1

0 0

0 0
u13
u 23
1
0
u14 
 a11

a
u24 
=  21
 a 31
u34 


1
 a 41
a12
a 22
a 32
a 42
a13
a 23
a 33
a 43
a14 
a 24 
a 34 

a 44 
O método de Crout derivado através da multiplicação de matrizes do lado
esquerdo ( L e U ) e depois equacionando os resultados para o lado direito.
Recorrendo às regras de multiplicação de matrizes, e para matrizes 4x4 temos os
seguintes passos:
1º passo - Multiplicar as linhas de [L] pela 1ª coluna de [U].
l11 = a11 , l 21 = a 21
, l 31 = a31 , l41 = a 41
Como se pode observar a 1ª coluna de [L] é a 1ª coluna de [A]. Generalizando
este resultado temos :
li1 = ai1 , para i = 1,2,...,n
2º passo – A seguir a 1ª linha de [L] pode ser multiplicada pelas colunas de [U].
l11 = a11 , l11u12 = a12 , l11u13 = a13 , l11u14 = a14
O primeiro resultado ( l11 = a11 ) já foi estabelecido anteriormente. As restantes
relações podem ser generalizadas por:
a
u1 j = 1 j , para j = 2,3, ... ,n
l11
3º passo – Da 2ª à 4ª linha da matriz [L], vamos multiplicá-las pela 2ª coluna de
[U].
l21u12 + l22 = a22 , l31u12 + l32 = a32 , l41u12 + l42 = a42
Resolvendo estas equações em ordem a l22 , l32 , l42 e generalizando temos:
l i 2 = a i 2 − l i1u12 , para i = 2,3, ... ,n
4º passo – A seguir, os coeficientes da 2ª linha de [U] podem ser calculados
multiplicando a 2ª linha de [L] pela 3ª e 4ª coluna de [U].
l21u13 + l22 u23 = a23 , l 21 u14 + l 22 u 24 = a 24
Para o caso geral temos,
a −l u
u2 j = 2 j 21 1 j , para j =3,3, ... ,n
l22
Repetindo o processo podemos calcular os outros elementos das matrizes.
li 3 = ai 3 − li1u13 − li 2u 23
u3 j =
, para i = 3,4, ... , n
a3 j − l31u1 j − l32 u2 j
, para j = 4,5, ..., n
l33
li 4 = ai 4 − li1u14 − li 2u24 − li 3u34
, para i = 4,5, ... , n
Inspeccionando as equações referentes aos termos gerais, refira-se as seguintes
fórmulas concisas para a implementação do método:
(1). li1 = ai1 , para i = 1,2, ... ,n
a
(2). u1 j = 1 j , para j = 2,3, ... , n
l11
Para j = 2,3, ... ,n-1
(3). lij = aij −
j −1
∑l
k =1
ik
ukj , para i = j, ... , n
j −1
(4). u jk =
a jk − ∑l ji uik
i =1
l jj
, para k = j+1, j+2, ... , n
n−1
(5). lnn = ann − ∑ lnkukn
k =1
Observe-se o exemplo seguinte para melhor compreensão deste método.
 2 x − 5 y + z = 12

 − x + 3 y − z = −8
3 x − 4 y + 2 z = 16

De acordo com (1), a 1ª coluna de [L] é idêntica à 1ª coluna de [A].
l 11 = 2 ; l 21 = -1 ; l 31 = 3
A equação (2) pode ser usada para calcular a 1ª coluna de [U].
u12 =
a13
a12
= -5/2 ; u13 =
= 1/2
l11
l11
Usando a equação (3), podemos calcular:
l 22 = a22 − l 21u12 = 1/2 ; l 32 = a 32 − l 31u12 = 7/2
Usando a equação (4), podemos calcular o último elemento da matriz [U].
a −l u
u 23 = 23 21 13 = -1
l 22
Pela equação (5), vamos calcular o último elemento de [L].
l 33 = a 33 − l 31 u13 − l 32 u 23 = 4
0 0
2

então pode-se escrever L =  − 1 1 / 2 0 e U =
 3 7 / 2 4
1 − 5 / 2 1 / 2
0
1
− 1  .

0
0
1 
Facilmente se verifica que o produto entre estas duas matrizes é igual á matriz
[A].
Cadeira: Fisica Aplicada à Computação – 2000/2001 – 4º Ano - 2º Semestre
Autor: Manuel Eduardo Clemente Silva
Download