Escolar Documentos
Profissional Documentos
Cultura Documentos
n
X
lij xj = bi i = 1, . . . , n
j=1
i
X n
X
lij xj + lij xj = bi i = 1, . . . , n
j=1 j=i+1
i−1
X
lij xj + lii xi = bi i = 1, . . . , n
j=1
Pi−1
bi − j=1 lij xj
xi = i = 1, . . . , n
lii
Profs. Alexandre e Ana Paula Introdução à Fatoração de Matrizes 7 / 80
Complexidade do Algoritmo de Substituições Sucessivas
Trecho de interesse do algoritmo
for i=1:n
soma = 0.0;
for k = 1:i-1
soma = soma + L(i,k)*y(k)
end
y(i) = (b(i)-soma)/L(i,i);
end
3 2 1 0 −10
0 1 2 3 10
U= , y = .
0 0 −2 1 1
0 0 0 4 12
n
X
uij xj = yi i = n, n − 1, . . . , 1
j=1
i−1
X n
X
uij xj + uij xj = yi i = n, n − 1, . . . , 1
j=1 j=i
n
X
uii xi + uij xj = yi i = n, n − 1, . . . , 1
j=i+1
Ax = b → L(Ux) = b
Eliminação de Gauss
1 Transformar um sistema linear Ax = b em outro equivalente
é substituı́da por
n
X
(aik + majk )xk = bi + mbj .
k=1
2 1 1 0 1
4 3 3 1
3
A=
8 b=
7 9 5 7
6 7 9 8 3
2 1 1 0 1
4 3 3 1 3
[A|b] = [A0 |b 0 ] =
8
7 9 5 7
6 7 9 8 3
No exemplo anterior:
1 0 0 0 1 0 0 0 1 0 0 0 2 1 1 0 1
0 1 0 0
0 1 0 0
m2,1 1 0 0
4 3 3 1 3
=
0 0 1 0 0 m2,3 1 0 m3,1 0 1 0 8 7 9 5 7
0 0 m4,3 1 0 m2,4 0 1 m4,1 0 0 1 6 7 9 8 3
1 0 0 0 1 0 0 0 1 0 0 0 2 1 1 0 1
−2
0 1 0 0
0 1 0 0 1 0 0
4 3 3 1 3
=
0 0 1 0 0 −3 1 0 −4 0 1 0 8 7 9 5 7
0 0 −1 1 0 −4 0 1 −3 0 0 1 6 7 9 8 3
2 1 1 0 1
0 1 1 1 1
.
0 0 2 2 0
0 0 0 2 −4
Pn n(n+1) Pn
Lembrando: i=1 i = 2 e i=1 i
2 = n6 (n + 1)(2n + 1).
n−1
X n
X n
X
1 =
j=1 i=j+1 k=j+1
n−1
X n
X
(n − j) =
j=1 i=j+1
n−1
X
(n − j)2 =
j=1
n−1
X n−1
X n−1
X
n2 − 2n j+ j2 =
j=1 j=1 j=1
n−1
X
j2 =
j=1
n−1 2n3 −3n2 +n
n(2n − 1) = 6
6
Ax = b
LUx = b
Ly = b Sistema I
Ux = y Sistema II
Qn
1 A = LU → det(A) = det(L) det(U) = det(U) = i=1 uii
Reformulando:
3 Não podemos ter solução para ambos já que N (AT ) ⊥ C(A).
(E 4000 ) = (m4,3 m3,2 m2,1 + m4,2 m2,1 + m4,3 m3,1 + m4,1 )(E 1)
+ (m4,3 m3,2 + m4,2 )(E 2)
+ (m4,3 )(E 3)
+ (E 4)
Profs. Alexandre e Ana Paula Introdução à Fatoração de Matrizes 30 / 80
Considerando a última linha do sistema Ux = y do exemplo
(E 4000 ) = 3(E 1) − (E 2) − (E 3) + (E 4)
O sistema Ax = b é consistente
2 1 1 0 1
4 3 3 1 3
z T [A|b] =
3 −1 −1 1 8
= 0 0 0 2 −4 .
7 9 5 7
6 7 9 8 3
O sistema Ax = b é inconsistente
2 1 1 0 1
4 3 3 1 3
z T [A|b] =
3 −1 −1 1 = 0 0 0 0 −4 .
8 7 9 5 7
6 7 9 6 3
A = A1 = L1 u1T + A2.
2 1 1 0 1 0 0 0 0
4 3 3 1 2 0 1 1 1
2 1 1 0 +
8 7 9 5 = 4
0 3 5 5
6 7 9 8 3 0 4 6 8
2 1 1 0 2 1 1 0 0 0 0 0
4 3 3 1 4 2 2 0 0 1 1 1
8 7 9 5 = 8
+
4 4 0 0 3 5 5
6 7 9 8 6 3 3 0 0 4 6 8
A2 = L2 u2T + A3.
0 0 0 0
0 1 1 1
A2 =
0
=
3 5 5
0 4 6 8
0 0 0 0 0
1 0 0 0 0
0 1 1 1 +
3 0 0 2 2
4 0 0 2 4
0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 0 1 1 1 0 0 0 0
A2 =
0
= +
3 5 5 0 3 3 3 0 0 2 2
0 4 6 8 0 4 4 4 0 0 2 4
A3 = L3 u3T + A4.
0 0 0 0
0 0 0 0
A3 =
0 0 2 2
0 0 2 4
0 0 0 0 0
0 0 0 0 0
= 1 0 0 2 2 +
0 0 0 0
1 0 0 0 2
A = A1 = L1 u1T + A2
A2 = L2 u2T + A3
···
T
A(n − 1) = Ln−1 un−1
An = Ln unT .
Substituindo:
A = L1 u1T + A2
A = L1 u1T + L2 u2T + A3
···
Pn T
A= i=1 Li ui
Incremento de erros
−20 numéricos.
10 1 1
Exemplo: A = ,b =
1 1 0
j−1
p = arg max{|ak,j | : k = j, . . . , n}.
Esta troca é formalizada por uma matriz de permutação Pj .
Pivoteamento total é uma alternativa mais cara: escolhemos o
elemento de maior módulo da submatriz quadrada de Aj−1 que
envolve as colunas e linhas de j até n. Implica em trocar a ordem
de colunas e linhas e pesquisar o maior elemento dentre
O((n − j)2 ) alternativas, elevando o custo total.
(op1) j = 1
2 1 1 0 1 (E 1)
4 3 3 1 3 (E 2)
[A|b] =
8
7 9 5 7 (E 3)
6 7 9 8 3 (E 4)
ap1 = 8, p = 3.
Atualizamos “pivot(1) = pivot(3), pivot(3) = pivot(1)”, trocamos
o conteúdo das linhas 1/3.
Pre-multiplicamos por P1 , que difere de I nas linhas 1 e 3 apenas.
m11 = − 14 , m21 = − 12 , m41 = − 34
8 7 9 5 7 (E 3)
0 −1 −3 −3 −1
2 2 2 2 (E 20 )
M1 P1 [A|b] =
(E 10 )
0 −3 −5 −5 −3
4 4 4 4
0 7
4
9
4
17
4 − 49 (E 40 )
(op2) j = 2
8 7 9 5 7 (E 3)
0 −1 −3 −3 −1
2 2 2 2 (E 20 )
M1 P1 [A|b] =
(E 10 )
0 −3 −5 −5 −3
4 4 4 4
0 7
4
9
4
17
4 − 9
4 (E 40 )
ap2 = 74 , p = 4.
Trocamos o conteúdo da linha j = 2 pela linha p = 4, que
corresponde a fazer “pivot(2) = pivot(4), pivot(4) = pivot(2)”.
Pré-multplicamos por P2 , que difere de I nas linhas 2 e 4 apenas.
m22 = 27 , m12 = 37
8 7 9 5 7 (E 3)
0 7
4
9
4
17
4 − 94 (E 40 )
M2 P2 M1 P1 [A|b] =
(E 100 )
0 0 − 72 4
7 − 12
7
0 0 − 67 − 27 − 87 (E 200 )
(op3) j = 3:
8 7 9 5 7 (E 3)
0 7
4
9
4
17
4 − 94 (E 40 )
M2 P2 M1 P1 [A|b] =
(E 100 )
0 0 − 72 4
7 − 12
7
0 0 − 67 − 27 − 87 (E 200 )
ap3 = − 76 , p = 4.
Trocamos o conteúdo da linha j = 3 pela linha p = 4, que
corresponde a fazer “pivot(3) = pivot(4), pivot(4) = pivot(3)”.
Pré-multplicamos por P3 , que difere de I apenas nas linhas 3 e 4.
m13 = − 13
8 7 9 5 7 (E 3)
0 7
4
9
4
17
4 − 49 (E 40 )
M3 P3 M2 P2 M1 P1 [A|b] =
(E 200 )
0 0 − 67 − 72 − 78
0 0 0 2
3 − 34 (E 1000 )
1
3
4 1
L= 1
2 − 27 1
1
4 − 37 1
3 1
Para j = 1, . . . , n − 1, implementamos:
1 Uma troca de duas linhas, sistematizada pela pré-multplicação
por Pj (linhas j e p : p > j de I podem ter sido trocadas)
2 Eliminação propriamente, sistematizada pela pré-multiplicação
por Mj (Mj é uma matriz Identidade, com os multplicadores da
op j, nos elementos da sub-diagonal da coluna j)
Mn−1 Pn−1 . . . M1 P1 A = U
M 3 P3 M 2 P2 M 1 P1 A = U
Vamos definir matrizes Mj0 , que dependem de Mj e das matrizes
de permutação na op j e subsequentes, caso existam:
M30 = M3
M20 = P3 M2 P3−1
M10 = P3 P2 M1 P2−1 P3−1
Observe que Mj0 tem a mesma estrutura de Mj (diferem de I na
coluna j abaixo da diagonal), mas com elementos abaixo da
diagonal na coluna j permutados.
Veja que, dadas estas definições, temos:
M3 P3 M2 P2 M1 P1 = (M3 )(P3 M2 P3−1 )(P3 P2 M1 P2−1 P3−1 )P3 P2 P1
= M30 M20 M10 P3 P2 P1
= L−1 P
Generalizando temos:
Mn−1 Pn−1 Mn−2 Pn−2 . . . M2 P2 M1 P1 A = U
0
(Mn−1 . . . M10 )(Pn−1 . . . P1 )A = U
L−1 PA = U
L−1 = (Mn−1
0
. . . M10 )
L = (M10 )−1 . . . (Mn−1
0
)−1
P = Pn−1 . . . P1
Profs. Alexandre e Ana Paula Introdução à Fatoração de Matrizes 56 / 80
Pivoteamento Parcial - visão por colunas
1
0 1 1
A = L̃1 u1T + A2 → A2 = 0 1 3
0 0 0
Note que a terceira linha de A2 (e não a primeira) é toda
composta de zeros. pivot(1) = 3.
0
0 0 0
A2 = L̃2 u2T + A3 → A3 = 0 0 2
0 0 0
pivot(3) = 2.
0
u3T =
0 0 2 , L̃3 = 1 .
0
0 0 0
A3 = 0 0
2
0 0 0
A =
1. -1. 3. -4.
-1. 5. -1. 2.
3. -1. 14. -9.
-4. 2. -9. 22.
--> spec(A)
ans =
0.0139839
4.8264375
8.1805547
28.979024
Teorema de Cholesky
Uma matriz simétrica A ∈ Rn×n é positiva definida (A ∈ S++
n ) se e
n
A ∈ S++ ⇐⇒ A = LLT : lii > 0, i = 1, . . . , n
A =
1. -1. 3. -4.
-1. 5. -1. 2.
3. -1. 14. -9.
-4. 2. -9. 22.
v
u
u j−1
X
ljj = + ajj −
t ljk2 para j = 1, . . . , n
k=1
aij =liT lj
X n
= lik ljk
k=1
j
X n
X
= lik ljk + lik ljk
k=1 k=j+1
j
X
= lik ljk
k=1
j−1
X
=lij ljj + lik ljk
k=1
Pj−1
aij − k=1 lik ljk
lij = para i = j + 1, . . . , n
ljj
Profs. Alexandre e Ana Paula Introdução à Fatoração de Matrizes 71 / 80
Formalizando o algoritmo (baixa abstração)
Para todo j = 1, . . . , n:
1 Calcula-se o elemento ljj , via ajj = ljT lj :
v
u
u j−1
X
ljj = +tajj − ljk2
k=1
Pn n(n+1) Pn
Sabemos que i=1 i = 2 e i=1 i
2 = n6 (n + 1)(2n + 1).
n X
X j−1
n X n X
X n
1= (j − 1)
j=1 i=j+1 k=1 j=1 i=j+1
n
X
= (n − j)(j − 1)
j=1
n
X
= ((n + 1)j − n − j 2 )
j=1
n(n + 1)2 n
= − n2 − (n + 1)(2n + 1)
2 6
n3
= + O(n2 )
6
Outer-Cholesky:
wT
1 n .
Vamos assumir que A = ∈ S++
w K
Implementando a decomposição
A = LU na primeira coluna de A:
1 wT wT
1 0 1
A= =
w K w I 0 K − ww T
n−1
O processo continua com a fatoração de K − ww T ∈ S++ .
Explorando a simetria de A
√
r11 = a11
w
s=
r11
R̂ R̂ = K − ss T
T
2 −9 22 −4
4 2 −2
= 2 5 3
−2 3 6
Profs. Alexandre e Ana Paula Introdução à Fatoração de Matrizes 77 / 80
Outer Cholesky: Exemplo
4 2 −2
2 5 3
−2 3 6
Segunda op, determinamos a segunda linha de LT = R.
√
r22 = 4 = 2
wT
sT = = (1, −1)
2
T 5 3 1
R̂ R̂ = − 1 −1
3 6 −1
4 4
=
4 5
4 4
4 5
Terceira op, determinamos a terceria linha de LT = R.
√
r33 = 4 = 2
wT
sT = = (2)
2
R̂ T R̂ = 5 − (2)(2)T = 1
1
Quarta op, determinamos a quarta linha de LT = R.
√
r44 = 1 = 1