Você está na página 1de 49

Sistemas de Equacoes Lineares

Sistemas de Equa coes Lineares


Decomposicao LU: Algoritmos e Aplicacoes
Eduardo Camponogara
Departamento de Automa cao e Sistemas
Universidade Federal de Santa Catarina
DAS-5103: Calculo Numerico para Controle e Automacao
1 / 49
Sistemas de Equacoes Lineares
Sumario
Introdu cao
Substituicao Direta
Retrosubstituicao
Obtendo LU sem Permuta coes
Decomposicao LU com Pivoteamento
Metodo de Crout
2 / 49
Sistemas de Equacoes Lineares
Introdu cao
Sumario
Introdu cao
Substituicao Direta
Retrosubstituicao
Obtendo LU sem Permuta coes
Decomposicao LU com Pivoteamento
Metodo de Crout
3 / 49
Sistemas de Equacoes Lineares
Introdu cao
Decomposicao LU
Dado um sistema de equacoes lineares, com A nao-singular:
A x = b (1)
A decomposicao LU busca encontrar tres matrizes n n de
maneira que
P A = L U (2)
onde:

P e uma matriz de pivoteamento (tambem indicada na


literatura como matriz de permuta cao);

L e uma matriz diagonal inferior (Lower); e

U e uma matriz diagonal superior (Upper).


4 / 49
Sistemas de Equacoes Lineares
Introdu cao
Decomposicao LU
Este metodo busca transformar o problema em dois problemas
faceis de serem resolvidos, que e a resolu cao de sistemas lineares
com matrizes triangulares.
Questao

Qual e a vantagem de quebrarmos A em duas matrizes


triangulares?

A vantagem e que a solucao de sistemas triangulares e trivial


(retrossubstituicao).
5 / 49
Sistemas de Equacoes Lineares
Introdu cao
Decomposicao LU
Metodo de Resolu cao

De posse das matrizes PLU, o metodo de resolu cao e:


A x = b
P
1
L U x = b (3)

Denimos y = Ux e pre-multiplicamos a equacao (3) por P,


obtendo:
P P
1
L y = P b
L y = P b (4)
6 / 49
Sistemas de Equacoes Lineares
Introdu cao
Decomposicao LU
Metodo de Resolu cao: Continua cao

O sistema na equacao (4) pode ser resolvido por substituicao


direta, o que nos leva a encontrar y.

Assim, possumos elementos para resolver:


U x = y (5)
por retrosubstituicao.
7 / 49
Sistemas de Equacoes Lineares
Substitui cao Direta
Sumario
Introdu cao
Substituicao Direta
Retrosubstituicao
Obtendo LU sem Permuta coes
Decomposicao LU com Pivoteamento
Metodo de Crout
8 / 49
Sistemas de Equacoes Lineares
Substitui cao Direta
Substitui cao Direta
Admita o sistema de equacoes lineares:
L y = b
onde L e uma matriz diagonal inferior. Usaremos um exemplo com
L R
33
para exemplicar o processo, onde:

l
11
0 0
l
21
l
22
0
l
31
l
32
l
33

y
1
y
2
y
3

b
1
b
2
b
3

9 / 49
Sistemas de Equacoes Lineares
Substitui cao Direta
Substitui cao Direta
Podemos observar que
y
1
=
b
1
l
11
e obtemos seu valor de imediato. No passo seguinte temos que
l
21
y
1
+ l
22
y
2
= b
2
y
2
=
1
l
22
(b
2
l
21
y
1
)
mas y
1
ja e conhecido, entao pode-se obter o valor de y
2
. Desta
maneira, y
3
e eventuais y
n
podem ser calculados sucessivamente.
10 / 49
Sistemas de Equacoes Lineares
Retrosubstituicao
Sumario
Introdu cao
Substituicao Direta
Retrosubstituicao
Obtendo LU sem Permuta coes
Decomposicao LU com Pivoteamento
Metodo de Crout
11 / 49
Sistemas de Equacoes Lineares
Retrosubstituicao
Retrossubstitui cao
Admita agora o sistema de equacoes lineares:
U x = y
onde U e uma matriz diagonal superior. Utilizamos novamente um
exemplo com U R
33
para apresentar o processo, onde:

u
11
u
12
u
13
0 u
22
u
23
0 0 u
33

x
1
x
2
x
3

y
1
y
2
y
3

