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,
A = 33 32 31 23 22 21 13 12 11 a a a a a a a a a
Através de passos de eliminação, podemos reduzir a matriz original dos coeficientes, [A], numa matriz [U]
A = 33 32 31 23 22 21 13 12 11 a a a a a a a a a ⇔ U = 33 23 22 13 12 11 ' 0 0 ´ ' 0 a a a a a a
O 1º passo na eliminação de Gauss é multiplicar a 1ª linha da matriz [A] pelo factor f21=
11 21
a a
e subtrair este resultado à 2ª linha de [A], eliminando a . Igualmente,21
multiplica-se a 1ª linha pelo factor f31= 11 31
a a
, e subtrai-se este resultado à 3ª linha de modo a eliminar a . O passo final (note-se que é uma matriz 3x3) consiste em31
multiplicar a 2ª linha pelo factor f32= 22 32 ' ' a a
, e subtrair à 3ª linha eliminando a'32.
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
L = 1 0 1 0 0 1 32 31 21 f f f
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: − = − + − − = + = + + 4 10 2 10 6 2 4 2 z y x y x z y x
Este sistema pode ser representado matricialmente por Ax = b, ou seja
− −1 2 10 0 1 6 4 1 2 z y x = − − 4 10 2
Aplicando os passos de eliminação, que consistem em subtrair a certas linhas múltiplos de outras linhas, obteve-se um sistema Ux = d
− − − 23 0 0 12 2 0 4 1 2 z y x = − − 23 16 2
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á:
L = − −1/2 5/4 1 0 1 3 0 0 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 verifica-se a verifica-seguinte igualdade: [L]{ Ux – d } = Ax – b, de onde verifica-se conclui que:
LU = A ⇔ − −1/2 5/4 1 0 1 3 0 0 1 − − − 23 0 0 12 2 0 4 1 2 = − −1 2 10 0 1 6 4 1 2 e que
Ld = b ⇔ −1/2 −5/4 1 0 1 3 − − 23 16 = − − 4 10
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: U = 1 0 0 0 1 0 0 1 0 1 34 24 23 14 13 12 u u u u u u
e [L] uma matriz triangular inferior
L = 44 43 42 41 33 32 31 22 21 11 0 0 0 0 0 0 l l l l l l l l l l
Poderemos então escrever LU = A,
44 43 42 41 33 32 31 22 21 11 0 0 0 0 0 0 l l l l l l l l l l 1 0 0 0 1 0 0 1 0 1 34 24 23 14 13 12 u u u u u u = 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 a a a a a a a a a a a a a a a a
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]. l = 11 a , 11 l = 21 a21 , l = 31 a , 31 l = 41 a41
Como se pode observar a 1ª coluna de [L] é a 1ª coluna de [A]. Generalizando este resultado temos :
l = i1 a , para i = 1,2,...,ni1
l = 11 a , 11 l11u12 =a12 , l11u13 =a13 , l11u14 =a14
O primeiro resultado (l = 11 a ) já foi estabelecido anteriormente. As restantes11 relações podem ser generalizadas por:
11 1 1 l a u j = j , para j = 2,3, ... ,n
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 l , 22 l , 32 l e generalizando temos:42
li2 =ai2 −li1u12 , 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+l22u23 =a23 , l21u14 +l22u24 =a24
Para o caso geral temos, 22 1 21 2 2 l u l a u j = j− j , para j =3,3, ... ,n
Repetindo o processo podemos calcular os outros elementos das matrizes. li3=ai3−li1u13−li2u23 , para i = 3,4, ... , n 33 2 32 1 31 3 3 l u l u l a u j = j− j − j , para j = 4,5, ..., n li4 =ai4−li1u14−li2u24 −li3u34 , 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). l = i1 a , para i = 1,2, ... ,ni1 (2). 11 1 1 l a u j = j , para j = 2,3, ... , n Para j = 2,3, ... ,n-1 (3).
∑
− = − = 1 1 j k kj ik ij ij a l u l , para i = j, ... , n(4). jj i ik ji jk jk
l
u
l
a
u
∑
=−
=
1 , para k = j+1, j+2, ... , n (5).∑
− =−
=
1 1 n k kn nk nn nna
l
u
l
Observe-se o exemplo seguinte para melhor compreensão deste método.
= + − − = − + − = + − 16 2 4 3 8 3 12 5 2 z y x z y x z y x
De acordo com (1), a 1ª coluna de [L] é idêntica à 1ª coluna de [A]. l11 = 2 ; l = -1 ; 21 l = 331
A equação (2) pode ser usada para calcular a 1ª coluna de [U]. 11 12 12
l
a
u
=
= -5/2 ; 11 13 13l
a
u
=
= 1/2Usando a equação (3), podemos calcular:
l22=a22−l21u12 = 1/2 ; l32 =a32 −l31u12 = 7/2
Usando a equação (4), podemos calcular o último elemento da matriz [U]. 22 13 21 23 23 l u l a u = − = -1
Pela equação (5), vamos calcular o último elemento de [L]. l33 =a33 −l31u13 −l32u23 = 4
então pode-se escrever L =
− 4 2 / 7 3 0 2 / 1 1 0 0 2 e U = − − 1 0 0 1 1 0 2 / 1 2 / 5 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