12 / 49
Sistemas de Equacoes Lineares
Retrosubstituicao
Retrossubstitui cao
Da mesma maneira que na se cao anterior, mas iniciando a partir
da ultima linha de U, temos que:
x
3
=
y
3
u
33
x
2
=
1
u
22
(y
2
u
23
x
3
)
.
.
.
13 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Sumario
Introdu cao
Substituicao Direta
Retrosubstituicao
Obtendo LU sem Permuta coes
Decomposicao LU com Pivoteamento
Metodo de Crout
14 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Obtendo LU sem Permutacoes

Primeiro consideraremos o problema da obten cao da fatoracao


sem a matriz de permuta coes. Este caso especial e obtido
fazendo P = I (identidade) no caso geral. Admita a seguinte
divisao das matrizes A = L U:

a
11
A
12
A
21
A
22

1 0
L
21
L
22

u
11
U
12
0 U
22

onde

A
21
e L
21
R
(n1)1
sao matrizes colunas;

A
12
e U
12
R
1(n1)
sao matrizes linhas;

A
22
, L
22
, U
22
R
(n1)(n1)
agrupam o restante das matrizes
originais.
15 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Obtendo LU sem Permutacoes
Do produto obtemos:

a
11
A
12
A
21
A
22

u
11
U
12
u
11
L
21
L
21
U
12
+ L
22
U
22

16 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Obtendo LU sem Permutacoes
Assim podemos obter a primeira linha de U e a primeira coluna de
L, fazendo:
u
11
= a
11
U
12
= A
12
L
21
=
1
u
11
A
21
e ainda obtemos:
L
22
U
22
= A
22
L
21
U
12
= A
22

1
a
11
A
21
A
12
que nos permite calcular L
22
e U
22
fatorando A
22
L
21
U
12
.
17 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Obtendo LU sem Permutacoes
Assim, chegamos ao seguinte algoritmo recursivo:
1) calcular a primeira linha de U: u
11
= a
11
e U
12
= A
12
;
2) calcular a primeira coluna de L: L
21
= (
1
a
11
)A
21
;
3) calcular a decomposicao das sub-matrizes L
22
e U
22
:
L
22
U
22
= A
22
L
21
U
12
.
18 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Obtendo LU sem Permutacoes
Este algoritmo ca da seguinte maneira em pseudo-c odigo:
Algoritmo
LU-Solve(A)
1 n rows[A]
2 for k 1 to n
3 u
kk
a
kk
4 for i k + 1 to n
5 l
ik
a
ik
/u
kk
6 u
ki
a
ki
7 for i k + 1 to n
8 for j k + 1 to n
9 a
ij
a
ij
l
ik
u
kj
10 return L and U
19 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Exemplo
Calcular a fatoracao LU de
A =

2 3 1
6 13 5
2 19 10

20 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Exemplo: Continua cao
It k = 1:

2 3 1
6 4 2
2 16 9

1 0 0
3 1 0
1 1

2 3 1
0
0 0

It k = 2:

2 3 1
6 4 2
2 16 1

1 0 0
3 1 0
1 4 1

2 3 1
0 4 2
0 0

It k = 3:

2 3 1
6 4 2
2 16 1

1 0 0
3 1 0
1 4 1

2 3 1
0 4 2
0 0 1

21 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Discussao do Algoritmo
Discussao do Algoritmo

Podemos observar que o algoritmo modica a matriz A e que


os valores contidos nas linhas e colunas k so sao utilizados em
sua iteracao, assim e possvel que as matrizes L e U sejam
montadas na propria matriz A.
22 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Problemas do Nao-Pivoteamento

Um exemplo simples mostra que nem todas as matrizes


nao-singulares podem ser fatoradas por A = LU:
A =

0 1
1 1

Se aplicarmos o algoritmo, teremos u


11
= 0. Para calcularmos
L
21
=
1
u
11
A
21
, teremos uma divisao por zero. Assim,
elementos nulos na posicao dopiv odevem ser evitados
utilizando, por exemplo, uma troca de linhas.
23 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
Problemas do Nao-Pivoteamento
Observacao
De fato, a troca de linhas e bastante comum, procurando que o
piv o assuma o elemento de maior norma da coluna restante. Esta
heurstica se mostra bastante eciente para manter a estabilidade
numerica do algoritmo, salvo em casos raros.
24 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
O Vetor de Pivoteamento

No algoritmo que sera apresentado a seguir, e utilizado um


vetor ao inves da matriz para representar a permuta cao
entre linhas.

Estas nota coes sao equivalentes.

No vetor, o elemento [i ] indica qual e a linha da matriz I que


deve estar no local de i .
25 / 49
Sistemas de Equacoes Lineares
Obtendo LU sem Permutacoes
O Vetor de Pivoteamento
Exemplo
O vetor = (2, 4, 1, 3) e equivalente `a matriz
P =

0 1 0 0
0 0 0 1
1 0 0 0
0 0 1 0

26 / 49
Sistemas de Equacoes Lineares
Decomposicao LU com Pivoteamento
Sumario
Introdu cao
Substituicao Direta
Retrosubstituicao
Obtendo LU sem Permuta coes
Decomposicao LU com Pivoteamento
Metodo de Crout
27 / 49
Sistemas de Equacoes Lineares
Decomposicao LU com Pivoteamento
Decomposicao LU com Pivoteamento

A demonstra cao formal do algoritmo com pivoteamento e um


pouco mais complicada que do primeiro, e nao sera coberta
neste material.

Foi demonstrado que esta decomposicao existe sempre se a


matriz A for nao-singular.

Nesta implementa cao a decomposicao sera executada na


propria matriz A, obtendo a representa cao apresentada acima.

As permuta coes serao representadas pelo vetor .


28 / 49
Sistemas de Equacoes Lineares
Decomposicao LU com Pivoteamento
Decomposicao LU com Pivoteamento
Algoritmo
LUP-Solve(A)
1 n rows[A]
2 for i 1 to n
3 [i ] i
4 for k 1 to n
5 p 0
6 for i k to n
7 if |a
ik
| > p
8 p |a
ik
|
9 k

i
29 / 49
Sistemas de Equacoes Lineares
Decomposicao LU com Pivoteamento
Decomposicao LU com Pivoteamento
Algoritmo
10 if p = 0
11 error matriz singular
12 exchange [k] [k

]
13 for i 1 to n
14 exchange a
ki
a
k

i
15 for i k + 1 to n
16 a
ik
a
ik
/a
kk
17 for j k + 1 to n
18 a
ij
a
ij
a
ik
a
kj
19 return A and
30 / 49
Sistemas de Equacoes Lineares
Decomposicao LU com Pivoteamento
Exemplo
Exemplo
Calcular a fatoracao LUP da matriz
A =

2 0 2 0, 6
3 3 4 2
5 5 4 2
1 2 3, 4 1

31 / 49
Sistemas de Equacoes Lineares
Decomposicao LU com Pivoteamento
Exemplo: Continua cao
Iteracao k=1

1
2
3
4

2 0 2 0, 6
3 3 4 2
(5) 5 4 2
1 2 3, 4 1

3
2
1
4

(5) 5 4 2
3 3 4 2
2 0 2 0, 6
1 2 3, 4 1

3
2
1
4

(5) 5 4 2
0, 6 0 1, 6 3, 2
0, 4 2 0, 4 0, 2
0, 2 1 4, 2 0, 6
32 / 49
Sistemas de Equacoes Lineares
Decomposicao LU com Pivoteamento
Exemplo: Continua cao
Iteracao k = 2

3
2
1
4

5 5 4 2
0, 6 0 1, 6 3, 2
0, 4 (2) 0, 4 0, 2
0, 2 1 4, 2 0, 6

3
1
2
4

5 5 4 2
0, 4 (2) 0, 4 0, 2
0, 6 0 1, 6 3, 2
0, 2 1 4, 2 0, 6

3
1
2
4

5 5 4 2
0, 4 (2) 0, 4 0, 2
0, 6 0 1, 6 3, 2
0, 2 0, 5 4 0, 5
33 / 49
Sistemas de Equacoes Lineares
Decomposicao LU com Pivoteamento
Exemplo: Continua cao
Iteracao k = 3

3
1
2
4

5 5 4 2
0, 4 2 0, 4 0, 2
0, 6 0 1, 6 3, 2
0, 2 0, 5 (4) 0, 5

3
1
4
2

5 5 4 2
0, 4 2 0, 4 0, 2
0, 2 0, 5 (4) 0, 5
0, 6 0 1, 6 3, 2

3
1
4
2

5 5 4 2
0, 4 2 0, 4 0, 2
0, 2 0, 5 (4) 0, 5
0, 6 0 0, 4 3
34 / 49
Sistemas de Equacoes Lineares
Decomposicao LU com Pivoteamento
Exemplo: Continua cao
Assim

0 0 1 0
1 0 0 0
0 0 0 1
0 1 0 0

2 0 2 0, 6
3 3 4 2
5 5 4 2
1 2 3, 4 1

1 0 0 0
0, 4 1 0 0
0, 2 0, 5 1 0
0, 6 0 0, 4 1

5 5 4 2
0 2 0, 4 0, 2
0 0 4 0, 5
0 0 0 3

35 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Sumario
Introdu cao
Substituicao Direta
Retrosubstituicao
Obtendo LU sem Permuta coes
Decomposicao LU com Pivoteamento
Metodo de Crout
36 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Metodo de Crout
Aqui apresentamos um algoritmo alternativo para encontrar a
decomposicao LU sem pivoteamento. Podemos obter LU
resolvendo um sistema de equacoes nao lineares conforme segue:
L U = A

11
0 0 0

21

22
0 0

31

32

33
0

41

42

43

44

11

12

13

14
0
22

23

24
0 0
33

34
0 0 0
44

a
11
a
12
a
13
a
14
a
21
a
22
a
23
a
24
a
31
a
32
a
33
a
34
a
41
a
42
a
43
a
44

37 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Metodo de Crout
Isto signica que:
a
ij
=
i 1

1j
+
i 2

2j
+. . . +
in

nj
38 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Metodo de Crout
Alguns exemplos de equacoes:
a
13
=
11

13
+
12

23
+
13

33
+
14

43
=
11

13
a
32
=
31

12
+
32

22
+
33

32
+
34

42
=
31

12
+
32

22
a
22
=
21

12
+
22

22
+
23

32
+
24

42
=
21

12
+
22

12
39 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Metodo de Crout
Ha tres casos:
1) i < j : a
ij
=
i 1

1j
+
i 2

2j
+. . . +
ii

ij
(6)
2) i = j : a
ij
=
i 1

1j
+
i 2

2j
+. . . +
ii

ij
(7)
3) i > j : a
ij
=
i 1

1j
+
i 2

2j
+. . . +
ij

jj
(8)
40 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Metodo de Crout

O sistema de equacoes (6), (7), e (8) possui n


2
equacoes e
n
2
+ n variaveis (a diagonal e representada duas vezes).

Uma vez que o n umero de variaveis e maior que o n umero de


incognitas, podemos especicar n das incognitas
arbitrariamente.

Entao fazemos,

ii
= 1, i = 1, . . . , n (9)
41 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Metodo de Crout
Algoritmo de Crout
O algoritmo de Crout, que sera apresentado a seguir, resolve o
sistema de N
2
+ N equacoes (6), (7), (8), e (9) atraves de uma
simples reordena cao das equacoes.
42 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Metodo de Crout
Algoritmo de Crout
1) Dena
ii
= 1, i = 1, . . . , n
2) Para cada j = 1, . . . , n
Para i = 1, . . . , j
Use as equacoes (6), (7), e (9)
para encontrar
ij
, precisamente

ij
= a
ij

i 1

k=1

ik

kj
Para i = j + 1, j + 2, . . . , n
Use a equacao (8) para resolver
ij

ij
=
1

jj
(a
ij

j 1

k=1

ik

kj
)
43 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Exemplo
Aqui vamos aplicar o Algoritmo de Crout para encontrar a
decomposicao LU da matriz:
A =

10 7 0
3 2 6
5 1 5

44 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Exemplo: Continua cao
Passos executados pelo algoritmo:
1)
11
= a
11

11
k=1

ik

kj
= a
11
= 10
2)
21
=
1

11
(a
21

11

k=1

ik

kj
) = 0.3
3)
31
=
1

11
(a
31

11

k=1

ik

kj
) = 0.5
4)
12
= a
12

11

k=1

ik

kj
= a
12
= 7
45 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Exemplo: Continua cao
5)
22
= a
22

21
k=1

ik

kj
= a
22

21

12
= 2 (0.3)(7) =
2 2.1 = 0.1
6)
32
=
1

22
(a
32

21

k=1

3k

k2
) = 25
7)
13
= a
13

11

k=1

ik

kj
= a
13
= 0
8)
23
= a
23

21

k=1

2k

k3
= a
23

31

13
= 6 (0.3)(0) = 6
9)
33
= a
33

31

k=1

3k

k3
= a
33

31

13

32

23
=
5 (0.5)(0) (25)6 = 155
46 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Exemplo: Continua cao
Portanto,
L =

1 0 0
0.3 1 0
0.5 25 1

U =

10 7 0
0 0.1 6
0 0 155

47 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Exemplo: Continua cao
o que nos permite vericar que:
LU =

1 0 0
0.3 1 0
0.5 25 1

10 7 0
0 0.1 6
0 0 155

10 7 0
3 2 6
5 1 5

48 / 49
Sistemas de Equacoes Lineares
Metodo de Crout
Comentarios Finais

Fim!

Obrigado pela presen ca


49 / 49