Você está na página 1de 99

João Pedro Cardoso da Silva de Vasconcellos

Estudo da Fatoração de matrizes com


aplicações na resolução de sistemas lineares e
em processamento de imagens

Volta Redonda, RJ
2021
João Pedro Cardoso da Silva de Vasconcellos

Estudo da Fatoração de matrizes com aplicações na


resolução de sistemas lineares e em processamento de
imagens

Trabalho de Conclusão de Curso submetido


ao Curso de Matemática com ênfase em
Matemática Computacional da Universidade
Federal Fluminense como requisito parcial
para a obtenção do título de Bacharel em
Matemática.

Universidade Federal Fluminense


Instituto de Ciências Exatas
Curso de Matemática

Orientador: Marina Ribeiro Barros Dias


Coorientador: Rosemary Miguel Pires

Volta Redonda, RJ
2021
Vasconcellos, João Pedro Cardoso da Silva de
Estudo da Fatoração de matrizes com aplicações na resolução de sistemas lineares e em
processamento de imagens/ João Pedro Cardoso da Silva de Vasconcellos. – Volta Redonda,
RJ, 2021. 99 f., 30cm. : il.

Orientador: Marina Ribeiro Barros Dias

Trabalho de Conclusão de Curso (Bacharelado em Matemática) – Universidade Federal


Fluminense
Instituto de Ciências Exatas
Curso de Matemática, 2021.

1. Palavra-chave 1(PREENCHER). 2. Palavra-chave 2(PREENCHER). 3. Palavra-chave


3(PREENCHER). I. Marina Ribeiro Barros Dias. II. Universidade Federal Fluminense. III.
Instituto de Ciências Exatas. IV. Bacharel em Matemâtica Aplicada
João Pedro Cardoso da Silva de Vasconcellos

Estudo da Fatoração de matrizes com aplicações na


resolução de sistemas lineares e em processamento de
imagens

Trabalho de Conclusão de Curso submetido


ao Curso de Matemática com ênfase em
Matemática Computacional da Universidade
Federal Fluminense como requisito parcial
para a obtenção do título de Bacharel em
Matemática.

Trabalho aprovado. Volta Redonda, RJ, 03 de maio de 2021:

Profa. Dra. Marina Ribeiro Barros Dias –


UFF
Orientador

Profa. Dra. Rosemary Miguel Pires – UFF


Coorientador

Profa. Dra. Marina Sequeiros Dias de


Freitas – UFF

Profa. Dra. Vera Lucia Prudência dos


Santos Caminha – UFF

Volta Redonda, RJ
2021
Aos meus pais, à minha família e a todos que ajudaram,
de alguma forma, a realizar esse trabalho.
Agradecimentos

Primeiro, agradeço a Deus pelo direcionamento que Ele me deu. Desde a escolha do curso,
sempre me guiando e estando comigo, me sustentando em momentos difíceis, colocando
pessoas ótimas ao meu redor durante a graduação. Tudo para honra e glória d’Ele.
Aos meus pais Jefferson Rocha de Vasconcellos e Cintia Cardoso da Silva de Vasconcellos,
por terem me dado todo incentivo e suporte que eu precisei, que me aconselharam e me
acalmaram nas horas que precisei. Á toda minha família que me incentivou e acreditou
em mim.
À minha orientadora Marina Ribeiro, que desde que entrei no curso me orientou, me guiou,
me instruiu e me direcionou a um crescimento como matemático, teve paciência e amor
durante todo esse tempo. A minha coorientadora Rosemary, que esteve comigo desde no
curso também, me ajudou com diversas dificuldades e que, ainda no primeiro período, me
incentivou a ficar no curso e me mostrou um caminho que poderia seguir e que, hoje, quero
segui-lo. Sou imensamente grato a vocês duas. Um agradecimento especial a professora
Marina Sequeiros pela sua grande contribuição com a aplicação de identificador de rostos,
contribuição que tornou possível apresentarmos a aplicação.
Aos meus amigos Melissa, Guilherme, Marcos, Natália, Hermes, Mariana, Joel, Tais,
Guylherme, Nelson, Rayan e Patrick, que me fizeram companhia durante todo esse trajeto,
com quem cresci como matemático e como pessoa, me ajudaram nos momentos difíceis e
me alegraram tanto com suas presenças como com brincadeiras. A meus amigos de ensino
médio Antonio Tadeu, Pedro Henrique e Talles pelas horas de lazer. A todos aqueles que
estiveram ao meu redor durante a graduação, o meu muito obrigado.
Agradeço ao corpo docente da UFF por me ensinar os ramos da matemática, por todo
o conhecimento agregado e, em especial, aos professores Carlos Henrique, Alan Prata,
Leandro Egea, Alessandro Gaio e Ivan Aguilar, por me inspirarem e serem um exemplo de
matemáticos e professores para mim.
Agradeço à banca avaliadora Marina Sequeiros e Vera Lucia Caminha por terem aceitado
participar desse momento e contribuir com meu trabalho e a todos que trabalharam na
UFF em todos os setores, que tornaram um ambiente propício para estudo, que mantiveram
limpa toda a Unidade e agradeço à Universidade Federal Fluminense pela oportunidade
dada.
“Você, eu , ninguém vai bater tão duro como a vida,
mas não se trata de bater duro, se trata de quanto você aguenta
apanhar e seguir em frente, o quanto você é capaz de aguentar
e continuar tentando. É assim que se consegue vencer”.
(Rocky Balboa, 2012)
Resumo
A fatoração de uma matriz pode ser aplicada em diversas situações, principalmente aquelas
que envolvem processos computacionais como o processamento de imagens (compressão de
imagens e identificação de rostos, por exemplo) e a resolução de sistemas lineares. Nesta
última, objetiva-se encontrar a solução do sistema Ax = b, quando possível. Este trabalho
apresenta um estudo de técnicas de resolução de sistemas lineares através da fatoração da
matriz do sistema. Em termos formais, se A ∈ Rm×n e b ∈ Rm , resolver o sistema linear
Ax = b consiste em encontrar um vetor x ∈ Rn tal que Ax é a melhor aproximação para b,
ou seja, obter um vetor x que minimize ||Ax − b||2 , onde ||.||2 é norma vetorial euclidiana.
Para os casos em que a matriz A é quadrada, ou seja, m = n e A é uma matriz não singular
(det(A) 6= 0), o problema tem resposta simples: x = A−1 b. Entretanto, se o sistema é
sobredeterminado, ou seja, m > n, é possível que nenhum x satisfaça Ax = b (nesses casos
procura-se uma solução aproximada, que minimize ||Ax − b||2 e este problema é conhecido
como problema de mínimos quadrados). Neste trabalho foi proposto o estudo dos sistemas
lineares em que A é matriz quadrada de ordem n não singular (sistema com solução única)
e os sistemas sobredeterminados, ou seja, os casos em que m > n. A fatoração LU e
a fatoração de Cholesky foram estudadas e aplicadas aos sistemas do primeiro caso. A
fatoração ortogonal (QR) e a Decomposição em Valores Singulares (SVD) foram estudadas
e aplicadas na resolução do segundo. Para a primeira, a fatoração A = Q bRb reduzida foi

calculada. A fatoração SVD foi aplicada no problema de compressão de imagens e também


para o reconhecimento de rostos.

Palavras-chave: Fatoração LU. Fatoração de Cholesky. Fatoração Ortogonal. Decompo-


sição em valores Singulares. Equações normais.
Abstract
Matrix decompositions can be applied in several problems, mainly those that involve com-
putational processes such as image processing (image compression and face identification,
for example) and the resolution of linear systems. In the last one, we want to find the
solution of Ax = b, when possible. This work presents a study of techniques for solving
linear systems through decomposition of the linear system’s matrix. In formal terms, if
A ∈ Rm×n and b ∈ Rm , to solve the linear system Ax = b we need to find x ∈ Rn such that
Ax is the best approximation for b. In other words, x that turns out ||Ax − b||2 as small
as possible. Here, ||.||2 is the 2-norm (Euclidian norm). If A is a square matrix, m = n,
and A is a non-singular matrix (det(A) 6= 0), the problem has a simple answer: x = A−1 b.
However, in the case of an overdetermined system, m > n, it is possible that Ax = b has
no solution and we seek a vector that minimizes ||Ax − b||2 . This problem is known as
the least squares problem. In this paper, it was proposed the study of linear systems in
which A is a non-singular square matrix of order n (system with a single solution) and
overdetermined systems, that is, cases in which m > n. LU and Cholesky decomposition
were studied and applied to the systems in the first case. Orthogonal factorization (QR)
and Singular Value Decomposition (SVD) were studied and applied in the resolution of
the second one. For the first, the reduced A = Q bRb factorization was calculated. SVD

factorization was applied to the image compression problem and also to face recognition.

Keywords: LU Factorization. Cholesky Factorization. Orthogonal Factorization. Single


Value Decomposition. Normal Equations.
Lista de ilustrações

Figura 1 – Esquema gráfico da Fatoração LU, sendo A quadrada de ordem n. . . . 15


Figura 2 – Esquema gráfico da Fatoração de Cholesky, sendo A quadrada de ordem
n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figura 3 – Exemplo de uma projeção oblíqua no R2 . . . . . . . . . . . . . . . . . 31
Figura 4 – A projeção I − P , sendo P a projeção ilustrada na Figura 3. . . . . . 32
Figura 5 – Exemplo da afirmação acima. . . . . . . . . . . . . . . . . . . . . . . . 33
Figura 6 – Uma projeção ortogonal em R2 . . . . . . . . . . . . . . . . . . . . . . . 35
Figura 7 – Fatoração QR reduzida. . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Figura 8 – Fatoração SVD completa. . . . . . . . . . . . . . . . . . . . . . . . . . 40
Figura 9 – Motivação geométrica da SVD considerando A ∈ R2×2 . . . . . . . . . . 43
Figura 10 – Fatoração SVD reduzida. . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Figura 11 – Fatoração SVD completa. . . . . . . . . . . . . . . . . . . . . . . . . . 45
Figura 12 – Exemplo de uma imagem em 8-bits. . . . . . . . . . . . . . . . . . . . . 60
Figura 13 – Exemplo da compressão de imagens para k = 20, 30, 50, 100, 300, 600, 800
e 960. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Figura 14 – Imagens utilizadas para o banco de dados (imagens de treino). . . . . . 64
Figura 15 – Conjunto de imagens treino. . . . . . . . . . . . . . . . . . . . . . . . . 64
Figura 16 – Imagem gerada pelo vetor centroide. . . . . . . . . . . . . . . . . . . . 67
Figura 17 – Imagem 3 e sua projeção. . . . . . . . . . . . . . . . . . . . . . . . . . 68
Figura 18 – Imagem 11 e sua projeção. . . . . . . . . . . . . . . . . . . . . . . . . . 68
Figura 19 – Imagem 14 e sua projeção. . . . . . . . . . . . . . . . . . . . . . . . . . 68
Lista de tabelas

Tabela 1 – Resultado da compressão de imagens para diferentes valores de k. . . . 63


Tabela 2 – Distância das imagens treino ao subespaço V10 . . . . . . . . . . . . . . 67
Tabela 3 – Distancia das primeiras 5 imagens que não estão no banco de dados. . 69
Tabela 4 – Distancia das últimas 5 imagens que não estão no banco de dados. . . 69
Lista de abreviaturas e siglas

SVD Decomposição em Valores Singulares

det(A) Determinante da matriz A

LI Linearmente independente

dim(W) dimensão do espaço W

col(A) Espaço coluna da matriz A

Nuc(A) Núcleo da matriz A

Im(A) Imagem da matriz A

|| · || Norma-2 euclidiana.

η(A) Dimensão do núcleo de A.


Sumário

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 REVISÃO DE CONCEITOS DA ÁLGEBRA LINEAR . . . . . . . . 3


2.1 Espaços vetoriais com produto interno . . . . . . . . . . . . . . . . . 3
2.2 Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Matrizes elementares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 Matriz escalonada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 FATORAÇÃO LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1 Fatoração LU de matriz retangular . . . . . . . . . . . . . . . . . . . 17

4 FATORAÇÃO DE CHOLESKY . . . . . . . . . . . . . . . . . . . . . 19
4.1 Fatorações Auxiliares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Matriz definida positiva . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3 Fatoração de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4 Resolução de sistemas lineares com a Fatoração de Cholesky . . . . 24

5 FATORAÇÃO QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1 Projetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2 Projetores Ortogonais . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3 O processo de Gram-Schmidt . . . . . . . . . . . . . . . . . . . . . . . 36
5.4 Fatoração QR reduzida . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.5 Fatoração QR completa . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6 DECOMPOSIÇÃO EM VALORES SINGULARES . . . . . . . . . . 43


6.1 Motivação geométrica . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2 Teorema de existência da SVD . . . . . . . . . . . . . . . . . . . . . . 46
6.3 Propriedades da SVD . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7 APLICAÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.1 O Problema de Mínimos Quadrados . . . . . . . . . . . . . . . . . . . 51
7.2 Resolução de um sistema impossível por mínimos quadrados usando
Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.3 Resolução de um sistema impossível por mínimos quadrados usando
QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.4 Resolução de um sistema impossível por mínimos quadrados usando
SVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.5 Compressão de imagens . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.6 Reconhecimento de faces . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.6.1 Resultados e discussões . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8 CONSIDERAÇÕES FINAIS . . . . . . . . . . . . . . . . . . . . . . . 70

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

APÊNDICES 74

APÊNDICE A – ALGORITMO DE COMPRESSÃO DE IMAGENS 75

APÊNDICE B – ALGORITMO PARA RECONHECIMENTO DE


ROSTOS . . . . . . . . . . . . . . . . . . . . . . . 77
1

1 Introdução

Este trabalho aborda um tema da álgebra linear que se aplica em várias áreas
como física, economia, engenharia, biologia, geografia, problemas de navegação, aviação e
demografia, que são os sistemas lineares. Hoje, é uma área de pesquisa que anda aliada à
computação, visto que cientistas buscam métodos numéricos para resolver sistemas que,
manualmente, são inviáveis de se resolver, dada que as matrizes dadas para um sistema
possuem ordem muito alta.
Um sistema linear consiste em um conjunto de equações de ordem 1 que podem ser
escritos na forma matricial Ax = b, no qual A é uma matriz qualquer de tamanho m × n,
x ∈ Rn e b ∈ Rm . O objetivo é encontrar o vetor x ∈ Rn que satisfaça a equação Ax = b
ou, expressando de uma forma mais técnica, é encontrar o vetor x tal que Ax é a melhor
aproximação de b, ou seja, que minimize || b − Ax ||2 , onde || | · |2 é a norma euclidiana.
Este trabalho propõe resolver esses sistemas lineares fatorando a matriz A associada
ao sistema. Este tipo de resolução é classificado como um método direto. A vantagem de
usar o método de fatoração de matrizes comparado à outros métodos, como os métodos
iterativos, é que, uma vez fatorada a matriz, podemos resolver qualquer sistema linear que
possua a mesma matriz de coeficientes a um custo computacional menor.
No caso de matrizes quadradas não singulares(ou seja, detA 6= 0), sabemos que a
solução para o sistema é única. Para encontrarmos essa solução, utilizaremos a fatoração
LU, que se baseia na eliminação gaussiana, e a fatoração de Cholesky, que é similar a
fatoração LU, porém aplicável somente em matrizes simétricas definidas positivas.
Quando o sistema for sobredeterminado, ou seja, quando, para a matriz A ∈ Rm×n ,
m > n, teremos um sistema sobredeterminado com mais equações do que incógnitas,
e, possivelmente, nenhum x satisfará a equação Ax = b. Para esses casos, recorremos a
métodos para encontrar uma solução aproximada. O método que trabalharemos será o
método dos mínimos quadrados que relaciona a solução do sistema de equações normais
AT Ax = AT b com a solução por mínimos quadrados de Ax = b. Para resolver um sistema
de equações normais, aplicaremos a fatoração QR, também conhecida como fatoração
ortogonal, a fatoração SVD e a fatoração de Cholesky, uma vez que mostraremos que a
matriz AT A satisfaz as hipóteses para uma fatoração de Cholesky.
Este trabalho está organizado da seguinte maneira: No Capítulo 2, são introduzidos
os conceitos necessários de Álgebra Linear para embasar a teoria estudada e situar o leitor
do que será utilizado. Assuntos como norma de vetores, produto interno, espaços vetoriais
e matrizes serão abordados.
Capítulo 1. Introdução 2

No Capítulo 3, será introduzida a fatoração LU, que consiste em aplicar, conve-


nientemente, operações elementares sobre as equações do sistema linear obtendo, como
resultado final, uma fatoração de A em duas outras matrizes : uma matriz triangular
inferior L (lower) e uma matriz triangular superior(upper).
No Capítulo 4, a fatoração de Cholesky será apresentada. Ela é mais rápida,
computacionalmente, que o método LU e decompõe a matriz simétrica A em A = GGT ,
onde G é uma matriz triangular inferior com elementos positivos na diagonal principal.
No Capítulo 5 será detalhada a fatoração QR, que decompõe A no produto QR,
onde Q é uma matriz cujos vetores coluna são ortonormais e R é uma matriz triangular
superior. É possível obtê-la através do processo de Gram-Schmidt e por triangularizações
de Householder.
No Capítulo 6 encontra-se o estudo sobre a fatoração SVD que, diferente das
anteriores, decompõe A num produto de três matrizes: U , Σ e V T , com U e V matrizes
unitárias e Σ uma matriz com entrada na diagonal principal não negativas.
No Capítulo 7 serão realizadas as aplicações. A primeira consiste em encontrar
soluções por mínimos quadrados usando fatorações QR, SVD e de Cholesky; as outras
duas aplicações são voltadas ao processamento de imagens: A compressão de imagens e o
reconhecimento de faces. Por fim, no Capítulo 8, são apresentadas as considerações finais
algumas indicações para trabalhos futuros.
3

2 Revisão de Conceitos da Álgebra Linear

Neste Capítulo serão revisados alguns conceitos da Álgebra Linear necessários ao


bom entendimento das fatorações de matrizes. Algumas definições e teoremas serão enun-
ciados. Suas demonstrações, bem como resultados mais avançados podem ser encontrados
em livros de Álgebra Linear, como [1], [2], [3] e 4].

2.1 Espaços vetoriais com produto interno

Definição 2.1. Seja K um corpo. O conjunto não vazio V será um espaço vetorial sobre
K se em seus elementos, chamados de vetores, estiverem definidas as seguintes operações

1. ADIÇÃO: Cada par u, v de vetores de V corresponde a um vetor u + v ∈ V , chamado


de soma de u e v, de modo que

(A1) u + v = v + u, ∀ u, v ∈ V (propriedade comutativa).


(A2) (u + v) + w = u + (v + w), ∀ u, v, w ∈ V (propriedade associativa).
(A3) exista em V um vetor, denominado vetor nulo e denotado por 0, tal que 0+v = v,
∀v ∈V.
(A4) a cada vetor v ∈ V exista um vetor em V , denotado por −v, tal que v+(−v) = 0.

2. MULTIPLICAÇÃO: A cada par α ∈ R e v ∈ V , corresponde um vetor α · v ∈ V ,


denomidado produto por escalar de α por v de modo que:

(M1) (α · β)v = α(β · v), ∀ α, β ∈ K e ∀ v ∈ V (propriedade associativa).


(M2) 1 · v = v, ∀ v ∈ V (onde 1 é o elemento identidade de K).

Além disso, vamos impor que as operações dadas em (1) e (2) se distribuam, isto é, que
valham as seguintes propriedades:

(D1) α · (u + v) = α · u + α · v, ∀ α ∈ K e ∀ u, v ∈ V .

(D2) (α + β) · v = α · v + β · v, ∀ α, β ∈ K e ∀ v ∈ V .

Neste trabalho, adotaremos K = R e V = Rn , com n ∈ N, sendo Rn = R × · × R =


{(a1 , a2 , . . . , an ), ai ∈ R, ∀ i = 1, . . . , n} com as operações:

• (a1 , . . . , an ) + (b1 , . . . , bn ) = (a1 + b + 1, . . . , an + bn ), ∀ (a1 , . . . , an ), (b1 , . . . , bn ) ∈ Rn .


Capítulo 2. Revisão de Conceitos da Álgebra Linear 4

• α · (a1 , . . . , an ) = (αa1 , . . . , αan ), ∀ α ∈ R e ∀ (a1 , . . . , an ) ∈ Rn

Para uma definição formal de corpo, pode-se consultar [5].


Ao longo deste trabalho seguiremos a notação encontrada na referência 
[1] e,
x
 1 
 x2 
 
portanto, representaremos nossos vetores na forma de vetor coluna, ou seja, x =  .  .
 .. 

 
xn

Definição 2.2. Seja V um espaço vetorial sobre um corpo R. Dizemos que um subconjunto
β de V é uma base de V se

1. β for um conjunto gerador de V .

2. β for linearmente independente.

Definição 2.3. Seja V um espaço vetorial sobre R. Se V admite uma base finita, então
chamamos de dimensão de V o número de elementos de tal base. Caso contrário, dizemos
que a dimensão de V é infinita.

Definição 2.4. Sejam W1 e W2 dois subespaços vetoriais do Rn . Diremos que a soma


W1 + W2 = {w1 + w2 , w1 ∈ W1 , w2 ∈ W2 } é direta se Rn = W1 + W2 e W1 ∩ W2 = {0} e
denotaremos a soma por Rn = W1 ⊕ W2 .

Definição 2.5. Seja V um espaço vetorial sobre R. Um produto interno sobre V é uma
função h, i : V × V → K que satisfaz as seguintes quatro propriedades:

1. hu + v, wi = hu, wi + hv, wi, ∀ u, v, w ∈ V .

2. hλu, vi = λhu, vi, ∀λ ∈ K, ∀ u, v ∈ V .

3. hu, vi = hv, ui, ∀ u, v, ∈ V .

4. hu, ui > 0, se u 6= 0

Neste trabalho, usaremos o produto interno canônico do Rn , ou seja, dados dois


vetores x e y,
n
hx, yi =
X
xi y i .
i=1

Além disso, como nossos vetores são representados por vetores coluna, representaremos o
produto interno entre os vetores x e y por xT y, ou seja, hx, yi = xT y.

Definição 2.6. Seja V um espaço vetorial sobre R. Uma norma sobre V é uma função
|| ||: V → K que satisfaz as seguintes quatro propriedades:
Capítulo 2. Revisão de Conceitos da Álgebra Linear 5

1. || u ||≥ 0 e || u ||= 0 se, e só se, u = 0.

2. || u + v ||≤|| u || + || v ||.

3. || αu ||=| α | || u ||.

Neste trabalho, usaremos a norma canônica do Rn , dada por || x ||= xT x.
Especificamos o tipo de norma uma vez que, no próprio espaço euclidiano Rn ,
existem outras normas, como a norma 1, norma p e norma ∞. Para mais detalhes sobre
essas normas, veja (1).

Definição 2.7. Diremos que um conjunto β = {v1 , . . . , vn } é um conjunto ortogonal de


Rn se viT vj = 0, para todo i 6= j. Diremos que o conjunto β acima é ortonormal se β for
ortogonal e || vi ||= 1, 1 ≤ i ≤ n.

2.2 Matrizes

Definição 2.8. Sejam m e n dois inteiros positivos. Uma matriz A, m por n, sobre K, é
dada por m × n valores aij ∈ K, com 1 ≤ i ≤ m, 1 ≤ j ≤ n agrupados em m linhas e n
colunas, e será representada como
 
a · · · a1n
 11
 .. .. .. 
A = (aij ) =  . . . .

 
am1 · · · amn

Definição 2.9. Uma matriz A é chamada matriz diagonal se aij = 0, ∀i 6= j.

Definição 2.10. Dada uma matriz A ∈ Rm×n , a matriz transposta de A, denotada por
AT = (bij ) ∈ Rn×m é a matriz tal que bij = aji .

Definição 2.11. Dada uma matriz A ∈ Rm×n , diremos que essa matriz A é triangular
superior(inferior) se aij = 0, se i < j(i > j).

Definição( 2.12. Chamaremos)de espaço coluna de uma matriz A ∈ Rm×n o conjunto


n
col(A) = v ∈ Rm , v = αi ai , onde ai , 1 ≤ i ≤ n representa um vetor coluna de A.
X

i=1
Analogamente, definimos o espaço linha de A.

Definição 2.13. Dada uma matriz A ∈ Rm×n , o núcleo de A, denotado por N uc(A), é o
conjunto tal que N uc(A) = {x ∈ Rn , Ax = 0}.

Definição 2.14. Chamaremos de posto coluna de uma matriz A ∈ Rm×n a dimensão


do espaço coluna de A. De forma análoga, podemos definir o posto linha de uma matriz.
Diremos que uma matriz A possui posto completo se posto(A) = min{m, n}.
Capítulo 2. Revisão de Conceitos da Álgebra Linear 6

É possível provar que a dimensão do espaço coluna (posto coluna) e a dimensão


do espaço linha de A (posto linha) são iguais [1]. Desse modo, tal número será denotado
apenas como posto de A.

Definição 2.15. Diremos que A ∈ Rm×n é uma matriz unitária se A possui posto completo
e preserva o produto interno, ou seja, se A satisfaz (Ax)T Ay = xT y.

2.2.1 Matrizes elementares


No estudo da Álgebra Linear, quando trabalhamos com matrizes, aprendemos que
há três operações elementares que podemos realizar nas linhas de uma matriz. São elas:

• Trocar duas linhas entre si.

• Multiplicar uma linha por uma constante não-nula.

• Somar uma determinada linha a um múltiplo de outra linha.

Definição 2.16. Chamamos de matriz elementar a matriz obtida ao se aplicar uma


operação elementar sobre as linhas da matriz identidade.

A fim de exemplificar, apresentaremos matrizes elementares de tamanho 3 × 3.


Seja Li a i-ésima linha de uma matriz qualquer e I3 a matriz identidade de ordem 3. As
matrizes E1 , E2 e E3 a seguir são obtidas da matriz I3 quando fazemos a troca entre L1 e
L2 , αL2 e L3 + αL1 , respectivamente:

     

0 1 0  
1 0 0  
1 0 0 
E1 = 
 1 0 0 

, E2 =  0 α 0  , E3 =  0 1 0 
  
.
     
0 0 1 0 0 1 α 0 1

Quando, em uma matriz A, fazemos um processo de escalonamento, obtemos uma


outra matriz B que podemos expressá-la como B = EA, onde E é uma matriz elementar
que representa a operação de escalonamento feita.

Teorema 2.1. Toda matriz elementar é inversível e sua inversa também é elementar.

Demonstração. Suponha que seja aplicada uma operação elementar em uma matriz iden-
tidade I, logo, é produzida uma nova matriz E. Agora, aplique em E a operação inversa
da que foi aplicada em I.
Se denotarmos Ek a operação inversa citada acima, temos que Ek E = I. Analoga-
mente, concluimos que EEk = I, como queríamos demonstrar.
Capítulo 2. Revisão de Conceitos da Álgebra Linear 7

2.2.2 Matriz escalonada

Definição 2.17. Diremos que uma matriz está na forma escalonada por linhas, ou somente
escalonada, ou ainda, na forma escada, quando:

1. O primeiro elemento não-nulo de cada linha está à esquerda do primeiro elemento


não-nulo das linhas seguintes;

2. As linha nulas, se existirem, estão abaixo das não-nulas.

O primeiro elemento não-nulo de cada linha de uma matriz é chamado de pivô ou


líder, e o processo de obtenção da forma escalonada chamamos de escalonamento.

Para ilustrar a definção, seguem as matrizes A e B, que estão escalonadas.

 
  1 87 3 0 
1 2 3  
0 4 20 89 
  
A= 0 4 5  B=

, .
  
0 0 3 56 
  
 
0 0 7

 
0 0 0 0

Definição 2.18. Seja A ∈ Rm×n uma matriz que requer apenas escalonamento do tipo
somar linha a um múltipla de outra linha pra sua redução à forma escada. Diremos que
uma matriz quadrada Mj ∈ Rm×m é a matriz da j-ésima transformação de Gauss se
Mj A(j−1) = A(j) .
 

a11 a12 a13 
A fim de exemplificar, para a matriz A = 
 a21 a22 a23

 a matriz M1 é dad por
 
a31 a32 a33
 

1 0 0 
M1 =  −a21
1 0 

 a11


−a31
a11
0 1
O próximo teorema garante resultados sobre matrizes triangulares.

Teorema 2.2. 1. Sejam A e B duas matrizes triangulares inferiores(superiores). Então,


o produto AB é uma matriz triangular inferior(superior). Além disso, se A e B tem
diagonal unitária, então AB também tem diagonal unitária.

2. Uma matriz triangular S é inversível se, e só se, seus elementos na diagonal principal
são todos não nulos.

3. A inversa de uma matriz triangular inferior(superior) inversível S é triangular


inferior(superior). Se S tem diagonal unitária, então a sua inversa também terá
diagonal unitária.
Capítulo 2. Revisão de Conceitos da Álgebra Linear 8

Demonstração. (1) Sejam A = [aij ] e B = [bij ] duas matrizes triangulares inferiores de


ordem n e C = [cij ] o produto AB. Queremos mostrar que C é triangular inferior.
Por definição de multiplicação matricial, temos que

n
cij = (2.1)
X
aik bkj .
k=1

Tomando um termo cij tal que i < j, reescrevemos a igualdade (2.1) por
j−1 n
cij = aik bkj +
X X
aik bkj .
k=1 k=j

Perceba que, no primeiro somatório, aparecem todos os termos em que o número


de linhas de B é menor que o número de colunas de B, ou seja, todos os elementos bkj
são nulos, já que B é triangular inferior. De modo análogo, acontece o mesmo com os
elementos aik do segundo somatório. Dessa forma, concluimos que, se i < j, então cij = 0,
o que prova que C é triangular superior.
Para demonstrar a segunda parte do item (1), basta mostrar que cii = 1, i =
1, 2, . . . , n. Novamente, por definição,
n
cii =
X
aik bki ,
k=1

ou ainda
i−1 n
cij = aik bki + aii bii
X X
aik bki .
k=1 k=i+1

Pela análise feita na primeira parte do item, os dois somatórios são nulos, logo

cii = aii bii .

Como A e B possuem diagonal unitária, aii = 1 e bii = 1, logo, cii = 1.


(2) Ver demonstração em 6
(3) Faremos a demonstração por indução e usaremos o produto de matrizes parti-
cionadas em blocos. O produto de duas matrizes A e B particionadas em bloco é feito
de modo semelhante ao produto matricial comum, porém, neste caso, os “elementos” são
sub-matrizes e o produto AB esta definido somente se o produto das submatrizes estiver
definido.
Seja n a ordem de uma matriz triangular inferior inversível S = [sij ]. Para n = 1,
temos S = [s11 ]. Se S é inversível, então s11 6= 0 e, daí, a inversa S −1 existe e é triangular
inferior. Além disso, se s11 = 1, teremos também S −1 com diagonal unitária.
Suponha que o resultado valha para toda matriz triangular inferior de ordem n.
Construa a matriz triangular inferior inversível S1 de ordem n + 1 da forma
Capítulo 2. Revisão de Conceitos da Álgebra Linear 9

 
S 0 
 ,
v T dn+1
onde v ∈ Rn , dn+1 ∈ R∗ e 0 é o vetor nulo de Rn . Como S1 é inversível, os elementos de
sua diagonal são não-nulos, o que implica que os elementos da diagonal de S também
sejam não nulos. Pela hipótese de indução, a inversa S −1 é uma matriz triangular inferior.
Seja w ∈ Rn tal que
1
w=− v T S −1 .
dn+1

Defina uma matriz triangular inferior de ordem n + 1 da forma

0
 
S −1
R= 1 .
 
T
w
dn+1
e note que
S −1 S + 0v T S −1 0 + 0dn+1
   
I 0 
RS1 =  T 1 T dn+1  =  T
 
w S+ v w 0+
T
0 1
dn+1 dn+1
e
1
 
SS −1
+ 0w T
T0 + 0
 

dn+1  I 0 
S1 R = = .
 
 dn+1 
0 1
v T S −1 + wT dn+1
 
dn+1

Portanto, S1 é inversível e R também é triangular inferior. Por fim, se S e S −1 têm


diagonal unitária, então basta tomar dn+1 = 1 para termos R = S −1 triangular inferior
unitária. Isto conclui a prova.

Definição 2.19. Seja A ∈ Rn×n . Diremos que A é uma matriz não-singular, ou inversível
quando seu determinante é diferente de zero.

Teorema 2.3. Sejam A, B ∈ Rn×n . Então, det(AB) = det(A)det(B).

Demonstração. Iremos dividir a demonstração em dois passos:

1. A não é inversível

2. A é inversível

1. Suponha, por absurdo que AB é inversível. Logo, existe uma matriz C tal que
ABC = I, ou ainda, existe uma matriz BC que é a inversa a direita de A. Absurdo,
uma vez que A não é inversível. Portanto, AB não é inversível e det(AB) = 0 =
0 · det(B) = det(A)det(B).
Capítulo 2. Revisão de Conceitos da Álgebra Linear 10

2. Afirmação: Para qualquer matriz quadrada, det(ED) = det(E)det(D), onde E é


uma matriz elementar.
Essa afirmação é facilmente demonstrada relembrando as propriedades de determi-
nante, que podem ser vistas em 2. Se A foi inversível, A é o produto de matrizes
elementares, ou seja, A = Ek Ek−1 . . . E1 . Logo, det(AB) = det(Ek Ek−1 . . . E1 B).
Daí, pela afirmação acima, det(Ek Ek−1 . . . E1 B) = det(Ek Ek−1 . . . E1 )det(B) =
det(A)det(B), portanto, det(AB) = det(A)det(B).

Teorema 2.4. (Teorema do Núcleo e da Imagem) Dada uma matriz A ∈ Rm×n , temos
que n = dim(N uc(A)) + dim(Im(A)).

Definição 2.20. Diremos que uma matriz A ∈ Rn×n é autoadjunta se A = AT . A definição


também se estende para transformações lineares T : Rn → Rn .

Definição 2.21. Seja T : Rn → Rn um operador linear. Um autovalor de T é um escalar


λ ∈ R tal que existe um vetor não nulo v ∈ Rn tal que T (v) = λv. Se λ é um autovalor de
T , todo vetor não nulo v ∈ Rn com T (v) = λv é chamado de autovetor de T associado ao
autovalor λ.

Teorema 2.5. Seja V um R−espaço vetorial de dimensão finita com produto interno. As
seguintes afirmações são equivalentes:

1. T : V → V é autoadjunto ;

2. V tem uma base ortonormal de autovetores de T ;

3. Existe uma base ortonormal de V tal que a matriz de T nessa base é diagonal.

Teorema 2.6. Uma matriz A quadrada é inversível se, e somente se, o sistema linear
homogêneo Ax = 0 tem somente a solução trivial.

Demonstração. Seja A ∈ Rn×n inversível e x0 ∈ Rn uma solução qualquer para Ax0 = 0.


Se multiplicarmos a igualdade anterior por A−1 à esquerda, obtemos

A−1 Ax0 = A−1 0 =⇒ (A−1 A)x0 = 0 =⇒ x0 = 0.

Suponha que Ax = 0 tenha somente a solução x = 0. Se reescrevermos a equação


como combinação linear dos vetores colunas de A, temos x1 A1 + · · · + xn An = 0, onde
xi , Ai são a i-ésima coordenada de x e a i-ésima coluna de A, respectivamente. Então,
podemos ver que os vetores colunas de A são LI.
Capítulo 2. Revisão de Conceitos da Álgebra Linear 11

Se denotarmos a forma escada de A por Esc(A), existem, então, matrizes elemen-


tares E1 , . . . , Ek tais que Ek . . . E1 A = Esc(A). Assim,

E1−1 . . . Ek−1 Ek . . . E1 A = E1−1 . . . Ek−1 Esc(A)

⇒ det(A) = det(E1−1 . . . Ek−1 Esc(A)) = det(E1−1 ) . . . det(EK


−1
)det(Esc(A)).

Pelo fato de toda matriz elementar ser inversível e como A é uma matriz quadrada
com vetores coluna L.I., então a forma escada de A é triangular superior inversível. Logo,
det(Esc(A)) 6= 0 e det(A) 6= 0, e, portanto, A é inversível.
12

3 Fatoração LU

Neste primeiro momento, trabalharemos com matrizes quadradas A ∈ Rn×n . Vimos


no Capítulo 2 que podemos representar o processo de escalonamento de uma matriz
A ∈ Rn×n como o produto dessa matriz A por uma matriz escalonada E, gerando uma
nova matriz B tal que B = EA. Note que podemos repetir este processo recursivamente
até obter uma forma escalonada de A.
A partir deste processo, introduzimos a fatoração LU. Esta fatoração escreve a
matriz A em um produto de matrizes triangulares, como será especificado na próxima
definição.

Definição 3.1. Se A é uma matriz quadrada real que pode ser fatorada na forma A = LU ,
onde L é uma matriz real triangular inferior e U é uma matriz real triangular superior,
então dizemos que A = LU é uma fatoração LU de A.
    

3 −1 2  
3 0 0  
1 −1
3
2
3 
Exemplo 3.1.  4 3 7  = 4 13
0 0 1 1 
    
3
   
     
−2 1 5 −2 1
3
6 0 0 1
    

2 6 4  
1 0 0  2 6 4 
Exemplo 3.2.  4 4 −1  = 2 1 0   0 −8 −9 
    

    
−2 2 5 −1 −1 1 0 0 0

É importante dizer que nem todas as matrizes tem uma fatoração LU. De modo
geral, a matriz A só admite a fatoração LU se no seu escalonamento não for necessário
troca de linhas, como veremos no Teorema 3.1. Supondo que, no processo de escalonamento,
não precisamos efetuar permutações de linhas, existem matrizes M1 , M2 , . . . , Mk tais que
a forma escada de A é obtida por Mk . . . M1 A. Como, por hipótese, A é quadrada e não
requer troca de linhas, sua forma escada é triangular superior, logo existe uma matriz
resultante U tal que
Mk · · · M1 A = U. (3.1)

Note que as matrizes de Gauss são inversíveis e, como são triangulares inferiores,
sem premutação de linhas, suas inversas também são triangulares inferiores, pelo Teorema
2.2. Então, existe L tal que

M1−1 M2−1 · · · Mk−1 = L. (3.2)

Multiplicando a matriz L obtida em (3.2) à esquerda da igualdade (3.1), obtemos


A = LU .
Capítulo 3. Fatoração LU 13

No Exemplo 3.1, a matriz U é triangular superior com diagonal unitária e no


Exemplo 3.2, L é triangular inferior e possui a diagonal unitária. As fatorações obtidas se
diferem pelo método usado no escalonamento. O método onde L é triangular inferior e U
é triangular superior com diagonal unitária é chamado método de Crout [(6)], enquanto o
método na qual L é triangular inferior com diagonal unitária, e U triangular superior, é
chamado de método de Doolitle [(6)].
Uma vantagem em utilizar o método de Doolitle ao invés do método de Crout é que
podemos utilizar o método de eliminação de Gauss, ao invés das matrizes elementares. Este
procedimento é vantajoso porque nos fornece diretamente os elementos das matrizes L e U
e, por isso, o método de Doolitle foi a escolha para este trabalho. A seguir, exemplificamos
o processo construido.
 

2 3 −1 
Exemplo 3.3. Obtenha a fatoração LU da matriz A = 
 1 −2 2 .

 
3 1 −1

L1 3L1
As primeiras operações a fazer são: L2 − , L3 − e L3 − L2 . Assim, obtemos
2 2
 

2 3 −1 
U = 0 −7 5
.
 
 2 2 
0 0 −2

As matrizes de eliminação de Gauss utilizadas foram:


   

1 0 0  
1 0 0 
M1 =  −1
1 0  e M2 =  0 1 0 .
   
 2   
−3
2
0 1 0 −1 1

Tomando a inversa da multiplicação M2 M1 , encontramos


 

1 0 0 
L= 2 1 0 
 1 
 
3
2
1 1

e, portanto,
    

2 3 −1  
1 0 0  2 3 −1 
1 −2 2  =  2 1 0  0 −7
=⇒ A = LU .
   1  5 
2 2
 
    
3 1 −1 3
2
1 1 0 0 −2

Perceba que, nos Exemplos 3.1 e 3.2, quando houve o elemento 0 na diagonal
principal, ele estava na posição ann , onde n é o tamanho da matriz quadrada. Embora
Capítulo 3. Fatoração LU 14

dois exemplos não sejam uma base confiável para uma afirmação, a posição do 0 não foi
uma coincidência.
A condição necessária para que a matriz A possa ter uma fatoração LU é possuir
pivôs diferentes de zero. Um método para se verificar isso é olhar para o determinante
de suas submatrizes principais, e é o que vamos definir antes de enunciar e demonstrar o
Teorema 3.1, sobre existência da fatoração LU.

Definição 3.2. Se A = [aij ] é uma matriz de ordem m × n, então chamamos de submatriz


principal de ordem k da matriz A à matriz formada pelas primeiras k linhas e k colunas
de A e a denotamos por A(k,k) , onde k ≤ min{m, n}.
 

1 2 3 
4 5 6
  h i
Exemplo 3.4. Se A = , então as três submatrizes de A são: A(1,1) = 1
 

7 8 9
 
 
 
10 11 12
 
  1 2 3 
1 2  
e A(2,2) =  e A(3,3) =  4 5 6 

.
3 4

 
7 8 9

Teorema 3.1. Uma matriz A ∈ Rn×n tem uma fatoração LU se det(A(k,k) ) 6= 0, para
k = 1, 2, . . . , n − 1.

Demonstração. Seja A ∈ Rn×n . Por hipótese, temos que A(1,1) = [a11 ] tem determinante
não nulo. Daí, a11 =
6 0 e é um pivô. Também temos que det(A(2,2) ) 6= 0 e, como a11 é pivô,
a primeira etapa do escalonamento de A pode ser escrita como E1 A = A(1) .
Como o determinante de um produto de matrizes é o produto dos determinantes
das matrizes (Teorema 2.3), tendo det(A(2,2) ) 6= 0 e det(E1 ) = 1, podemos concluir que
(1) (1)
det(A(2,2) ) 6= 0. Logo, a22 6= 0 e, assim, ele é o segundo pivô.
Suponha que k−1 etapas do escalonamento foram realizadas. Temos Ek−1 · · · E1 A =
(k−1)
A(k−1) , onde akk é o k-ésimo pivo. Considerando que

det(Ek−1 · · · E1 A) = det(A(k−1) )
=⇒ det(Ek−1 ) · · · det(E1 )det(A) = det(A(k−1) )
(k−1)
=⇒ det(A) = det(A(k−1) ) =⇒ det(A(k,k) ) = det(A(k,k) ).
(k−1) (k−1)
Então, como det(A(k,k) ) 6= 0, segue que det(A(k,k) ) 6= 0 e A(k,k) é triangular superior com
k pivôs.
Dessa forma, a hipótese de k variar até n − 1 é suficiente para garantir que a forma
escalonada de A é triangular superior pois, após a (n − 1)-ésima etapa do escalonamento,
os n − 1 primeiros termos da n-ésima linha serão nulos.
Capítulo 3. Fatoração LU 15

Note que nada foi afirmado sobre o valor de a(n−1)


nn . Isso porque, neste momento da
demonstração, estamos interessados apenas em concluir uma forma triangular superior
para a matriz escalonada de A. Como a(n−1)
nn está na diagonal principal, não interfere na
definição de uma matriz ser triangular superior.
Logo, chamaremos a forma escalonada de A por U . Além disso, como as matrizes
elementares são inversíveis, tomaremos, como antes, E1−1 · · · En−1
−1
= L, logo, A = LU .

Teorema 3.2. Se a fatoração LU existe e A é não-singular, então a fatoração LU é única


e det(A) = u11 u22 · · · unn , onde uii são os elementos da diagonal de U .

Demonstração. Suponha que A = LU exista e A ∈ Rn×n seja não singular. Então,


U = En−1 . . . E1 A também é não singular, pois o determinante das matrizes elementares
vale 1, e det(A) 6= 0. Logo, supondo A = L1 U1 e A = L2 U2 , obtemos :

L1 U1 = L2 U2 =⇒ L1 U1 U1−1 = L2 U2 U1−1 =⇒ L1 = L2 U2 U2−1

=⇒ L−1
2 L1 = L2 L2 U2 U1 =⇒ L2 L1 = U2 U1 .
−1 −1 −1 −1

Como L−1
2 L1 é triangular inferior e U2 U1
−1
é triangular superior, então existe uma
matriz diagonal D tal que L−1 2 L1 = D = U2 U1 . Considerando o método de Doolitle,
−1

2 L1 é triangular inferior com diagonal unitária, ou seja, L2 L1 = I = U2 U1 . Então,


L−1 −1 −1

concluímos que L1 = L2 e U1 = U2 , garantindo a unicidade da fatoração.


Por fim, se A = LU , então

det(A) = det(LU ) = det(L)det(U ) = det(U ) = u11 u22 · · · unn .

A fatoração LU está esquematizada na Figura 1 para matrizes quadradas. Observe


que as matrizes L e U são também quadradas (mesma ordem de A), mas triangulares
(inferior e superior, respectivamente).

Figura 1 – Esquema gráfico da Fatoração LU, sendo A quadrada de ordem n.


Capítulo 3. Fatoração LU 16

Dada uma matriz A quadrada, não sabemos se haverá necessidade de permutações


e, portanto, não sabemos, a princípio, se a fatoração A = LU existe. Caso seja necessário,
basta multiplicar a matriz A por uma matriz P que realize a permutação e, então, aplicar
a fatoração LU normalmente. Fatoramos, portanto, P A = LU . Por Teorema (veja em [6]),
P é inversível e P −1 = P t , logo, A = P T LU . Para mais detalhes de uma fatoração LU
com pivoteamento, consulte [6].
Agora que sabemos como fatorar uma matriz quadrada na forma LU , vamos utilizá-
la para resolver um sistema linear da forma Ax = b. Vamos assumir que a matriz A já
possui a fatoração LU e focaremos em como resolver o sistema.
O algoritmo para a resolução de um sistema linear através da fatoração LU será
descrito a seguir, bem como um exemplo para ilustrar o método.
Sejam A ∈ Rn×n uma matriz não-inversível, logo que possui fatoração LU, x, b ∈ Rn
e um sistema do tipo Ax = b. Utilizando a fatoração A = LU , temos LU x = b. Fazendo
a substituição U x = y, y ∈ Rn resolvemos o sistema triangular inferior Ly = b para
encontrar y. Então, basta resolver o sistema U x = y para encontrar o vetor x desejado.
   

2 1 4  
2 
Exemplo 3.5. Resolva o sistema Ax = b, onde A =  6 1 0 eb= −10 .
   

   
−1 2 −10 −4
  

1 0 0 
2 1 4 
Fazendo a fatoração LU de A, obtemos A =  3 1 0 0 −2 −12 .
  

  
−1
2
−5
4
1 0 0 −23
Dessa forma, Ax = b =⇒ LU x = b. Tomando U x = y, temos o sistema Ly = b, ou
seja     

1 0 0 
y1  
2 
3 1 0 y2 = −10 .
    
  
    
−1
2
−5
4
1 y3 −4
 

2 
Resolvendo a igualdade, temos que y =  −16 . Daí, resolvendo U x = y, ou seja
 
 
−23
    

2 1 4 
x  
2 
0 −2 −12 y = −16 ,
    
  
    
0 0 −23 z −23
 

−2 
obtemos que x =  2 .
 
 
1
Capítulo 3. Fatoração LU 17

 

−2 
Portanto, a solução é dada por x =  2 .
 
 
1

3.1 Fatoração LU de matriz retangular


Até aqui, temos estudado a fatoração LU para matrizes quadradas com entradas
reais. Nesta seção, introduziremos a fatoração LU para matrizes retangulares A ∈ Rm×n ,
com m 6= n. Claramente, para preservar a ordem de A, não teremos as matrizes L e
U quadradas simultaneamente, mas uma delas será quadrada enquanto a outra será
retangular. Um outro fator a ser considerado é que nem toda matriz A, m × n possui
fatoração LU. As condições para a existência da LU serão apresentadas formalmente no
Teorema 3.3.
Para trabalhar com a fatoração LU em matrizes retangulares, será introduzida uma
nova definição para matriz triangular.

Definição 3.3. Diremos que uma matriz C ∈ Rm×n possui forma triangular inferior
(superior) se bij = 0, se i < j (i > j).

Perceba que as matrizes L e U de uma fatoração LU de uma matriz quadrada são


matrizes com forma triangular, por construção. Os exemplos a seguir ilustram a fatoração
LU de matrizes retangulares. No Exemplo 3.6, L é uma matriz retangular. No Exemplo
3.7, U é uma matriz retangular.
   
1 4   1 0  
 1 4
Exemplo 3.6. A =  2 5 

=  2 1 
   =⇒ A = L3×2 U2×2 .
 0 −3

  
3 6 3 2
    
1 3 5   1 0  1 3 5 
Exemplo 3.7. B =  = =⇒ B = L2×2 U2×3 .
2 4 6 2 1 0 −2 −4

Teorema 3.3. A condição necessária para que exista a fatoração LU para A ∈ Rm×n ,
m 6= n, é que A(k,k) seja não singular, para k ∈ {1, 2, . . . , j}, j = min{m, n}.

A demonstração deste torema é análoga ao Teorema 3.1 e, portanto, será omitida.


Para toda matriz A ∈ Rm×n , tal que A possui fatoração LU , não vale a unicidade
da fatoração, pois sempre podemos acrescentar linhas nulas e colunas nulas em L e U ,
como veremos nos exemplos a seguir.
    

1 4   1 0 0  1 4 
Exemplo 3.8. A =  2 5  =  2 1 0   0 −3  =⇒ A = L3×3 U3×2 .
    
    
3 6 3 2 0 0 0
Capítulo 3. Fatoração LU 18

 
    1 3 5 
1 3 5   1 0 0 
Exemplo 3.9. B =  = 0 −2 −4  =⇒ B = L2×3 U3×3 .
 
2 4 6 2 1 0 


0 0 0

Perceba que para os Exemplos 3.6 e 3.8 foi utilizada a mesma matriz A e, em cada
caso, foi obtida uma fatoração distinta. O mesmo aconteceu com a matriz B dos exemplos
3.7 e 3.9, garantindo assim, a não unicidade da fatoração LU .
19

4 Fatoração de Cholesky

De forma semelhante ao Capítulo 3, neste capítulo trabalharemos com matrizes


A ∈ R n×n
quadradas. Acrescentaremos a suposição de que A é uma matriz simétrica.
Na fatoração de Cholesky, diferentemente da fatoração LU, escrevemos A = GGT , onde,
embora G seja triangular (assim como a matriz L e a matriz U ), sua diagonal se diferencia.
Uma outra propriedade da matriz A também será exigida: a de que ela seja definida
positiva, conceito que apresentaremos ao longo deste capítulo. Vejamos, agora, a fatoração
de Cholesky.

Definição 4.1. Chamamos de Fatoração de Cholesky de uma matriz A ∈ Rn×n a fatoração


A = GGT , na qual G é uma matriz triangular inferior com elementos positivos na diagonal
principal.
   √  √ 
2 −1 0 2 0 0 2 √−1
2
0
   q  q q 
Exemplo 4.1.  −1 2 −1  =  √
−1 3
0  0 3
− 2
.
     
   2 q2  2 3 
0 −1 2 0 − 2
3
√2
3
0 0 √2
3
    

4 −2 4 10   2 0 0 0 
2 −1 2 5 
−2 10 1 2   −1 3 0 0 0 3 1 1 
    
= .
 
Exemplo 4.2.  
4 1 6 13   2 1 1 0 0 0 1 2 
    
 
    
10 −2 13 31 5 1 2 1 0 0 0 1

Antes de apresentar a fatoração de Cholesky é necessário desenvolver outras


fatorações e enunciar alguns resultados importantes, que serão utilizados para a construção
e demonstração do teorema principal.

4.1 Fatorações Auxiliares


Definição 4.2. Dada A ∈ Rn×n , chamaremos de fatoração LDM T de A a fatoração
A = LDM T , na qual L e M são matrizes triangulares inferiores com diagonal unitária e D
é uma matriz diagonal. De maneira análoga, para matrizes simétricas, existe a fatoração
A = LDLT .

Caso a matriz A seja não singular, as fatorações podem ser obtidas através da
fatoração LU , como mostraremos a seguir.

Teorema 4.1. Se todas as submatrizes principais de A ∈ Rn×n são não-singulares, então


existem matrizes triangulares com diagonal unitária L, M únicas e uma única matriz
diagonal D tal que A = LDM T .
Capítulo 4. Fatoração de Cholesky 20

Demonstração. Pelo Teorema 3.1, a matriz A possui fatoração LU . Defina uma matriz
diagonal D da forma dii = uii , i = 1, 2, . . . , n. Como A é uma matriz inversível, D
também é inversível, assim, podemos reescrever a igualdade A = LU = LDD−1 U . Tome
D−1 U = M T e, temos, portanto, a igualdade A = LDM T . A unicidade das matrizes segue
do Teorema 3.2.

Teorema 4.2. Se todas as submatrizes principais de uma matriz simétrica A ∈ Rn×n são
não-singulares, então existe uma única matriz triangular inferior com diagonal unitária L
e uma única matriz diagonal D tais que A = LDLT .

Demonstração. Pelo Teorema 4.1, A possui fatoração LDM T . Como M é triangular inferior
com diagonal unitária, segue que

A = LDM T =⇒ AM −T = LD =⇒ M −1 AM −T = M −1 LD.

Manipulando o termo (M −1 AM −T )T , temos (M −1 AM −T )T = (M −T )T AT M −T =


M −1 AM −T . Logo, M −1 AM −T é simétrica. Além disso, como as matrizes M , L e D são
triangulares inferiores, pelo Teorema 2.2 M −1 LD é uma matriz triangular inferior.
Como mostramos que a matriz é triangular inferior e simétrica, concluimos, portanto,
que ela é diagonal. Como D é não-singular - e portanto D−1 existe - e como a multiplicação
de matrizes diagonais é uma matriz diagonal, M −1 L também é diagonal.
Pelo fato de L e M possuirem diagonal unitária, segue que M −1 L = I =⇒ L = M .
Portanto, A = LDLT , e a unicidade vem do Teorema 4.1.

Embora os Teoremas 4.1 e 4.2 sejam parecidos, é importante destacar as diferenças


entre eles. Enquanto o Teorema 4.2 exige que a matriz A seja simética e envolve apenas
uma matriz com diagonal unitária, o Teorema 4.1 não pede que a matriz seja simétrica e
envolve duas matrizes com diagonal unitária.
Perceba que introduzir a fatoração LDL, a partir da fatoração LDM , nos mostra
como vamos construir a fatoração de Cholesky, uma vez que a fatoração LDL é aplicada em
matrizes simétricas. Veremos agora, a definição de matriz definida positiva para continuar
atendendo as condições da matriz G.

4.2 Matriz definida positiva


Algumas matrizes possuem propriedades específicas que podem ser úteis a diversas
aplicações. É o caso, por exemplo, das matrizes simétricas que, entre outras propriedades,
possuem todos os autovalores reais e os autovetores associados a autovalores distintos
são ortogonais [7, 3]. Um outro tipo de matriz, conhecida como matriz definida positiva,
aparece em diversos cenários, como por exemplo na estatística (matrizes de co-variância),
Capítulo 4. Fatoração de Cholesky 21

em problemas de otimização (que faz uso de formas quadráticas), entres outros [??, 8].
Esse tipo de matriz também é necessária para realizar a fatoração de Cholesky e, portanto,
vamos explorá-la nesta seção.

Definição 4.3. Sejam A ∈ Rn×n e x ∈ Rn . Chamamos de matriz definida positiva uma


matriz A tal que xT Ax > 0, ∀ x 6= 0.

Perceba pela definição 4.3 que o cálculo que mostra que uma matriz é definida
positiva é o produto interno entre x e Ax. Aplicando, então, a definição de produto interno,
podemos chegar, também, em outra inequação que define se A é definida positiva.

Definição 4.4. Uma matriz A = [aij ] ∈ Rn×n é dita definida positiva se para qualquer
vetor não nulo x ∈ Rn , tivermos:
n
aij xi xj > 0.
X

i,j=1

Lema 4.1. Se A ∈ Rn×n é definida positiva, então A é inversível.

Demonstração. Suponha, por absurdo, que A não é inversível. Então, existe um vetor não
nulo x ∈ Rn tal que Ax = 0, o que implica que xT Ax = 0. Contradição, pois A é definida
positiva.

Teorema 4.3. Se uma matriz A ∈ Rn×n é definida positiva, então todas as submatrizes
principais A(k,k) , 1 ≤ k ≤ n, são também definidas positivas.

Demonstração. Considere x ∈ Rk não nulo e y ∈ Rn . Defina o vetor y da forma yi = xi ,


1 ≤ i ≤ k e yj = 0, k + 1 ≤ j ≤ n. Dessa forma,
k n
aij xi xj = aij yi yj > 0.
X X

i,j=1 i,j=1

Corolário 4.1. Se A é uma matriz definida positiva, então A admite decomposição LU .

Demonstração. Como as submatrizes de A também são definidas positivas, pelo Teorema


4.1, temos que as submatrizes são inversíveis e, portanto, seus determinantes são não nulos.
Isto garante a decomposição LU , pelo Teorema 3.1.

Teorema 4.4. Se A ∈ Rn×n é definida positiva, então todos os seus elementos diagonais
são positivos.
Capítulo 4. Fatoração de Cholesky 22

Demonstração. Fixando i = 1, 2, . . . , n, seja x definido por xi = 1 e xj = 0, ∀ j =


6 i. Dessa
forma, os elementos da diagonal de A, aii , podem ser escritos como
n
aii = aij xi xj = xT Ax > 0.
X

i,j=1

Teorema 4.5. Se A ∈ Rn×n é definida positiva e X ∈ Rn×k tem posto k ≤ n, então


B = X T AX ∈ Rk×k também é definida positiva.

Demonstração. Suponha que B não seja definida positiva. Então existe z ∈ Rk tal que

0 ≥ z T Bz = z T (X T AX)z = (Xz)T A(Xz). (4.1)

Suponha z não nulo tal que z T Bz = 0. Pela igualdade (4.1), e pelo fato de A
ser definida positiva, por hipótese, Xz = 0. Por outro lado, X tem posto e número de
incógnitas igual a k, então Xz = 0 possui somente a solução trivial z = 0. Logo, não existe
vetor não nulo tal que z T Bz = 0.
Suponha, agora, z ∈ Rk não nulo tal que z T Bz < 0. Defina, então, v = Xz, v não
nulo. Logo, z T Bz = v T Av > 0, pois A é definida positiva. Pela tricotomia, chegamos a um
absurdo. Logo, não ocorre z T Bz ≤ 0 para z não nulo, e isso demonstra que B é definida
positiva.

Teorema 4.6. Se A é uma matriz definida positiva, então A admite a decomposição


A = LDM T , onde D tem elementos diagonais positivos.

Demonstração. Perceba, pelo Teorema 4.3 e pelo Lema 4.1, que as subatrizes principais
de A são inversíveis. Então, de acordo com o Teorema 4.1, a matriz A possui fatoração
LDM T .
Se tomarmos X = L−T , pelo Teorema 4.5, a matriz B = X T AX = L−1 AL−T =
L−1 LDM T L−T = DM T L−T é definida positiva. Como M T L−T é uma matriz triangular
superior com diagonal unitária, concluímos que B e D tem a mesma diagonal.
Como, por hipótese, B é definida positiva, pelo Teorema 4.4, tem elementos
diagonais positivos. Por consequência, D tem elementos diagonais positivos.

Corolário 4.2. Se A é uma matriz simétrica definida positiva, então A admite a decom-
posição A = LDLT e D tem elementos diagonais positivos.

Demonstração. Pelo Teorema 4.3, temos que todas as submatrizes principais de A são não
singulares. Assim, segue do Teorema 4.2 que a fatoração LDLT de A existe.
A demonstração que os elementos não nulos de D são positivos é analoga ao do
Teorema 4.6, ao substituir M por L.
Capítulo 4. Fatoração de Cholesky 23

4.3 Fatoração de Cholesky


Com os resultados vistos nas Seções 4.1 e 4.2 temos, finalmente, como determinar
a Fatoração de Cholesky de uma matriz.

Teorema 4.7. Uma matriz A ∈ Rn×n é simétrica definida positiva se, e somente se, existe
uma única matriz triangular inferior G ∈ Rn×n com elementos diagonais positivos tal que
A = GGT .

Demonstração. (⇐) Suponha que exista uma matriz G que satisfaz as hipóteses do teorema,
ou seja, tal que A = GGT . Perceba que AT = (GGT )T = GGT = A, ou seja, a matriz A é
simétrica. Tomando x um vetor não nulo, temos as seguintes igualdades

xT Ax = xT (GGT )x = (xT G)(GT x) = (GT x)T (GT x).

Definindo y = GT y, temos que xT Ax = y T y. Como x 6= 0 e G é inversível, então


y=
6 0 e, dessa forma, xT Ax > 0, o que significa que A é definida positiva.
(⇒) Pelo Corolário 4.2, a matriz A possui fatoraçção LDLT na qual L é triangular
inferior com diagonal unitária e D é diagonal com seus elementos não nulos positivos.

Defina, então, a matriz S ∈ Rn×n diagonal da forma sii = dii , i = 1, . . . , n.
Assim, temos a igualdade D = SS, ou ainda, D = SS T , visto que toda matriz
diagonal é simétrica. Assim,

A = LDLT = LSS T LT = LS(LS)T .

Definindo G = LS, segue que A = GGT , com G sendo uma matriz triangular
inferior com elementos diagonais positivos, cuja unicidade segue da fatoração LDLT .

A fatoração de Cholesky, portanto, é garantida apenas para matrizes que são


simétricas e definida positiva. Na Figura 2 está ilustrado um esquema desta fatoração.
Observe que A, G (e, portanto GT ) são matrizes quadradas de ordem n. Outros resultados
que envolvem tais matrizes são enunciados a seguir.

Figura 2 – Esquema gráfico da Fatoração de Cholesky, sendo A quadrada de ordem n.


Capítulo 4. Fatoração de Cholesky 24

Teorema 4.8. Uma matriz simétrica A ∈ Rn×n é definida positiva se, e somente se, seus
pivôs são todos positivos.

Demonstração. (⇒) Se A ∈ Rn×n é simétrica definida positiva, pelo Corolário 4.1 e pelo
Teorema 4.7, temos que A = LU = GGT . Defina uma matriz diagonal D onde os elementos
da diagonal principal sejam dii = gii . Assim, A = GD−1 DGT , na qual GD−1 é triangular
inferior com diagonal unitária e DGT é triangular superior.
Pela unicidade da fatoração LU , temos L = GD−1 e U = DGT . E, pela igualdade,
U tem elementos diagonais positivos. Como U é a forma escalonada de A e os pivôs de A
estão na diagonal de U , os pivos de A são todos positivos.
(⇐) Se a matriz A ∈ Rn×n tem pivôs positivos, então as submatrizes principais de
A são inversíveis, possibilitando a fatoração LDLT de A. Denotando a matriz S, assim
como fizemos na demonstração do Teorema 4.7, temos que
n
x Ax = y y =
T T
yi2 ≥ 0,
X

i=1

com y = SLT x.
Como SLT é uma matriz triangular superior com diagonal positiva e inversível,
segue que o sistema homogêneo SLT x = 0 terá somente a solução trivial x = 0. Como x é
não nulo por hipótese, conclui-se que A é definida positiva.

Teorema 4.9. Uma matriz simétrica A é definida positiva se, e somente se, os determi-
nantes das submatrizes principais são todos positivos.

Demonstração. (⇒) Pelo Teorema 4.8, os pivos da matriz A são todos positivos. Pelo
fato da matriz admitir a decomposição LU , obtemos a igualdade det(A) = det(LU ) o que
implica que det(A(k,k) ) = det(L(k,k) )det(U(k,k) ) = u11 u22 . . . ukk . Como os escalares uii são
os pivos positivos de A, é facil ver que det(A(k,k) ) > 0, k = 1, 2, . . . n.
(⇐) Se os determinantes das submatrizes principais de A são positivos, temos,
diretamente, que os pivôs de A são positivos e, pelo Teorema 4.8, segue que A é definida
positiva.

4.4 Resolução de sistemas lineares com a Fatoração de Cholesky


Em um sistema Ax = b, se tivermos que A ∈ Rn×n é definida positiva, temos que
A é inversível, o que garante que o sistema é possível e determinado, isto é, possui solução
e ela é única. Sabendo disso, basta conhecer a fatoração de Cholesky da matriz A para
resolver o sistema. Mas como encontrar a matriz G da fatoração?
Capítulo 4. Fatoração de Cholesky 25

Se, por hipótese, já tivermos que a matriz A é simétrica definida positiva, podemos
realizar a fatoração assim como vimos na demonstração do Teorema 4.7, através dos
seguintes passos:

1. Calcule a fatoração LU = LDLT de A;



2. Decomponha D = SS T de modo sii = dii , obtendo LSS T LT = LS(LS T );

3. Chame G = LS e obtenha A = GGT .

Porém, levando em conta a questão do custo computacional, há um outro método


mais viável. Se tivermos por hipótese que A é simétrica definida positiva, então, pelo
Teorema 4.7, a decomposição de Cholesky existe e A pode ser fatorada como A = GGT .
Denotando gij como um elemento da matriz G, podemos escrever os elementos da matriz
GGT em função das entradas de G. E, pela igualdade de matrizes, as colunas de A são
iguais as colunas de GGT , o que significa que podemos encontrar as entradas da matriz G
utilizando as entradas de A.
Igualado a primeira coluna de A e de GGT podemos determinar os elementos da
primeira coluna de G, ou seja:
Primeira coluna:    
2
 a11   g11 
a21 g11 g21
   
   
.. ..
   
. .
   
   
= .
   
  
 ak1   gk1 g11 
..  ..
   
  
.  .
   
  
   
an1 g11 gn1

Então,


g11 = a11

ai1
gi1 = , para i = 2, 3, . . . , n.
g11
Obtidos os elementos da primeira coluna, igualamos as segundas colunas de A e
GG para determinar os elementos da segunda coluna, como ilustrado a seguir:
T
Capítulo 4. Fatoração de Cholesky 26

Segunda coluna:    
 a12   g11 g21 
a22 g21 + g22
2 2
   
   
.. ..
   
. .
   
   
=
   
gk1 g21 + gk2 g22 
   
 ak2  
..  ..
   
  
.  .
   
  
   
an2 gn1 g21 + gn2 g22

Como conhecemos os elementos da primeira coluna, então

q
g22 = 2
a22 − g21

ai2 − gi1 g21


gi2 = , para i = 3, 4, . . . , n.
g22
Generalizando o processo, temos que a k-ésima coluna será obtida comparando-se
as k-ésimas colunas de A e GGT , da seguinte forma:
k-ésima coluna

   
a1k g11 g1k
   

 a2k 


 g21 gk1 + g22 gk2 

.. ..
   
. .
   
   
   
gk1 + gk2 + . . . + gkk
2 2 2
   
 akk   
..  = ..
   
.  .
  
  
   
gi1 gk1 + gi2 gk2 + . . . + gik gkk 
   

 aik 

 

..  
.. 
.  .
   
  
   
ank gn1 gk1 + gn2 gk2 + . . . + gnk gkk

Já conhecemos os elementos gij , para i = 1, . . . , n e j = 1, . . . , k − 1. Então,

q
gkk = 2
ak k − gk1 2
− gk2 − . . . − gk(k−1)

aik − gi1 gk1 − gi2 gk2 − . . . − gi(k−1) gk(k−1)


gik = parai = k + 1, . . . , n.
gkk

Aprendemos como encontrar a fatoração de Cholesky de uma matriz quadrada.


Para resolver um sistema linear Ax = b, onde A é uma matriz de ordem n e b é um vetor
Capítulo 4. Fatoração de Cholesky 27

em Rn , utilizando a fatoração de Cholesky, primeiro, é necessário ver se a matriz A é


simétrica e definida positiva. Caso seja, o próximo passo é fatorar

A = GGT , (4.2)

ou seja, realizar a fatoração de Cholesky em A. Então, substituimos no sistema linear a


igualdade 4.2 e obtemos GGT x = b.
Chamamos y = GT x e resolvemos o sistema triangular Gy = b. Encontrado o vetor
y, basta resolver o outro sistema triangular GT x = y para encontrar o vetor x desejado.
Temos então, o seguinte algoritmo para a resolução de sistemas lineares utilizando
a fatoração de Cholesky (supondo A uma matriz que permita tal fatoração):

1. Reescreva o sistema Ax = b como GGT x = b;

2. Resolva o sistema triangular Gy = b, onde y = GT x;

3. Resolva o sistema triangular GT x = y.


 

1 2 4 
Exemplo 4.3. Verifique se a matriz A =  2 20 16 é definida positiva. Se for, resolva
 

 
4 16 29
 

−1 
o sistema Ax = b, b =  −10 , utilizando a fatoração de Cholesky.
 
 
1

Calcularemos o determinante de cada submatriz para sabermos se A é definida


positiva.
det(A(1,1) ) = |1| = 1 > 0
1 2
det(A(2,2) ) = = 16 > 0
2 20

1 2 4
det(A(3,3) ) = 2 20 16 = 144 > 0.
4 16 29
Portanto, pelo Teorema 4.9, a matriz A é definida positiva. Assim, pelo Teorema
4.7, a matriz A possui uma fatoração de Cholesky. Sabemos que A = GGT . Realizando a
multiplicação GGT , obtemos a seguinte igualdade:

   

1 2 4  
2
g11 g21 g11 g31 g11 

 2 20 16

 = 
 g21 g11 g21 + g22
2 2
g31 g21 + g32 g22


   
4 16 29 g31 g11 g31 g21 + g32 g22 2
g31 + g32
2
+ g33
2
Capítulo 4. Fatoração de Cholesky 28

Igualando a primeira coluna, obtemos

g11 = 1, g21 = 2 e g31 = 4.

Igualando a segunda coluna, sabendo os valores de g11 , g21 e g31 , obtemos

g22 = 4 e g32 = 2.

E, igualando a terceira coluna, obtemos que

g33 = 3.
 

1 0 0 
Logo, G = 2 4 0  e
 

 
4 2 3
    

1 2 4  
1 0 0  1 2 4 
A = GGT =⇒ 
 2 20 16

 =
 2 4 0 

 0 4 2 .

    
4 16 29 4 2 3 0 0 3

Conhecendo a fatoração de Cholesky de A, faremos a substituição no sistema linear,


obtendo GGT x = b. Substituindo GT x = y, temos um novo sistema triangular Gy = b
dado por:     

1 0 0 
x 0
 
−1 
 2 4 0   y 0  =  −10  ,
    
    
4 2 3 z0 1
ou ainda 




x0 = −1

 2x 0
+ 4y 0 = −10 .

4x0 + 2y 0 + 3z 0 = 1

 

−1 
Resolvendo o sistema, encontramos x0 = −1, y 0 = −2 e z 0 = 3, ou seja y = 
 −2 .

 
3
Conhecendo y, voltamos a resolver a substiruição GT x = y para obter o valor
desejado para x, a solução do sistema. Temos então o sistema
    

1 2 4   x   −1 
0 4 2   y  =  −2 ,
    

    
0 0 3 z 3
ou seja, 




x + 2y + 4z = −1

 4y + 2z = −2 ,

3z =3


Capítulo 4. Fatoração de Cholesky 29

 

−3 
que tem como solução z = 1, y = −1 e x = −3, ou seja, x =  −1 .
 
 
1
30

5 Fatoração QR

A partir deste capítulo trabalharemos com matrizes retangulares A ∈ Rm×n , com


m 6= n. Aqui, estamos nos preparando para resolver sistemas sobredeterminados, onde,
no sistema, há mais equações do que incógnitas. Abordaremos a fatoração QR, também
conhecida como fatoração ortogonal, que escreve a matriz A da forma A = QR, onde
trabalharemos com projeções ortogonais dos vetores colunas de A em um determinado
subespaço. Começaremos explicando um pouco sobre os projetores.

5.1 Projetores

Definição 5.1. Um projetor, ou um projetor oblíquo, é uma matriz quadrada P que


satisfaz P 2 = P . Essa matriz também pode ser chamada de matriz idempotente. Na figura
3, mostramos uma projeção no R2

Dado um projetor P , podemos observar propriedades vindas diretamente da defini-


ção. Sendo Im(P ) o subespaço da imagem de P , por definição, podemos afirmar que o
projetor P é invariante a Im(P ), pois ao aplicarmos P em um vetor v ∈ Im(P ), P x = v,
temos
P v = P 2 x = P x = v.

Além disso, para qualquer vetor v ∈ Rn , temos que P v − v ∈ N uc(P ). Isso é


verificado facilmente, bastando, apenas, aplicar o projetor P no vetor P v − v, ou seja,

P (P v − v) = P 2 v − P v = P v − P v = 0,

e então, P v − v ∈ N uc(P ).
Capítulo 5. Fatoração QR 31

Figura 3 – Exemplo de uma projeção oblíqua no R2 .

Definição 5.2. Se P é um projetor, então a matriz I − P também é um projetor chamado


de projetor complementar de P .

É fácil verificar que I − P também é um projetor, se P é um projetor. De fato,


temos
(I − P )2 = I 2 − 2IP + P 2 = I − 2P + P = I − P.

Vejamos, agora, uma importante propriedade sobre o projetor I − P . Afirmamos


que Im(I − P ) = N uc(P ) (ou seja, que o projetor I − P projeta em N uc(P )). De fato, se
v ∈ N uc(P ), então P v = 0. Como v = Iv, então

v = Iv = Iv − 0 = Iv − P v = (I − P )v,

ou seja, v ∈ Im(I − P ). Além disso, se v ∈ Im(I − P ), temos que (I − P )v = v − P v e,


como vimos anteriormente, v − P v ∈ N uc(P ). Logo, Im(I − P ) = N uc(P ). Analogamente,
podemos dizer que N uc(I − P ) = Im(P ).
Temos também que N uc(P )∩N uc(I −P ) = {0}. Suponha v ∈ N uc(P )∩N uc(I −P ).
Assim, v = v − P v = (I − P )v = 0. Logo, N uc(P ) ∩ N uc(I − P ) = {0}.
Baseado na figura 3, representamos a projeção I − P no R2 na figura 4.
Capítulo 5. Fatoração QR 32

Figura 4 – A projeção I − P , sendo P a projeção ilustrada na Figura 3.

Proposição 5.1. Se S1 e S2 forem subespaços do Rn tais que Rn = S1 ⊕ S2 , então existe


um projetor P tal que Im(P ) = S1 e N uc(P ) = S2 . Este projetor P será chamado de
projetor P em S1 sobre S2 .

Demonstração. Seja S1 e S2 dois subespaços vetoriais do Rn que formam uma soma direta,
ou seja, Rn = S1 ⊕ S2 . Isso significa que S1 ∩ S2 = {0} e, para qualquer vetor v ∈ Rn ,
v = s1 + s2 , onde s1 ∈ S1 e s2 ∈ S2 .
Defina, então, uma matriz P tal que, para v ∈ Rn , P v = s1 . Provaremos agora que
P é um projetor que satisfaz nossas hipóreses.
Tomando v = s1 + s2 ∈ Rn arbitrário, se P v = s1 , então temos que P 2 v = P (P v) =
P (s1 ) = s1 . Pela arbitrariedade de v, temos que P 2 = P .
Por construção, temos que Im(P ) ⊂ S1 . Seja s1 ∈ S1 . Note que ele pode ser escrito
por s1 = s1 + 0, s1 ∈ S1 e 0 ∈ S2 . Então, P (s1 ) = s1 , logo, S1 ⊂ Im(P ), daí, Im(P ) = S1 .
Pela definição do projetor P , S2 ⊂ N uc(P ). Suponha que um vetor v ∈ / S2 . Então,
existem vetores não nulos s1 ∈ S1 e s2 ∈ S2 tal que v = s1 + s2 . Logo, P (v) = s1 , ou seja,
v∈/ N uc(P ). Portanto, N uc(P ) = S2 , como queríamos demonstrar

A Proposição 5.1 é útil na resolução do seguinte problema: “Como determinar


vetores v1 e v2 , tais que v = v1 + v2 , para um dado v?”. Observe que, se v é dado, o
projetor P da Proposição 5.1 e seu complementar podem ser pensados como a única
solução possível. O projetor P v nos fornece v1 , e sua projeção complementar (I − P )v nos
fornece v2 . A únicidade de v1 e v2 é obtida pelo fato de que todas as soluções precisam ser
da forma
(P v + v3 ) + ((I − P )v − v3 ) = v,
Capítulo 5. Fatoração QR 33

ou seja, v3 pertence a ambos subespaços S1 e S2 . Mas como Rn = S1 ⊕ S2 , temos v3 = 0.

5.2 Projetores Ortogonais


Para melhor compreensão do que é um projetor ortogonal, considere o espaço
R2 com o produto interno usual. Afirmamos que um vetor qualquer u ∈ R2 pode ser
escrito como a soma de dois vetores ortogonais w1 e w2 . Para verificarmos tal afirmação,
tomaremos um subespaço W como uma reta que intersepta a origem e um vetor w2
perpendicular a W . Sendo w1 ∈ W , genericamente, podemos escrever u = w1 + w2 . Na
Figura 5 é apresentado um vetor u ∈ R2 e sua decomposição como soma de w1 e w2 , com
dim(W ) = 1.

Figura 5 – Exemplo da afirmação acima.

Teorema 5.1. Se W é um subespaço de dimensão finita de um espaço V com um produto


interno, então cada vetor u ∈ V pode ser escrito de maneira única como u = w1 + w2 , com
w1 ∈ W e w2 ∈ W ⊥ .

Demonstração. Demonstraremos que:

1. V = W + W ⊥

2. W ∩ W ⊥ = {0}

1. Seja W 6= {0} e seja β = {v1 , v2 , . . . , vm } uma base ortogonal de W . Considere


δ = {v1 , . . . , vm , vm+1 , . . . , vn } ortogonal de V . Note que β ⊂ δ.
Capítulo 5. Fatoração QR 34

Por propriedade de produto interno,


n m n
< v, vi > vi X < v, vi > vi < v, vi > vi
v= = +
X X
.
i=1 || vi ||2
i=1 || vi ||2
i=m+1 || vi ||2

Por definição de subespaço,


m
X < v, vi > vi
∈ W.
i=1 || vi ||2

Porém,
n n
< v, vi > vi < v, vi > vi
< vj , vi >= 0, ∀j ∈ {1, . . . , m}.
X X
< vj , >=
i=m+1 || vi ||2
i=1 || vi ||2

Dessa forma,
n
< v, vi > vi
∈ W ⊥.
X

i=m+1 || v i ||2

Logo, V = W + W ⊥ .

2. Seja v ∈ W ∩ W ⊥ . Como v ∈ W ⊥ , ∀w ∈ W , < w, v >= 0, mas como v ∈ W ,


< v, v >= 0 implica v = 0.

Portanto, V = W W⊥ .
L

Visto que já denotamos W , W ⊥ será o espaço ortogonal a W , e, assim, podemos


escrever v = w1 + w2 , tal que w1 ∈ W e w2 ∈ W ⊥ .
Relembrando da afirmação no início de 5.2, o vetor w1 será o vetor projeção
ortogonal de u em W e o denotaremos por projW u e w2 será o componente de u ortogonal
a W , que denotaremos por projW ⊥ u. Assim, u = projW u + projW ⊥ u. Perceba que podemos
estender essa noção de projeções ortogonais para o Rn com a utilização de hiperplanos.

Definição 5.3. Diremos que um projetor P é ortogonal quando P projetar um subespaço


S1 sobre um subespaço S2 , onde S1 e S2 são subespaços ortogonais.
Capítulo 5. Fatoração QR 35

Figura 6 – Uma projeção ortogonal em R2 .

Proposição 5.2. Um projetor P é ortogonal se, e somente se, P = P T .

Demonstração. (⇐) Se P T = P , então, para P x ∈ S1 e (I − P )y ∈ S2 , temos que

(P x)T (I − P )y = xT P T (I − P )y = xT (P T − P T P )y = xT (P − P P )y =

= xT (P − P 2 )y = xT 0y = 0.

Portanto, o projetor é ortogonal.


(⇒) Suponha que P não seja simétrico. Então, existem vetores x, y ∈ Rn tais que
hAx, yi − hx, Ayi =
6 0. Logo,

0 6= hAx, yi − hx, Ayi = hAx, yi − hAx + (I − A)x, Ayi =

= hAx, (I − A)yi − h(I − A)x, Ayi = hAx, (I − A)yi + h(I − A)(−x), Ayi.

Como a soma de ambos os termos é diferente de zero, podemos dizer que pelo
menos um dos produtos internos é diferente de zero. Portanto, existe u ∈ Im(P ) e
v ∈ Im(I − P ) = N uc(P ) tal que hu, vi =
6 0, seguindo, então, que P não é ortogonal.

Teorema 5.2. Seja W um subespaço de dimensão finita de um espaço V com produto


interno.

1. Se {v1 , v2 , . . . , vm } é uma base ortonormal de W e u é um vetor qualquer de V , então


projW u =< u, v1 > v1 + . . . + < u, vm > vm .

2. Se {v1 , v2 , . . . , vm } é uma base ortogonal de W e u é um vetor qualquer de V , então


< u, v1 > < u, vm >
projW u = v1 + . . . + vm
|| v1 || 2 || vm ||2
Capítulo 5. Fatoração QR 36

Demonstração. 1. Como projW u ∈ W temos, pelo Teorema 5.1, que


m
projW u =
X
< projW u, vi > vi .
i=1

Também pelo Teorema 5.1, u = projW u + w2 , com w2 ∈ W ⊥ . Logo, projW u = u − w2 .


Então,
m m m m
projW u = < u−w2 , vi > vi = < w2 , vi > vi =
X X X X
< u, vi > vi − < u, vi > vi .
i=1 i=1 i=1 i=1

( )
v1 v2 vm
2. Se {v1 , v2 , . . . , vm } é uma base ortogonal de W , então , ,...,
|| v1 || || v2 || || vm ||
é uma base ortonormal de W . Pelo primeiro item,
m m
vi vi < projW u, vi >
projW u = =
X X
< projW u, > vi .
i=1 || vi || || vi || i=1 || vi ||2

5.3 O processo de Gram-Schmidt


O processo de ortogonalização de Gram-Schmidt (veja detalhes em [7] e [3]) nos
garante que podemos obter uma base ortogonal a partir de uma base arbitrária. Na
demonstração do próximo teorema, utilizaremos este processo.

Teorema 5.3. Se V é um espaço vetorial não-nulo de dimensão finita n, com um produto


interno, então V possui uma base ortonormal.

Demonstração. Seja V um espaço vetorial não nulo munido de um produto interno, que
possui dimensão finita n. Seja β = {u1 , u2 , . . . , un } uma base para V . Provaremos que, a
partir da base {u1 , u2 , . . . , un }, podemos obter uma base ortonormal {v1 , v2 , . . . , vn }.
Seja Wi o subespaço de V gerado por v1 , v2 , . . . vi que denotaremos por Wi =
[v1 , v2 , . . . , vi ].
u1
O primeiro passo é tomarmos v1 = .
|| u1 ||
O segundo é, se W1 = [v1 ] e v2 é o componente de u2 ortogonal a W1 , então tome
v2 = u2 − projW1 u2 = u2 − < u2 , v1 > v1 . Note que v2 é não nulo, pois, se fosse nulo, u2
seria combinação linear de u1 . Encontrado v2 , normalize-o.
No terceiro passo, seja W2 = [v1 , v2 ] e v3 o componente de u3 ortogonal a W2 . Dessa
forma, v3 = u3 − projW2 u3 = u3 − < u3 , v1 > v1 − < u3 , v2 > v2 . Novamente, v3 = 6 0, pois,
se fosse nulo, u3 seria combinação linear de u1 e u2 .
Capítulo 5. Fatoração QR 37

Como passo geral, seja Wn−1 = [v1 , v2 , . . . , vn−1 ] e vn o componente de un ortogonal


a Wn−1 . Então,
n−1
vn = un − projWn−1 un = un −
X
< un , vi > vi .
i=1

Repetindo o processo indutivamente, obtemos uma base ortonormal {v1 , v2 , . . . , vn }


de V .

Corolário 5.1. Se {q1 , q2 , . . . , qn } é uma base ortonormal obtida pelo Processo de Gram-
Schmidt, com normalização subsequente dos vetores da base {u1 , u2 , . . . , un } de V , então
qk é ortogonal a u1 , u2 , . . . , uk−1 , k ≥ 2.
vk
Demonstração. Provaremos que, para j ∈ {1, 2, . . . , n−1}, < vk , uj >= 0, pois qk = .
|| vk ||
Pelo Teorema anterior, temos
k−1
< uk , vi >
vk = uk −
X
vi ,
i=1 || vi ||2
ou seja,
k−1
< uk , vi >
uk = vk +
X
vi .
i=1 || vi ||2

De forma geral,
k−1
< uj , vi >
uj = vi + vj ,
X

i=1 || vi ||2
e daí, uj ∈ Wj , para j ∈ {1, 2, . . . , k − 1}.
Fazendo o produto interno de < vk , uj > temos
j−1 j−1
< uj , vi > X < uj , vi >
+v < vk , vi > +< vk , vj > = 0+0 = 0,
X
< vk , uj >=< vk , vi j >=
i=1 || vi ||2
i=1 || vi ||
2

pois {v1 , v2 , . . . , vn } é uma base ortogonal. Portanto, < vk , uj >= 0, ∀j = 1, 2, . . . , k−1.

Corolário 5.2. Se {q1 , q2 , . . . , qn } é uma base ortonormal obtida pelo Processo de Gram-
Schmidt, com normalização subsequente dos vetores da base {u1 , u2 , . . . , un } de V , então
< ui , qi >6= 0, ∀i ∈ {1, 2, . . . , n}.

Demonstração. Suponha, por absurdo, que < ui , qi >= 0. Como vimos no Corolário 5.1,
temos que ui ∈ Wi−1

. Como < ui , qi >= 0, obtemos ui ∈ Wi⊥ .
Mas, como vimos na demonstração do Corolário 5.1, ui ∈ Wi . Portanto, ui = 0.
Absurdo, pois ui pertence a uma base.

Em muitos problemas que envolvem álgebra matricial, um dos interesses é analisar


o espaço coluna de A. Particularmente, sendo A ∈ Rm×n de posto completo (m ≤ n), é
possível construir uma sequência de vetores ortonormais que gerem o espaço coluna de A
e veremos como obter esses vetores com a fatoração QR.
Capítulo 5. Fatoração QR 38

5.4 Fatoração QR reduzida


Com a base de projeções e o processo de Gram Schmidt, podemos construir, agora,
a fatoração QR. Aplicando o Teorema 5.3 no espaço coluna de A, encontramos uma base
ortonormal que gera o espaço col(A) e veremos que as coordenadas dos vetores coluna de
A, na base obtida por Gram-Schmidt, tornam a matriz R triangular, útil para resolver
sistemas lineares, que iremos apresentar no Capítulo 7.

Teorema 5.4. Se A ∈ Rm×n com os vetores coluna LI, com m ≥ n, então A pode ser
fatorada como A = Q̂R̂, onde Q̂ é uma matriz m × n com vetores coluna ortonormais e R̂
uma matriz n × n triangular superior inversível.

Demonstração. Sejam a1 , a2 , . . . , an os vetores coluna de A e q1 , q2 , . . . , qn os vetores coluna


obtidos ao aplicarmos o Processo de Gram-Schmidt nesses vetores.
Pelo Teorema 5.2, podemos escrever os vetores ai ’s como:

a1 =< a1 , q1 > q1 + < a1 , q2 > q2 + . . . + < a1 , qn > qn

a2 =< a2 , q1 > q1 + < a2 , q2 > q2 + . . . + < a2 , qn > qn


..
.

an =< a1 , q1 > q1 + < an , q2 > q2 + . . . + < an , qn > qn .

Podemos representar essas igualdades na forma matricial como:


 
< a1 , q1 > < a2 , q1 > . . . < an , q1 >
 
h i h i  < a1 , q2 > < a2 , q2 > . . . < an , q2 > 
=
 
a1 a2 . . . an q1 q 2 . . . qn ·  .. .. .. .
. . .
 
 
 
< a1 , qn > < a2 , qn > . . . < an , qn >

Pelo Corolário 5.1, qj é ortogonal a a1 , . . . , aj−1 , ∀ j, logo, todos os elementos


abaixo da diagonal principal da última matriz são nulos. Assim, podemos reescrever a
igualdade matricial como:

 
< a1 , q1 > < a2 , q1 > . . . < an , q1 >
 
h i h i  0 < a2 , q2 > . . . < an , q2 > 
=
 
a1 a2 . . . an q1 q 2 . . . qn ·  .. .. .. 
. . .
 
 
 
0 0 . . . < an , qn >

Por fim, pelo Corolário 5.2, os elementos da diagonal são não nulos, então a matriz
triangular superior é inversível. Portanto, denotando as matrizes da direita da igualdade
por Q̂ e R̂, obtemos A = Q̂R̂.
Capítulo 5. Fatoração QR 39

Por essa construção, nota-se que a matriz Q̂ possui vetores coluna ortonormais,
pois  
 
q1T  q1T q1 q1T q2 . . . q1T qn 
 
q2T q2T q1 q2T q2 . . . q2T qn 
  h  
i 
Q̂T Q̂ = = .. .. ..  = Id
 
·
.. q1 q2 . . . qn ...
  
. . . . 
  
  
.
 
qnT q1 qnT q2 .. qnT qn
   
qnT

Ao final do processo obtemos a chamada Farotação QR reduzida de A, que decompõe


A como produto de uma matriz Q com vetores coluna ortonormais e uma matriz R
triangular. A Figura 7 ilustra a fatoração QR reduzida. É valido notar que uma vez que
a hipótese do Teorema 5.4 seja que A tenha vetores coluna LI, a fatoração QR de uma
matriz só é possível em uma matrizes A ∈ Rm×n , com m > n.

Figura 7 – Fatoração QR reduzida.

O Exemplo a seguir mostra como obtemos a fatoração QR de uma matriz A ∈ R4×3 .


 

1 1 1 
1 −1 2 
 
Exemplo 5.1. Obtenha a fatoração QR reduzida de .


−1 1 0 
 

 
1 5 1
     

1  
1  
1 
1 −1 2
     
Note que os vetores coluna de A são a1 = , a2 = e a3 = .
     
   
−1 1 0
     
     
     
1 5 1
Aplicando o processo de Gram-Scmidt em cada um dos vetores, obtemos
     

0.5  
0  
0 
0.5 −0.40 0.70
     
q1 = = e q3 =
     
  , q2    ,
−0.5 0.40 0.70
     
     
     
0.5 0.81 0

ou seja,
Capítulo 5. Fatoração QR 40

 

0.5 0 0 
0.5 −0.4 0.7 
 
Q̂ =

 
−0.5 0.4 0.7 
 

 
0.5 0.81 0
e

   
< a1 , q1 > < a2 , q1 > < a3 , q1 >   2 2 2
 √ 
R̂ = 
 0 < a2 , q2 > < a3 , q2 > 

= 0 2 6 0

.

   √ 
0 0 < a3 , q3 > 0 0 2
   
1 1 1   0.5 0 0   
  2 2 2

1 −1 2  0.5 −0.4 0.7  √
   
Logo, A = Q̂R̂, ou = · 0 2 6 0 .
   

−1 1 0  −0.5 0.4 0.7  √
     
0 0 2
 
   
1 5 1 0.5 0.81 0

5.5 Fatoração QR completa


Na fatoração QR reduzida de A, escrevemos A = Q̂R̂, onde Q̂ é uma matriz com
vetores coluna ortonormais e R̂ uma matriz triangular inversível. Porém, podemos ampliar
a fatoração com uma motivação sobre a matriz Q̂.
O novo objetivo é obter uma matriz Q cujos vetores coluna formem uma base
ortonormal para o espaço Rm . Para isso, adicionamos m − n vetores ortonormais ao espaço
coluna de Q̂ para obter a matriz desejada Q ∈ Rm×m . Para mantermos uma igualdade
matricial com a fatoração QR reduzida, adicionamos m − n linhas nulas à matriz R̂,
obtendo a matriz R ∈ Rm×n , agora retangular e não-inversível, como ilustrado na Figura
8.

Figura 8 – Fatoração SVD completa.

Teorema 5.5. Toda matriz A ∈ Rm×n possui fatoração QR completa, consequentemente


também a fatoração QR reduzida.

Demonstração. Suponha que A tenha posto completo. Pelo Teorema 5.4, A possui fatoração
QR.
Capítulo 5. Fatoração QR 41

Suponha que A não tenha posto completo. Então, no processo de Gram-Schmidt,


acharemos vj = 0. Quando isso acontecer, tome qj de forma que seja normado e ortogonal
a Wj−1 .
Para a fatoração QR completa, basta fazer a fatoração QR reduzida e introduzir
vetores ortonormais as colunas de Q‘ e as linhas nulas de R‘.

O próximo teorema garante a unicidade da fatoração QR reduzida, no caso em que


A tem posto completo.

Teorema 5.6. Cada matriz A ∈ Rm×n com posto completo possui única fatoração QR
reduzida.

Demonstração. Sabemos que toda fatoração QR reduzida de A é construída pelo processo


de Gram-Schmdt. Assumindo o posto completo, cada vetor é unicamente determinado [7],
demonstrando o teorema.

Uma observação sobre os Teoremas 5.4, 5.5 e 5.6 é que eles possuem suas respectivas
representações para matrizes A ∈ Cm×n com entradas complexas, mantendo as propriedades
das matrizes Q̂, R̂, Q e R. Porém neste trabalho, adotamos matrizes com entradas reais.
Outro detalhe importante é que, para obtermos a fatoração QR, seja para a
fatoração reduzida seja para a completa, não há necessidade de que os vetores colunas
sejam todos LI. Caso haja um vetor coluna que seja multiplo dos anteriores, acrescentamos
a eles um vetor ortonormal, e acrescentamos 0 na entrada correspondente na matriz R.
No Exemplo 5.2, mostraremos um caso onde isso acontece.
 

1 1 2 
0 1 1
 
Exemplo 5.2. Obtenha a fatoração QR completa de A = .
 

1 0 1
 
 
 
0 0 0

Perceba que a terceira coluna da matriz A é soma da primeira com a segunda e,


portanto, o posto da matriz não é completo. Desse modo, ao fazer o Processo de Gram-
Schmidt, obtemos v3 = 0. Como buscamos a fatoração QR completa de A, completaremos
a base para W2 .
Executando as contas do Processo de Gram-Schmidt e completando a base de W2 ,
obtemos uma matriz Q:
 

0, 7 0, 4 0, 33 0 
0 0, 81 −0, 33 0
 
Q=
 
 .
0, 7 −0, 4 −0, 33 0
 
 
 
0 0 0 1
Capítulo 5. Fatoração QR 42

Calculando a matrz R, obtemos


 

1, 41 0, 7 2, 12 
0 1, 22 1, 22 
 
R=

 .
0 0 0 
 

 
0 0 0

Dessa forma, conseguimos encontrar a fatoração QR de A, A = QR, ou seja,


     

1 1 2  
0, 7 0, 4 0, 33 0  
1, 41 0, 7 2, 12 
0 1 1 0 0, 81 −0, 33 0 0 1, 22 1, 22 
     
=
    
   · .
1 0 1 0, 7 −0, 4 −0, 33 0 0 0 0 
     
    
     
0 0 0 0 0 0 1 0 0 0

Como última observação sobre a fatoração QR, ressaltamos que essa fatoração pode
ser construída usando a ortogonalização de Gram-Schmidt, com a aplicação de sucessivas
matrizes elementares Rk à direita de A para obter a matriz Q̂, ou seja, AR1 R2 . . . Rn = Q̂,
com R1 R2 . . . Rn = R̂−1 ou através da aplicação de sucessivas matrizes unitárias Qk à
esquerda de A para obter uma matriz triangular R̂, obtendo a igualdade Qn . . . Q2 Q1 A = R̂,
com Qn . . . Q2 Q1 = Q̂−1 . Essa técnica é conhecida como triangularização de Householder.
Realizar a fatoração pela triangularização de Householder possui como benefício
ser mais estável computacionalmente e mais rápida do que utilizar a ortogonalização de
Gram-Schmidt. Para maiores detalhes, veja a referência [1].
43

6 Decomposição em Valores Singulares

Neste capítulo trabalharemos com matrizes retangulares A ∈ Rm×n . Será abordada


fatoração conhecida como Decomposição em Valores Singulares (Single Value Decomposition
- SVD). Tal fatoração escreve A = U ΣV T , sendo U e V matrizes unitárias e Σ uma matriz
com entradas não negativas.
Assim como na fatoração QR vista no Capítulo 5, os resultados e propriedades
das matrizes U , Σ e V também valem para matrizes com entradas complexas A ∈ Cm×n ,
porém abordamos apenas o caso real, ou seja, A ∈ Rm×n

6.1 Motivação geométrica


Começaremos o estudo da SVD abordando uma de suas principais motivações para
uma matriz A ∈ Rm×n , com m > n, que é um fato geométrico sobre matrizes: “A imagem
de uma esfera unitária sobre o mapeamento de uma matriz A ∈ Rm×n é uma hiperelipse”
[1]. Essa afirmação está ilustrada na figura 9.
Embora o termo “hiperelipse” possa não ser comum, podemos entendê-lo como
uma generalização de elipse em espaços m-dimensionais (por exemplo, o elipsoide, em
R3 ). Formalmente, podemos definir uma “hiperelipse” no Rm como a superfície obtida
esticando a esfera unitária S no Rn em fatores σ1 , . . . , σm ∈ R, nos quais os fatores σi
podem ser zero ou não, em direções ortonormais ui , . . . , um ∈ Rm .

Figura 9 – Motivação geométrica da SVD considerando A ∈ R2×2 .

Suponha, sem perda de generalidade que, ∀ui , i ∈ {1, . . . n}, || ui ||2 = 1. Então, o
conjunto {σ1 u1 , σ2 u2 , . . . , σn un } são os semi-eixos principais da hiperelipse de tamanho
σ1 , σ2 , . . . , σm .
Capítulo 6. Decomposição em Valores Singulares 44

Seja A ∈ Rm×n . Se posto(A) = r, então, ao tomarmos AS, teremos r valores


singulares σi ’s tais que σi 6= 0 e, se m > n, então há, no máximo, n valores sigulares σi ’s
6= 0.
Apesar de intuitivo, os fatos geométricos aqui abordados não são óbvios. Para
formalizar tais ideias, serão apresentados os conceitos através da Álgebra Linear, que
também podem ser encontrados em [1,9, 10]. Inicialmente, considere S uma esfera unitária
em Rn e seja A ∈ Rm×n com posto(A) = n.

Definição 6.1. Os valores singulares de A são os tamanhos, de acordo com uma determi-
nada norma, dos n principais semi-eixos de AS, dados por σ1 , σ2 , . . . , σn ∈ R. É importante
destacar que, neste trabalho, usaremos a norma-2, definida no Capítulo 2, para medir os
semi-eixos e que, por convenção, os valores singulares são colocados em ordem decrescente.

Definição 6.2. Os vetores singulares à esquerda são os vetores unitários {u1 , u2 , . . . un } ⊂


Rm orientados na direção dos principais semi-eixos de AS.

Definição 6.3. Os vetores singulares à direita são vetores unitários {v1 , v2 , . . . vn } ⊂ Rn


que são pré-imagem dos semi-eixos de AS.

Observando as Definições 6.1 - 6.3, é possivel montar uma equação que relaciona
os três objetos, e ela é dada por Avi = σi ui , i ∈ {1, . . . n} que pode ser representada
matricialmente por:

   
     







 σ1
..
     

 A

 v1 . . . vn 

= 
 u1 . . . un 

 .


     
σn
   
   
   

ou AV = Û Σ̂, onde Σ̂ ∈ Rn×n é uma matriz diagonal com entradas reais positivas,
Û ∈ Rm×n uma matriz com posto completo e V ∈ Rn×n unitária. Como V é unitária,
podemos reescrever a equação como A = Û Σ̂V T . Essa fatoração é chamada de SVD
reduzida, representada na Figura 10.

Figura 10 – Fatoração SVD reduzida.


Capítulo 6. Decomposição em Valores Singulares 45

Retornando à afirmação representada na Figura 9, podemos discutir, agora, a


aplicação de cada matriz Û , Σ̂ e V T : o mapeamento V T preserva a esfera, rotacionando,
apenas, os seus eixos; a matriz Σ̂ estica os novos eixos da esfera para formar uma hiperelipse
e, por fim, a matriz Û mapeia a hiperelipse de Rn para o Rm .
Algumas aplicações de fatoração SVD são feitas utilizando a fatoração reduzida,
porém, não é a única maneira de representarmos essa fatoração. A vantagem da outra
representação, que chamaremos de SVD completa, é a demonstração de alguns teoremas
sobre a matriz A que são facilitadas por tal representação (adiantamos que as n colunas de
Û são ortonormais, faremos essa demonstração mais adiante). Embora sejam ortonormais,
os vetores coluna não formam uma base para Rm , nem Û é uma matriz unitária, uma vez
que a matriz sequer é quadrada. Porém, ao acrescentarmos m − n vetores ortonormais
às colunas de Û , formando uma base ortonormal para Rm , a matriz pode ser estendida a
uma matriz unitária que denotaremos por U ∈ Rm×m . Essa nova forma da fatoração pode
ser melhor visualizada através da Figura 11.

Figura 11 – Fatoração SVD completa.

Visto que Û é substituida por U , para manter a igualdade original, devemos multi-
plicar por 0 as colunas acrescentadas em Û . Para realizar essa operação, acrescentaremos
m − n linhas nulas à matriz Σ̂, tornando-a Σ ∈ Rm×n .

Definição 6.4. Sejam m, n ∈ N. Dado A ∈ Rm×n qualquer, a Decomposição em Valores


Singulares (SVD) de A é a fatoração A = U ΣV T , onde U ∈ Rm×m é unitária, V ∈ Rn×n é
unitária e Σ ∈ Rm×n é diagonal.

Proposição 6.1. Seja A ∈ Rm×n . Então, posto(A) = posto(AT A). E, como consequência
direta, dim(col(A)) = dim(col(AT A)).

Demonstração. Afirmação: N uc(AT A) = N uc(A).


Seja x ∈ N uc(A). Então, Ax = 0. Multiplicando a igualdade por AT à esquerda,
obtemos que AT Ax = AT 0 = 0. Logo, x ∈ N uc(AT A).
Agora, seja x ∈ N uc(AT A). Ao fazer o produto interno de Ax com um vetor
u ∈ col(A), ou seja, ∃ v tal que u = Av, vemos que

uT Ax = (Av)T Ax = v T AT Ax = v T 0 = 0,
Capítulo 6. Decomposição em Valores Singulares 46

ou seja, Ax ∈ (col(A))⊥ . Mas como Ax ∈ col(A), segue que Ax = 0. Logo x ∈ N uc(A),


provando a afirmação.
Como Ker(A) = Ker(AT A), η(AT A) = η(A). Pelo Teorema do Posto e Nulidade
(Teorema 2.4),

n = posto(AT A) + η(AT A)
⇒ n = posto(AT A) + η(A)
⇒ n = posto(AT A) + n − posto(A)
⇒ posto(A) = posto(AT A).

Proposição 6.2. Seja A ∈ Rm×n . Os autovetores v1 , . . . , vk associados aos autovalores


não nulos de AT A formam uma base para col(A).

Demonstração. Como AT A ∈ Rm×m é diagonalizável (Teorema 2.5), temos como igualdade


que AT A = λ1 v1 v1T+ λ2 v2v2T + . . . + λk vk vkT . Se ai é o i-ésimo vetor coluna da matriz AT A,
b
 j1 
 bj2 
 
1 ≤ i ≤ m, e vj =  .   é o j-ésimo autovetor associado ao j-ésimo autovalor não nulo
 .. 

 
bjm
de AT A, 1 ≤ j ≤ k, pela igualdade acima, podemos obter a relação ai = kj=1 λj bji vj .
P

Dessa forma, como {v1 , . . . vk } é um conjunto ortogonal e pela relação acima, concluímos
que {v1 , . . . vk } forma uma base para col(AT A). Pela Proposição 6.1, dim(col(AT A)) =
dim(col(A)), e segue diretamente que {v1 , . . . , vk } também é base para col(A).

6.2 Teorema de existência da SVD

Teorema 6.1. Seja A ∈ Rm×n . Então, existem matrizes ortogonais U ∈ Rm×m , V ∈ Rn×n
tais que
A = U ΣV T ,

com Σ ∈ Rm×n tendo elementos fora da diagonal principal iguais a 0 e σ1 ≥ σ2 ≥ . . . ≥ σp ,


p = min{m, n}.

Demonstração. Seja A ∈ Rm×n e, suponha, sem perda de generalidade, que m > n.


Suponha também que posto(A) = n. É facil ver que a matriz AT A é uma matriz simética.
Pelo Teorema Espectral (Teorema 2.5), existe V ∈ Rn×n unitária tal que V (AT A)V T = D.
Essa será a matriz V da SVD.
Capítulo 6. Decomposição em Valores Singulares 47

Seja vj uma coluna de V . Por vj ser um autovetor de AT A,

(AT A)vj = λj vj . (6.1)

Multiplicando (6.1) por vjT a esquerda, temos:

vjT (AT A)vj = λj vjT vj =⇒ (Avj )T (Avj ) = λj || vj ||2 =⇒|| Avj ||2 = λj ,

ou seja, dessa forma, temos que λj ∈ R, λj ≥ 0.


Sem perda de generalidade, reorganize os vetores coluna de V de modo que

λ1 ≥ λ2 ≥ . . . ≥ λn . Agora, tome σj = λ, ou seja, σj =|| Avj ||. Essas serão as
entradas da matriz Σ.
Agora seja ui tais que Avj = σj uj , || uj ||= 1. Queremos mostrar que o conjunto
1

β = ui = Avi , 1 ≤ i ≤ n forma uma base ortonormal para col(A). Para isso,
σi
mostraremos que β é um conjunto ortonormal.
Temos que

1 1 1
 T !
uTi uj = Avi Avj = (Avi )T (Avj ) =
σi σj σi σj

1 T T 1 T λj T
vi A Avj = vi λj vj = v vj .
σi σj σi σj σi σj i

Como os vetores vi ’s são ortonormais, obtemos que



1, se

i=j
viT vj =  .
0, se i 6= j

Logo, 
1, se

i=j
uTi uj = .
0, se

i 6= j
Portanto, β é um conjunto ortonormal, logo é LI. Como β possui n vetores e posto(A) =
dim(col(A)) = n, pela Proposição 6.2, segue que β é uma base para col(A). Agora, para
obtermos U ∈ Rm×m unitária, basta completarmos a base de col(A) até obtermos uma
base ortonormal para Rm .

Uma vez que sabemos, agora, como encontrar a fatoração SVD de uma matriz A,
vejamos como aplicá-la em sistemas lineares, adiantando um pouco do que veremos no
Capítulo 7.
Seja o sistema linear de equações Ax = b, A ∈ Rm×n , x ∈ Rn , b ∈ Rm . Pelo
teorema da existencia da fatoração SVD (Teorema 6.1), A = U ΣV T . Como vimos, o
Capítulo 6. Decomposição em Valores Singulares 48

espaço coluna de U é base para Rm , então, o vetor b é combinação linear dos vetores
coluna de U . Em outras palavras, b = U b0 =⇒ b0 = U T b, b0 ∈ Rm . De maneira análoga,
x = V x0 =⇒ x0 = V T x.
Substituindo na equação Ax = b, temos

Ax = b =⇒ U T Ax = U T b =⇒ U T U ΣV T x = U T b =⇒ Σx0 = b0 .

Dessa forma, sendo o espaço coluna de U uma base de Rm e o espaço coluna de V


uma base para Rn , nessas condições, resolver o sistema Ax = b é equivalente a resolver
um sistema diagonal Σx0 = b0 .
Durante este Capítulo, já utilizamos o Teorema espectral (Teorema 2.5). Mas é
importante ressaltar que existem diferenças entre a Decomposição Espectral e a SVD. A
primeira delas é que a SVD ulitiza duas bases ortonormais, enquanto a Decomposição
Espectral utiliza apenas uma, que não necessariamente precisa ser ortogonal. Outra
diferença importante é sobre a existência dessas fatorações: toda matriz admite fatoração
SVD, enquanto que apenas matrizes auto-adjuntas admitem uma Decomposição Espectral.

6.3 Propriedades da SVD


Para os resultados desta seção, considere A com entradas reais e posto(Σ) = r.

Teorema 6.2. O posto de uma matriz A é igual a quantidade de valores singulares de A.

Demonstração. Sabemos que A = U ΣV ∗ . Como U e V são bases de Rm e Rn respectiva-


mente, U e V T possuem posto completo. Dessa forma, posto(A) = posto(Σ) = r.

Os dois próximos teoremas são consequências diretas da demonstração da existência


da SVD. As demonstrações podem ser encontradas em [1].

Teorema 6.3. Os valores singulares não negativos de A são as raízes dos autovalores de
AT A.

Teorema 6.4. Se A = AT , os valores singulares de A são os valores absolutos dos


autovalores de A.

Teorema 6.5. Se A é uma matriz quadrada, então


r
det(A) =
Y
σr .
i=1

Demonstração. Afirmação: | det(K) |= 1, se K é uma matriz unitária.


Capítulo 6. Decomposição em Valores Singulares 49

Perceba que podemos obter a seguinte cadeia de igualdades:

1 = det(I) = det(U U −1 ) = det(U U T ) = det(U )det(U T ) = det(U )det(U )T .

Dessa forma, det(U ) é um número u que satisfaz 1 = uuT . Daí, | u |= 1.


Desenvolvendo a afirmação, temos que
r
det(A) = det(U ΣV T )det(U )det(Σ)det(V T ) = det(Σ) =
Y
σr .
i=1

O próximo teorema afirma que a matriz A pode ser escrita como soma de matrizes
de posto 1.

Teorema 6.6. Uma matriz A é a soma das r matrizes de posto 1 ou seja,


r
A= σi ui viT .
X

i=1

Demonstração. Pela fatoração SVD, A = U ΣV T , ou, de forma matricial,


 
σ1  

...
 v1T
i
..
h  
A= .
 
u1 . . . um  .
 
σr
  
 
  vnT

Escreva a matriz Σ da forma Σ = Σ1 + · · · Σr , onde Σi é uma matriz retangular


com a entrada σii = σi e todas as outras entradas são nulas. Dessa forma, as matrizes
Σi possuem posto 1. Utilizando a distributiva de multiplicação de matriz, obtemos o
somatório desejado
r
A= σi ui viT .
X

i=1

 

2 −4 
2 2 
 
Exemplo 6.1. Encontre a decomposição SVD completa da matriz A =

 
−4 0 
 

 
1 4

Seguiremos a demonstração do Teorema 6.1 para encontrar a fatoração SVD de A.


Começaremos, então, 
a fatoração calculando V . Para isso, calcularemos AT A. Fazendo isso,
25 0 
achamos que AT A =  . Com isso, concluímos que λ1 = 36 e λ2 = 25. Podemos,
0 36
Capítulo 6. Decomposição em Valores Singulares 50

então, calcular
 os autovetores associados a esses autovalores e acharmos V . Temos então
0 1 
que V =  .
1 0
Como λ1 = 36 e λ2 = 25, temos que σ1 = 6 e σ2 = 5. Com isso, conseguimos

6 0 
 0 5 
 
montar a matriz Σ = 
 .
 0 0 

 
0 0
1
Calcularemos agora a matriz U . Primeiramente, faça ui = Avi , i = 1, 2. Temos
    σi
−4 
 
2 
1 2  1 2 
   
que u1 =  e u2 = 
. Já vimos que W = {u1 , u2 } é ortogonal. Logo, basta

  
6 0 

 5  −4 

   
4 1
encontrar W ⊥ e encontrar uma base ortonormal
 para W . De

 acordo com nossos cálculos,

2  
82 
1  4  1  −68 
   
temos que W = {d1 , d2 }, onde d1 =
⊥ √ 
 e d2 =
  . Assim, concluímos
29  3 

29 
 36 

   
0 116
h i
que U = u1 u2 d1 d2 .
A SVD da matriz A será, portanto,
  
−2
 3
2
5
√2
29
82
29 
6 0  
1 2 √4 −68
0 5 0 1 
  
A = U ΣV T
= 3 5 29
  
 29   .
0 −4 √3 36
0 0 1 0
  
5 29
  
 29  
2
3
1
5
0 116
29
0 0
51

7 Aplicações

Após estudarmos quatro diferentes métodos de fatorar uma matriz, vamos estudar
aplicações das fatorações vistas nos Capítulos de 3 a 6. Vamos descrever, primeiramente,
o problema de mínimos quadrados, sua motivação e mostrar como resolver este problema
com fatoração de matrizes aliada às equações normais, que também serão apresentadas
neste capítulo. Em seguida, veremos outras aplicações envolvendo, de forma particular, a
fatoração SVD. As aplicações apresentadas envolverão temas de processamento de imagens,
particularmente em problemas de compressão de imagens e reconhecimento de rostos.

7.1 O Problema de Mínimos Quadrados


Suponha uma matriz A ∈ Rm×m quadrada e um vetor b ∈ Rm Se A for uma matriz
inversível, temos que o sistema Ax = b é um sistema possível e determinado. Em outras
palavras, existe um vetor x0 ∈ Rm tal que

Ax0 = b =⇒ Ax0 − b = 0 =⇒|| Ax0 − b ||= 0.

Mas, se tivermos uma matriz A ∈ Rm×n , com m > n, a probabilidade que o nosso
sistema seja impossível é alta, ou seja, a chance de não existe um vetor x0 tal que Ax0 = b
é grande. Nesses casos, buscar uma solução pode ser entendido como procurar um vetor x
que minimize || Ax − b ||, ou seja, um vetor x que minimiza a norma da diferença entre
Ax e b. Tal vetor será considerado como a melhor aproximação possível para o sistema
e será chamado de solução por Mínimos Qudrados (que possui esse nome pelo fato que
resolver minx∈Rn || Ax − b || (o que equivale a resolver minx∈Rn || Ax − b ||2 .)
Como denotamos na lista de abreviaturas e siglas, || Ax − b || representa a norma-2
euclidiana. A explicação pelo uso dessa norma é por argumentos geométricos e estatísticos.
Mais detalhes sobre a escolha da norma-2 pode ser encontrada em 11
Para encontrarmos este vetor que será a melhor aproximação, voltaremos ao estudo
dos projetores. No Capítulo 5 estudamos os projetores e ilustramos sua interpretação
geométrica para o R2 , e os utilizamos para, junto com o processo de ortogonalização de
Gram-Schmidt, construir uma base ortonormal que, daria origem à matriz Q da fatoração
QR. No teorema a seguir (Teorema 7.1) estudaremos um pouco melhor sobre a projeção
de um vetor u em um subespaço W e quais características sobre ele podemos utilizar para
nos auxiliar no problema dos mínimos quadrados.
Capítulo 7. Aplicações 52

Teorema 7.1 (Teorema da Melhor Aproximação). Se W é um subespaço de dimensão


finita de um espaço V com produto interno e u é um vetor de V , então projW u é a melhor
aproximação para u em W .

Demonstração. Mostraremos que, ∀w ∈ W, w 6= projW u, então || u − projW u ||<|| u − w ||.


Logo, suponha w 6= projW u. Note que

u − w = (u − projW u) + (projW u − w).

Como projW u − w ∈ W e u − projW u ∈ W ⊥ , temos que

|| u − w ||2 =|| u − projW u ||2 + || projW u − w ||2 .

Como w 6= projW u, || projW u − w ||> 0. Daí, || u − projW u ||2 <|| u − w ||2 que, dessa
forma, || u − projW u ||<|| u − w ||.

Perceba que o Teorema 7.1 garante que existe uma solução por mínimos quadrados
para um sistema linear impossível Ax = b, com A ∈ Rm×n , m > n. Ao tomarmos
W = col(A) e u = b, ao aplicar o Teorema 7.1, ganhamos um vetor que satisfaça o
problema de mínimos quadrados. Mas como encontrar essa solução garantida pelo Teorema
7.1 utilizando as fatorações que aprendemos? Neste momento, introduzimos os sistemas de
equações normais.

Definição 7.1. Seja Ax = b um sistema linear com m equações e n incógnitas. Definimos


sistema de equações normais ao sistema dado por AT Ax = AT x.

Definição 7.2. Dado um sistema linear Ax = b, com A ∈ Rm×n e b ∈ Rm , chamaremos o


vetor r = b − Ax, r ∈ Rm de vetor residual. Perceba que este vetor r depende de x ∈ Rn .

O Teorema 7.2 a seguir é o elo entre a solução por mínimos quadrados e os sistemas
de equações normais.

Teorema 7.2. Sejam a matriz A ∈ Rm×n e o vetor b ∈ Rm . Então o sistema Ax = b


tem pelo menos uma solução x0 por mínimos quadrados e, além disso, o vetor x0 é uma
solução por mínimos quadrados de Ax = b se, e somente se, x0 é uma solução do sistema
de equações normais AT Ax = AT b.

Demonstração. Seja W o espaço coluna de A ∈ Rm×n . Como Ax é uma combiação linear


dos vetores colunas de A, então ∀x ∈ Rn , Ax percorre todo espaço coluna W de A. Logo,
buscar a solução por mínimos quadrados é encontrar o vetor x0 ∈ Rn tal que || b − Ax0 || é
a menor possível. Pelo Teorema da Melhor Aproximação, Ax0 = projW b.
(⇒) Como b − Ax0 = b − projW b ∈ W ⊥ , então aTi (b − Ax0 ) =< aTi , b − Ax0 >= 0. Logo,
AT (b − Ax0 ) = 0, daí, AT Ax0 = AT b.
Capítulo 7. Aplicações 53

(⇐) Se x0 é solução do sistema de equações normais, ou seja, AT Ax0 = AT b, então,


AT b − AT Ax0 = 0 ⇒ AT (b − Ax0 ) = 0, ou seja, para cada vetor coluna de A, b − Ax é
ortogonal a aj , ou seja, b − Ax0 ∈ W ⊥ .

O próximo resultado expressa a condição necessária e suficiente para que um vetor


x seja solução do problema de mínimos quadrados, relacionando ao vetor resíduo visto na
Definição 7.2.

Teorema 7.3. Seja A ∈ Rm×n e b ∈ Rm . Um vetor x ∈ Rn minimiza a norma do vetor


residual || r ||2 =|| b − Ax ||2 , ou seja, resolve o problema dos mínimos quadrados se, e
somente se, r ∈ Im(A)⊥ .

Definição 7.3. Chamamos de matriz semi-definida positiva a uma matriz A tal que
xT Ax ≥ 0, ∀x ∈ Rn .

Teorema 7.4. Se A ∈ Rm×n , então AT A é uma matriz simétrica definida positiva e AT A


é definida positiva se, e somente se, A tem colunas L.I.

Demonstração. Se x é um vetor não nulo, então

xT AT Ax = (Ax)T (Ax) = y T y =|| y ||2 ≥ 0.

Logo, AT A é semi-definida positiva.


(⇒) Suponha que AT A é definida positiva. Vamos ver se os vetores de A são LI:

x1 a1 + x2 a2 + · · · xn an = 0 ⇐⇒ Ax = 0 ⇐⇒ xT AT Ax = 0.

Mas como AT A é definida positiva, xT AT Ax > 0, ∀ x =


6 0. Logo, x = 0 e, portanto,
ai é L.I, i = 1, · · · , n.
(⇐) Se ai é L.I., x1 a1 + x2 a2 + · · · xn an 6= 0, para xi 6= 0, para algum i entre 1 e n.
Daí,
Ax 6= 0 =⇒ (AxT )Ax > 0.

Logo, AT A é definida positiva.

Em resumo, os teoremas apresentados afirmam que encontrar uma solução por


mínimos quadrados de um sistema impossível Ax = b é o mesmo que encontrar a solução
de um sistema de equações normais AT Ax = AT b. Diante deste fato, faremos a resolução
de sistemas lineares impossíveis utilizando a fatoração Cholesky, QR e SVD.
Capítulo 7. Aplicações 54

7.2 Resolução de um sistema impossível por mínimos quadrados


usando Cholesky
Pelo Teorema 7.4, se tivermos que os vetores coluna de A forem L.I., a matriz AT A
é definida positiva, permitindo, então, segundo o Teorema 4.7, a fatoração de Cholesky
AT A = GGT . Assim, para resolver o sistema linear Ax = b basta seguir algoritmo de
Minimos Quadrados via Equações Normais:

1. Fatorar a matriz AT A = GGT ;

2. Substituir a fatoração no sistema AT Ax = AT b =⇒ GGT x = AT b;

3. Resolver o primeiro sistema (triangular inferior) Gy = AT b;

4. Resolver o segundo sistema (triangular superior) GT x = y para obter x.

No final, calcular a norma do vetor residual conhecer o erro na aproximação do


vetor ideal.
Com o objetivo de ilustrar o método, vejamos dois exemplos de resolução de sistema
utilizando a fatoração de Cholesky. No primeiro, tem-se um sistema possível e determinado,
enquando que o segundo apresenta um sistema impossível.

Exemplo 7.1. Obtenha a solução por mínimos quadrados do sistema linear Ax = b


indicado abaixo: 
3x1 + 2x2 = 13

−4x1 + 9x2 = 76

   
3 2  13 
Perceba que A =  eb= . Veja também que os vetores coluna de
−4 9 76
A são L.I. e, portanto, AT A é uma matriz definida positiva, pelo Teorema 7.4. Podemos,
então, resolver o sistema por meio de equações normais, onde
   
25 −30  −265 
AT A =  e AT b =  .
−30 85 710

Realizando a fatoração de Cholesky na matriz AT A, obtemos


   
5 0   5 −6 
AT A =  · = GGT .
−6 7 0 7

Logo, basta resolver o sistema Gy = AT b, onde y = GT x e, depois de determinado


y, resolver GT x = y.
Capítulo 7. Aplicações 55

Resolvendo Gy = AT b
O sistema triangular é
     
5 0   y1   −265 
 · = ,
−6 7 y2 710

que possui como solução y1 = −53 e y2 = 56.


Resolvendo GT x = y O sistema triangular é
     
5 −6   x1   −53 
 · = ,
0 7 x2 56

que possui solução x1 = −1 e x2 = 8.


 
−1 
Portanto, a solução do sistema é  . Vamos verificar a norma do vetor residual.
8
 
13 
Ax =  . Logo, r = b − Ax = 0 e, por isso, || b − Ax ||= 0. Este exemplo aborda um
76
caso interessante, pois o método dos mínimos quadrados encontrou a solução do sistema
possível e determinado.

Exemplo 7.2. Obtenha a solução por mínimos quadrados do sistema linear Ax = b


indicado abaixo: 
 2x + 3x2 = 5
 1



 9x1 + 4x2 = 51

6x − x2 = 40


1

   

2 3  
5 
Temos A =  9 4 eb= 51 .
   

   
6 −1 40
Como os vetores coluna de A são LI, podemos resolver
 o sistema
 via equações
121 36 
normais usando a fatoração de Cholesky na matriz AT A =  .
36 36
   
11 0 11 36
Realizando a fatoração de Cholesky, obtemos AT A =  √ ·  11
√ .
36
11
5 74
11
0 5 74
5
Vamos, então, resolver os já citados sistemas triangulares.
Resolvendo Gy = AT b
O sistema triangular é
     
11 0 y
· 1 =
709 
 √ ,
36
11
5 74
11
y2 179
Capítulo 7. Aplicações 56

 
709
que possui como solução y =  11
−3865
.

55 74

Resolvendo GT x = y
O sistema triangular é
     
11 36
11
x
· 1 =
709
11 ,
 √
0 5 74
5
x2 −3865

55 74
 
1199
que possui solução x =  185
−773
.
340

Sabendo o vetor x, vamos calcular o resíduo para medirmos a distância do vetor b :



19 74
0
|| Ax − b ||= ≈ 2, 2087051.
74

7.3 Resolução de um sistema impossível por mínimos quadrados


usando QR
Se A ∈ Rm×n , m > n é uma matriz tal que os seus vetores coluna são LI, a matriz
A possui fatoração QR reduzida, pelo Teorema 5.4. Portanto, podemos encontrar uma
solução por equações normais do sistema linear Ax = b, com b ∈ Rm . Algebricamente,
podemos fazer
AT Ax = AT b =⇒ (Q̂R̂)T Q̂R̂x = (Q̂R̂)T b =⇒ R̂T Q̂T Q̂R̂x = R̂T Q̂T b =⇒ R̂T R̂ = R̂T Q̂T b
=⇒ R̂−T R̂T R̂x = R̂−T R̂T Q̂T b =⇒ R̂x = Q̂T b.

Na prática, basta seguir as etapas do algoritmo:

1. Calcular as matrizes Q̂ e R̂ tal que A = Q̂R̂;

2. Calcular Q̂T b;

3. Resolver o sistema triangular R̂x = Q̂T b.

No final, calcular a norma do vetor residual para conhecer a distância da solução


por mínimos quadrados para o vetor b.
O Exemplo 7.3 ilustra o método proposto para o caso de uma matriz A ∈ R4×3 .

Exemplo 7.3. Encontre a solução do sistema abaixo pelo método dos mínimos quadrados:




 x1 + x2 + x3 = 8


− x2 + 2x3 = 17

 x1

.
−x1 + x2 = −5






x + 5x + x = 6


1 2 3
Capítulo 7. Aplicações 57

Ao confirmarmos que os vetores coluna de A são LI, podemos fatorar (Teorema 5.4)
a matriz A para resolvermos o sistema de equações normais. Fatorando, então, a matriz A,
obtemos
   
1 1 1   1
0 0  
 2
−1
 2 2 2
1 −1 2  1 √ √1 √
     
A= = 2 6 2
0 2 6 0 = Q̂R̂
   
 · 
−1 1 0  −1 √1 √1

    
√ 
2
0 0 2
  
   6 2 
1 5 1 1
2
√2
6
0

Conhecendo as matrizes Q̂ e R̂, calculamos primeiro o vetor Q̂T b :


 
  8  
1 1 −1 1   18 
2 2 2 2   17 √
  
Q̂T b = 
 0 −1 √1 √2
 
= −5 6

√ ·  
6 6 6 3
 
   −5
  √ 
0 √1 √1 0 6 2
 
 
2 2
6

e, então, vamos resolver o sistema


     
2 2 2 x 18 
 √     √
R̂x = Q̂T b =⇒  0 2 6 0 =
 −5 6 
· y ,
   
3

 √     √ 
0 0 2 z 6 2
 
23
 6 
que tem como solução o vetor x0 = 
 −5
6
.

 
6
Calculamos, por fim, a norma do vetor residual
s
4
|| Ax0 − b ||= ≈ 1, 154700.
3

7.4 Resolução de um sistema impossível por mínimos quadrados


usando SVD
De acordo com o Teorema 6.1, toda matriz A possui uma fatoração SVD reduzida.
Então, podemos resolver, usando a fatoração SVD, um sistema de equações normais
AT Ax = AT b. De forma análoga ao que foi apresentado para o caso da fatoração QR,
podemos desenvolver a equação AT Ax = AT b usando a fatoração SVD A = Û Σ̂V T , da
forma

AT Ax = AT b =⇒ V Σ̂Û T Û Σ̂V T x = V Σ̂Û T b =⇒ V Σ̂Σ̂V T x = V ΣÛ T b

=⇒ Σ̂Σ̂V T x = Σ̂Û T b =⇒ Σ̂V T x = Û T b.


Ou seja, temos que resolver o sistema de equações normais AT Ax = AT b é resolver o
sistema Σ̂V T x = Û T b.
Capítulo 7. Aplicações 58

Portanto, para resolver o sistema de equações normais, é necessário seguir as etapas


do algoritmo:

1. Calcular a fatoração SVD reduzida de A;

2. Calcular o vetor Û T b;

3. Resolver o sistema diagonal Σ̂y = Û T b, onde y = V T x;

4. Resolver o sistema V T x = y.

No final, calcular a norma do vetor residual para conhecer a distância da solução


por mínimos quadrados para o vetor b.
O Exemplo a seguir ilustra o algoritmo para resolução do sistema linear usando
SVD.

Exemplo 7.4. Resolva o sistema usando método dos mínimos quadrados






2x1 − 4x2 = 1


2x1 + 2x2 = 2


.
−4x1 = 3






x + 4x =4


1 2

 

2 −4 
2 2 
 
Temos a matriz A =  que possui a fatoração SVD reduzida da forma


−4 0 
 

 
1 4
 
−2 2
 3 5     
1 2
5 0   1 0 
 
A= 3 5
= Û Σ̂V T .
 
 · ·
0 −4
0 6 0 1
 
5
 
 
2 1
3 5

 
8
Determinadas as matrizes Û , Σ̂, V , calculamos, primeiro, o vetor Û T b =  3
−2
.
5
     
5 0   y1   5 0 
Depois, resolvemos o sistema linear Σ̂y = Û T b,  · = , que
0 6 y2 0 6
 
8
tem como solução o vetor y =  15
−1
.
15

Porfim, 
encontrado y, basta resolver o sistema V T x = y, que tem como solução o
8
vetor x =  15
−1
.
15
Capítulo 7. Aplicações 59

Agora que conhecemos o vetor x da solução por minimos quadrados, vamos calcular
a norma do vetor residual.


9346
|| b − Ax ||= .
15
Além das aplicações de fatoração de matrizes em problemas de mínimos quadrados,
o próprio método de mínimos quadrados possui aplicações em várias áreas de pesquisa
aplicada, como estatística, processamento de sinais, problema de demarcações de fronteiras,
ajuste polinômial e regressão linear. Algumas dessas aplicações podem ser encontradas em
[11].

7.5 Compressão de imagens


O termo processamento de imagens digitais se refere ao processamento de uma
imagem bidimensional por um computador digital [12]. Num contexto mais geral, pode-se
associar este termo ao processamento de qualquer dado bidimensional. Mais ainda, o
processamento de imagens pode ser entedido como qualquer maneira de processar uma
informação, quando esta tem como entrada uma imagem, tais como uma fotografia ou
quadros de um vídeo [13]. No caso de processamento de imagens digitais, tem-se o uso de
algoritmos para realizar o processamento de imagens em imagens digitais.
Ao contrário do tratamento de imagens, que se preocupa somente com a manipulação
de figuras para sua representação final, o processamento de imagens é um estágio para
novos processamentos de dados tais como aprendizagem de máquina ou reconhecimento de
padrões. O interesse nos métodos para processamento de imagens decorre de duas principais
áreas de aplicação: melhoria da informação para interpretação humana; e processamento
de dados da imagem para armazenamento, transmissão e representação para máquinas
autônomas [14].
Historicamente, muitas das técnicas de processamento de imagem foram desenvol-
vidos com aplicação para satélite imagens, imagens médicas, reconhecimento de objetos,
e aprimoramento de fotos. [14]. Com computadores cada vez mais velozes e seus super-
processadores, o processamento digital de imagens tornou-se a forma mais comum de
processamento de imagem, e geralmente é usado porque não é apenas o método mais
versátil, mas também o mais barato [13].
Uma aplicação interessante sobre o Teorema 6.6 trata da compressão de imagens,
e vamos explorá-lo nesta seção. Para isso, precisamos entender um pouco sobre imagens
digitais. Para se aprofundar no tema, consulte [12] e [14].
Uma imagem pode ser definida como uma função bidimensional f (x, y), onde x
e y são coordenadas espaciais, e a amplitude de f em qualquer par de pontos (x, y) é
Capítulo 7. Aplicações 60

chamada de intensidade, ou nível de cinza, daquele ponto, ou seja, sua imagem (no sentido
de função). Quando x, y e os valores de amplitude f (x, y) são todos finitos (quantidades
discretas), a imagem é chamada de imagem digital [14].
Computacionalmente, uma imagem digital pode ser vista como uma matriz bidi-
mensional cujos índices de linhas e colunas (coordenadas) identificam os pixels da imagem.
Os elementos da matriz (imagem da função) representam o nível de intensidade e, para
imagens de 8-bits em tons de cinza, por exemplo, tais níveis variam entre 0 e 255 (ou 1 e
256).
A imagem apresentada na Figura 12 é um exemplo de imagem digital. Ela é uma
imagem de 8-bits, com os valores de intensidade entre 0 e 255.

Figura 12 – Exemplo de uma imagem em 8-bits.

Visto que uma imagem digital pode ser formulada como uma matriz, as técnicas
da Álgebra Matricial (em particular, a fatoração SVD) podem ser utilizadas para alguma
situação específica, como por exemplo, a compressão de imagens.
De uma forma simplificada, podemos pensar a compressão de imagens como a
redução da quantidade de dados necessários para representar uma imagem digital. Esta
compressão deve preservar as informações relevantes para análise de tal imagem digital.
Outro ganho desta aplicação se dá na velocidade de transmissão de dados via redes,
otimizando o envio de informações importantes principalmente em grandes dados e em
estruturas de transmissão defasadas [15].
Do que estudamos sobre SVD no Capítulo 6, temos alguns resultados interessantes
e úteis para o problema da compressão de imagens. O Teorema 6.2 afirma que o posto
de uma matriz A equivale ao número de valores singulares não nulos. Este resultado nos
permite reduzir o ruído ou comprimir os dados da matriz desconsiderando os menores
valores singulares.
Aplicando a fatoração SVD na matriz que representa a imagem e escrevendo A na
Capítulo 7. Aplicações 61

forma do somatório de matrizes de posto 1, temos que


r
A= σi ui viT ,
X

i=1

onde r = posto(A) e, pela Definição 6.1, os valores singulares são ordenados de forma
decrescente, ou seja, σ1 ≥ σ2 ≥ . . . ≥ σr . Perceba que até este momento, apesar da
fatoração SVD ter sido calculada, não houve compressão da imagem. Entretanto, os dados
passaram a tomar uma forma tal que os primeiros valores singulares (primeiras parcelas
do somatório) contribuem mais para a formação da matriz do que as últimas [9]. Com
isso, podemos descartar as últimas parcelas da soma, utilizando somente a matriz
k
Ak = σi ui viT ,
X

i=1

com k < r, para algum k satisfatório. A nova imagem representada por Ak fornece uma
boa representação da imagem original, mas contém menos informação do que a imagem
original A.
A escolha de distintos valores de k fornece imagens distintas, com armazenamentos
distintos [13]. Ainda segundo [13], para medir a performance do método de compressão via
SVD, podemos calcular a taxa de compressão, CR , e a qualidade da imagem comprimida.
A primeira pode ser entendida como a razão entre o tamanho final da imagem comprimida
e o tamanho da imagem sem compressão. Quanto menor for a imagem comprimida, maior
será a taxa de compressão. Para o cálculo de CR usamos a razão
n
CR = , (7.1)
k
onde n é o tamanho da largura da imagem.
Para o cálculo da qualidade da imagem comprimida Ak em relação à imagem
original A será usado o erro quadrático médio (Mean Square Error - MSE) [16] dado por

1 Xm X n
M SE = [fA (x, y) − fAk (x, y)]2 , (7.2)
mn y=1 x=1
onde fA (x, y) e fAk (x, y) representam os valores das entradas da imagem original e imagem
comprimida, respectivamente, nas posições (x, y), com 1 ≤ x ≤ m e 1 ≤ y ≤ n.
Na Figura 13 estão apresentados exemplos de imagens digitais usadas para testar a
compressão para cinco valores de k distintos. Em (f) temos a imagem original que, após o
cálculo da SVD, calculou-se um total de 1280 valores singulares.
Nas Figuras (13a a 13e) temos a reconstrução da imagem usando 20, 30, 40, 50 e 60
valores singulares, respectivamente.
Na Tabela 1 apresentamos um resumo dos resultados obtidos com o armazenamento,
a taxa de compressão e o erro para diferentes valores de k.
Capítulo 7. Aplicações 62

(a) k = 20 (b) k = 30

(c) k = 50 (d) k = 100 (e) k = 300

(f) k = 600 (g) k = 800 (h) k = 960(original)

Figura 13 – Exemplo da compressão de imagens para k = 20, 30, 50, 100, 300, 600, 800 e
960.

Podemos observar que quanto menor o valor de k, melhor a compressão (maior o


valor de CR ). Além disso, quanto mais valores singulares é usado (maior o valor de k),
Capítulo 7. Aplicações 63

k Armazenamento (bytes) CR M SE
20 44820 48 157,9569
30 67230 32 96,1821
50 112050 19,2 46,1189
100 224100 9,6 13,04
300 672300 3,2 0,4952
600 1344600 1,6 0,0084
800 1792800 1,2 0,0011
960 (original) 2151360 1 0

Tabela 1 – Resultado da compressão de imagens para diferentes valores de k.

melhor a qualidade da imagem comprimida (pois obtemos menores valores de M SE), e


mais as imagens se parecem com a original, entretando maior o espaço de armazenamento.

7.6 Reconhecimento de faces


Nosso objetivo nesta seção é apresentar uma outra aplicação que pode ser resolvida
com o uso da SVD. Vamos criar uma sequência de procedimentos computacionais utilizando
a fatoração SVD e desenvolver um algoritmo capaz de identificar, a partir de um banco de
dados, se uma determinada imagem é um rosto ou não. Esta aplicação foi tratada em [10],
e estudada também em [17].
Considere um conjunto de imagens, que será tratado aqui como nosso banco de
dados, ou imagens teste. Assim como na Seção 7.5, trabalharemos com imagens digitais em
8-bits, ou seja, imagens em tons de cinza, que são representados numericamente por algum
valor entre 0 e 255. Para esta aplicação foi considerado o conjunto de imagens propostos
em [10] e disponíveis no site do autor1 . Ao todo, foram utilizadas 20 imagens para treino
(banco de dados) e 10 imagens para teste.
As imagens possuem tamanho 166 × 189 e serão lidas e armazenadas em um
vetor mi , 0 ≤ i ≤ 20, de tamanho 31374 × 1. Na Figura 14 são apresentadas as imagens
selecionadas como banco de dados.
As imagens que foram utilizadas para teste possuem também tamanho 166 × 189 e
estão ilustradas na Figura 15. Perceba que, neste conjunto de imagens temos algumas que
são rostos e outras que não são. O algoritmo deverá classificar cada uma destas imagens
como sendo faces humanas ou não.
Para criar o algoritmo de reconhecimento de rostos, construiremos um espaço afim
de dimensão igual a 10 mais próximo das 20 imagens treino. É nesta etapa que se faz
necessária a fatoração SVD.
1
http:resources.codingthematrix.com, no arquivo faces.zip
Capítulo 7. Aplicações 64

Figura 14 – Imagens utilizadas para o banco de dados (imagens de treino).

Figura 15 – Conjunto de imagens treino.

No algoritmo, sem perda de generalidade, vamos normalizar o intervalo [0,255]


e trabalhar com valores no intervalo [0,1]. Esta etapa foi executada apenas a fim de
comparação dos resultados com a referência [17].
Capítulo 7. Aplicações 65

Vamos então encontrar uma média entre as 20 imagens através do que chamaremos
de vetor centroide c, que é obtido somando-se as entradas dos 20 vetores mi e dividindo o
total da soma 20, ou seja, as coordenadas do vetor centroide serão dadas por

1 X 20
c(j) = mij ,
20 i=1

com 1 ≤ j ≤ 31374. Em seguida, colocamos cada vetor mi como uma linha de uma matriz
M , que terá tamanho 20 × 31374. Depois, subtraimos o vetor centroide das linhas de M ,
gerando uma nova matriz A, também de tamanho A ∈ R20×31374 (esta técnica foi sugerida
em [10] para um problema de localização de lihas de ônibus).
Para encontrar o subespaço de dimensão 10 mais próximo do espaço gerado pelas
imagens de treino, calcularemos a fatoração SVD reduzida da matriz A, ou seja, A = Û Σ̂V T
e, uma vez que o espaço linha de A é igual ao espaço linha de V T , tomaremos as primeiras
10 linhas de V T como o subespaço mais próximo das imagens, que chamaremos de V10 .
Observe que as distâncias de cada imagem de treino (linhas de A) até o subespaço
V10 podem nos fornecer algum parâmetro inicial para a tomada de decisão das imagens
teste (se elas são ou não rostos). Por exemplo, considerando a norma-2, temos que a
distância das imagens (representadas por mi ) até o subespaço V10 é dada por

di =|| a[i] − projV10 a[i] ||, i = 1, . . . 20,

onde a[i] representa a i-ésima linha de A e projV10 a[i] é o vetor projeção de a[i] no subespaço
V10 . Assim, di é um vetor que contém as 20 distancias de ai até a projeção projV10 a[i].
Tomando ε1 = min{di } e ε2 = max{di }, criamos um parâmetro inicial de classificação:
i i
se a distância ε0 de uma imagem teste até o subespaço V10 (uma vez retirado o vetor
centroide) for tal que ε1 ≤ ε0 ≤ ε2 , então o programa classificará a imagem como rosto.
Caso contrário, a imagem não será classificada como rosto.
A fim de resumir o procedimento para identificação de rostos, apresentamos a
seguir um algoritmo que descreve todas as etapas mencionadas.

Passo I (Montagem da matriz A e do subespaço V10 )

1. Transforme as imagens Ii em vetores mi , 1 ≤ i ≤ 20;


1 X
2. Calcule o vetor centroide c = (m1 + · · · + m20 );
20
3. Construa a matriz A, de modo que cada linha de A seja o resultado da diferença
entre os vetor mi e centroide;
4. Calcule a fatoração SVD reduzida de A;
5. Obtenha os 10 primeiros vetores singulares a direita de A (ou seja, o subespaço
V10 ).
Capítulo 7. Aplicações 66

Passo II (Determinação do parâmetro de classificação)

1. Calcule as distâncias entre os vetores linhas de A e o subespaço V10 ;


2. Tome o menor e o maior valor das distâncias obtidas no item (1) e os defina como
os extremos do seu intervalo J. O intervalo J será o parâmetro de classificação
(definirá se uma imagem dada é ou não um rosto);

Passo III (Testagem)

1. Para cada imagem fora do banco de dados n, encontre n − c;


2. Calcule a distância de n − c até o subespaço V10 ;
3. Faça a classificação: Se a distância calculada em (2) for um valor em J, classifique
a imagem como um rosto. Caso contrário, a imagem não é rosto.

Para a implementação computacional desta aplicação foi feito um programa em


Python com o uso do site Google colab. O programa completo pode ser encontrado no
Apêndice B deste trabalho. Para um melhor entendimento da implementação, faremos a
seguir um detalhamento dos códigos utilizados:

• A função imprime imagem() utiliza o pacote matplotlib para imprimir as imagens


em tons de cinza;

• A função ler matriz() busca as imagens do banco de dados, as transforma em matrizes


e forma a matriz M como já especificamos;

• A função cria vetor centroide() calcula o vetor centroide baseado nos vetores linha
de M ;

• A função subespaço retorna os primeiros 10 vetores singulares a direita de A (para


formar o subespaço V10 , que no programa é chamado apenas de V );

• Na função lista distancia() calculamos a distância das linhas de A do subespaço V10


utilizando projeções ortogonais;

• A função testa imagem() diz se a imagem fora do banco de dados é uma imagem ou
não, baseada nos parâmetros encontrados na função lista distância.

7.6.1 Resultados e discussões


Após compilar o programa, é possível encontrar resultados interessantes. Qual
imagem o vetor centroide gera? De fato, isso não foi discutido quando introduzimos tal
vetor. Como ele é um produto de imagens de rosto, uma possível hipótese é que ele também
Capítulo 7. Aplicações 67

Figura 16 – Imagem gerada pelo vetor centroide.

seja um rosto. Na Figura 16 está a imagem gerada pelo vetor centroide. Perceba que, de
fato, se parece com um rosto humano.
Como já foi dito, a maior e menor distâncias das imagens treino, sendo representadas
pelos vetores linhas de A, até o subespaço V10 construiu o intervalo a ser usado como
parâmetro para definirmos se a imagem é um rosto ou não. Obtivemos os seguintes
resultados quanto a distância das respectivas imagens, exibidos na Tabela 2.

Imagem treino Distância Imagem treino Distância


1 11,01 11 9,46
2 15,67 12 6,69
3 7,05 13 14,20
4 8,97 14 9,62
5 5,33 15 10,36
6 5,27 16 12,49
7 5,20 17 11,86
8 7,69 18 9,97
9 11,95 19 13,52
10 12,52 20 10,72

Tabela 2 – Distância das imagens treino ao subespaço V10 .

Nas Figuras 17 a 19 são apresentadas algumas imagens treino gerada pelo vetor
projetado no subespaço V10 para compararmos o que os números da Tabela 2 expressam.
Capítulo 7. Aplicações 68

Figura 17 – Imagem 3 e sua projeção.

Figura 18 – Imagem 11 e sua projeção.

Figura 19 – Imagem 14 e sua projeção.

Perceba que a imagem 3, na Figura 17, está bem semelhante, com o rosto bem
definido, enquanto que a imagem 11, na Figura 18, já aparece mais desfocda, com alguns
detalhes nos ombros não bem representados e o rosto um pouco diferente do original. Este
comportamento se repete na imagem 14, como vemos na Figura 19. Associando essas
observação com o resultado apresentado na Tabela 2, vemos que a imagem 3 etá mais
próxima do subespaço V10 do que as imagens 11 e 14, por isso, sua nitidez se difere.
Observando os dados da Tabela 2 novamente, iremos construir um intervalo de
classificação de imagens baseado nas distancias encontradas. Inicialmente, escolheremos o
[5, 20; 15, 67], cujos extremos são a menor e maior distâncias. Vamos testar sua eficiencia
Capítulo 7. Aplicações 69

com as primeiras 5 imagens teste. A Tabela 3 nos mostra os valores das distâncias para
cada imagem.

Imagem teste Distância


1 29,75
2 24,38
3 19,55
4 22,23
5 19,08

Tabela 3 – Distancia das primeiras 5 imagens que não estão no banco de dados.

Usando o intervalo [5, 20; 15, 67] como parâmetro de classificação percebemos que
ele classifica as imagens 2, 3, 4 e 5 (equivocadamete) como não sendo um rosto. O intervalo
obteve sucesso, somente, com a imagem 1, que de fato não é um rosto e assim foi classificada.
Uma forma de melhorar nosso parâmetro de classificação e, então, levar em conta as novas
distâncias calculadas. Assim, nos baseando nas Tabelas 2 e 3, novamente, considerando
o menor e o maior valor encontrado, definiremos um novo intervalo, que é [5, 20; 24, 38].
Observe que este intervalo já classificaria as imagens 2, 3, 4 e 5 como rostos, melhorando,
portanto, o programa.
Testamos sua eficiência com as outras 5 imagens teste ainda não utilizadas. A
Tabela 4 nos traz as distâncias dessas imagens ao subespaço V1 0.

Imagem Distância
6 24,21
7 41,18
8 24,71
9 40,04
10 36,73

Tabela 4 – Distancia das últimas 5 imagens que não estão no banco de dados.

Adotando o novo intervalo de [5, 20; 24, 38] como parâmetro, vemos que este foi
mais eficiente na classificação. Não só porque conseguiu classificar a imagem 6, que é um
rosto, como também excluiu a imagem 8 que, embora não seja um rosto, sua distância
ficou muito próxima do que seria um rosto. As outras imagens 7, 9 e 10 ele classificou
corretamente que não são rostos. Portanto, baseado em nossa análise, em nosso algoritmo
e no nosso banco de dados, o intervalo [5, 20, 24, 38] parece ser um bom parâmetro para
classificar se a imagem é um rosto ou não.
70

8 Considerações finais

O objetivo da teoria de Sistemas Lineares é encontrar a solução do sistema Ax = b


e, para isso, existem diversos métodos que podem ser divididos em dois grandes grupos:
métodos diretos e métodos iterativos. Os métodos diretos são caracterizados por realizar
uma sequência finita de operações, depois da qual se obtém a solução do sistema. Os
métodos iterativos são caracterizados pela busa da solução através de etapas sendo que,
para cada etapa, o método fornece uma aproximação para a solução do sistema. Quando o
número de etapas tende ao infinito a sequência de aproximações tende para a solução exata.
Neste trabalho, estudamos os métodos diretos, particularmente aqueles que envolvem a
fatoração da matriz A, seja ela quadrada ou retangular. Para matrizes quadradas, vimos a
utilização da fatoração LU e da Cholesky que transformam a matriz em duas matrizes
triangulares, que são bem mais simples de se resolver computacionalmente, principalmentes
em matrizes de tamanhos maiores.
Em matrizes retangulares, vimos que o método dos mínimos quadrados é um bom
caminho para encontrar uma solução aproximada para um sistema que não possui solução.
Aplicando a fatoração QR e a de Cholesky transformamos o problema de resolver um
sistema complicado em um problema em que precisamos apenas multiplicar matriz por
vetor e resolver sistemas triangulares e, no caso da SVD, resolver até um sistema diagonal.
Todos eles muito mais simples, de custo computacional mais baixo.
Vimos que, além de serem aplicadas na resolução de sistemas lineares, as fatorações
de matrizes possuem outras aplicações. Neste trabalho realizamos aplicações com o uso
da SVD. Tal fatoração foi aplicada em problemas de compressão de imagens para reduzir
a quantidade de informação da imagem, mantendo ainda sua informação principal. Foi
proposto também a aplicação que teve como objetivo a construção de um identificador de
rostos que, com um pouco de aprendizado de máquina e um maior banco de dados, pode
estabelecer um bom intervalo de confiança para determinar se uma imagem é um rosto ou
não.
Adicionalmente, acrescentamos os seguintes tópicos que podem ser abordados como
continuação para este trabalho:

• Estudar o custo computacional de cada fatoração, para argumentar sobre vantagens


e desvantagens de cada fatoração. Aliado a isso, estudar o custo computacional para
se resolver um sistema linear com cada uma fatoração, bem como fazer uma análise
de estabilidade dos métodos;

• Estudar as triangularizações de Householder na fatoração QR e mostrar os benefícios


Capítulo 8. Considerações finais 71

sobre a ortogonalização de Gram-Schmidt;

• Implementar outras aplicações para as outras fatorações.


72

Referências

1 TREFETHEN, L. N.; BAU, I. D. Numerical Linear Algebra. Philadelphia: Society for


Industrial and Applied Mathematics, 1997. Citado 8 vezes nas páginas 3, 4, 5, 6, 42, 43,
44 e 48.

2 ANTON, H.; RORRES, C. Álgebra Linear com aplicações. Porto Alegre: Bookman,
2012. Citado 2 vezes nas páginas 3 e 10.

3 COELHO, F. U.; LOURENÇO, M. L. Um curso de álgebra linear. São Paulo, SP,


Brasil: edusp, 2001. Citado 3 vezes nas páginas 3, 20 e 36.

4 CHERNEY TOM DENTON, R. T. D.; WALDRON, A. Linear Algebra. Carolina do


Sul: CreateSpace Independent Publishing Platform, 2016. Citado na página 3.

5 GONÇALVES, A. Introdução à álgebra. Rio de Janeiro: IMPA, 1979. Citado na


página 4.

6 CAMPOS, L. E. da S. Um estudo sobre fatorações de matrizes e a resolução de


sistemas lineares. Tese (Tese de Mestrado) — IMECC/UNICAMP, Campinas, SP, Brasil,
2008. Citado 3 vezes nas páginas 8, 13 e 16.

7 AXLER, S. Linear algebra done right. San Francisco: Springer, 2015. Citado 3 vezes
nas páginas 20, 36 e 41.

8 BUSBY, H. A. R. C. Álgebra Linear Contemporânea. São Paulo: Bookman, 2006.


Citado na página 21.

9 HOLT, J. Linear Algebra with applications. New York: W. H. Freedman and company,
2013. Citado 2 vezes nas páginas 44 e 61.

10 KLEIN, P. N. Coding the matrix. Massachusetts: Newtonian Press, 2013. Citado 3


vezes nas páginas 44, 63 e 65.

11 GRAÇA, A. B. R. de A. Problemas de Minimos Quadrados: Resolução e Aplicações.


Dissertação (Trabalho de conclusão de Curso) — Universidade Federal Fluminense, Volta
Redonda - RJ, 2016. Citado 2 vezes nas páginas 51 e 59.

12 JAIN, A. K. Fundamentals of digital image processing. [S.l.]: Prentice Hall, 1989.


565 p. Citado na página 59.

13 CAO, L. Singular value decomposition applied to digital image processing. Division


ofComputing Studies, Arizona State University Polytechnic Campus, 2006. Citado 2
vezes nas páginas 59 e 61.

14 GONZALES, R. C.; WOODS, R. E. Digital Image Processing. third. [S.l.]: Prentice


Hall, 2008. Citado 2 vezes nas páginas 59 e 60.

15 OLIVEIRA, J. V. de. Estudo da Decomposição em Valores Singulares e Análise Dos


Componentes Principais. Dissertação (Trabalho de Conclusão de Curso) — Universidade
Federal Fluminense, Volta Redonda - RJ, 2016. Citado na página 60.
Referências 73

16 WANG, Z.; BOVIK, A. C. Mean squared error: Love it or leave it? a new look at
signal fidelity measures. IEEE Signal Processing Magazine, v. 26, n. 1, p. 98–117, 2009.
Citado na página 61.

17 OLIVEIRA, J. dos S. A Decomposição em Valores Singulares: teoria e aplicações.


Dissertação (Trabalho de conclusão de Curso) — Universidade Federal de Minas Gerais,
Belo Horizonte - MG, 2016. Citado 2 vezes nas páginas 63 e 64.
Apêndices
75

APÊNDICE A – Algoritmo de compressão


de imagens

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from PIL import Image
from scipy.linalg import svd

def cria_vetor_nulo(n):
a = [0]*n
return a

def cria_matriz_nula(m, n):


a = [0]*m*n
a = np.reshape(a, (m, n))
return a

def imprime_imagem(M):
plt.figure(figsize=(3,4))

im = plt.imshow(M, interpolation=’bilinear’, cmap=cm.gray,


origin=’upper’, extent=[0, 960, 0, 1280])

plt.axis("off")
plt.show()

def ler_matriz():
’’’A função lerá a imagem jpeg e ira arquiva-las em uma matriz.’’’

a = Image.open(’/home/joao/Downloads/EuAgain.jpeg’)

a = np.asarray(a)
a = np.reshape(a, (1280, 2880))

return(a)
APÊNDICE A. Algoritmo de compressão de imagens 76

def soma_matriz(a, u, v):

M = cria_matriz_nula(1280, 2880)

for i in range(0, 1280):


for j in range(0, 2880):
M[i][j] = a*u[i]*v[j]

return(M)

def main():

A = ler_matriz()

#imprime_imagem(A)

u, s, vh = svd(A,full_matrices=False)

x = cria_vetor_nulo(1280)
y = cria_vetor_nulo(2880)
Im = cria_matriz_nula(1280,2880)
for i in range(0,100):
for j in range(0,1280):
x[j] = u[j][i]
for j in range(0,2880):
y[j] = vh[i][j]
Im += soma_matriz(s[i],x,y)
imprime_imagem(Im)

if __name__ == ’__main__’:
main()
77

APÊNDICE B – Algoritmo para


reconhecimento de rostos

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from PIL import Image
from scipy.linalg import svd
from math import sqrt

#As imagens possuem dimensões matriciais 189x166

def dimensoes(matriz):
tam_matriz = (len(matriz), len(matriz[0]))
print(’{}X{}’.format(tam_matriz[0], tam_matriz[1]))

def cria_vetor_nulo(n):
a = [0.]*n
return a

def cria_matriz_nula(m, n):


a = [0.]*m*n

a = np.reshape(a, (m, n))


return a

def transposta(A, m, n):


a = cria_matriz_nula(n, m)

for i in range(0, m):


for j in range(0, n):
a[j][i] = A[i][j]

return (a)

def imprime_imagem(M):
APÊNDICE B. Algoritmo para reconhecimento de rostos 78

plt.figure(figsize=(3,4))

im = plt.imshow(M, interpolation=’bilinear’, cmap=cm.gray,


origin=’upper’, extent=[0, 166, 0, 189])

plt.axis("off")
plt.show()

def produto_interno(x, y, n):

soma = 0
for i in range(0, n):
soma += x[i]*y[i]
return (soma)

def norma(x, n):


aux = sqrt(produto_interno(x, x, n));
return(aux)

def ler_matriz():
’’’A função lerá as imagens png e ira arquiva-las em uma matriz.
Função do passo 1.1’’’

#Lendo as 20 imagens estabelecidas como padrão


M0 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img0.png’)
M1 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img1.png’)
M2 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img2.png’)
M3 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img3.png’)
M4 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img4.png’)
M5 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img5.png’)
M6 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img6.png’)
M7 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img7.png’)
M8 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img8.png’)
M9 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img9.png’)
M10 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img10.png’)
M11 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img11.png’)
M12 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img12.png’)
M13 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img13.png’)
M14 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img14.png’)
APÊNDICE B. Algoritmo para reconhecimento de rostos 79

M15 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img15.png’)
M16 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img16.png’)
M17 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img17.png’)
M18 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img18.png’)
M19 = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/img19.png’)

#Transformando as imagems em matrizes


A0 = np.asarray(M0)
A1 = np.asarray(M1)
A2 = np.asarray(M2)
A3 = np.asarray(M3)
A4 = np.asarray(M4)
A5 = np.asarray(M5)
A6 = np.asarray(M6)
A7 = np.asarray(M7)
A8 = np.asarray(M8)
A9 = np.asarray(M9)
A10 = np.asarray(M10)
A11 = np.asarray(M11)
A12 = np.asarray(M12)
A13 = np.asarray(M13)
A14 = np.asarray(M14)
A15 = np.asarray(M15)
A16 = np.asarray(M16)
A17 = np.asarray(M17)
A18 = np.asarray(M18)
A19 = np.asarray(M19)

#Transformando as matrizes em vetores colunas


A0 = np.reshape(A0, (1, 31374))
A1 = np.reshape(A1, (1, 31374))
A2 = np.reshape(A2, (1, 31374))
A3 = np.reshape(A3, (1, 31374))
A4 = np.reshape(A4, (1, 31374))
A5 = np.reshape(A5, (1, 31374))
A6 = np.reshape(A6, (1, 31374))
A7 = np.reshape(A7, (1, 31374))
A8 = np.reshape(A8, (1, 31374))
A9 = np.reshape(A9, (1, 31374))
APÊNDICE B. Algoritmo para reconhecimento de rostos 80

A10 = np.reshape(A10, (1, 31374))


A11 = np.reshape(A11, (1, 31374))
A12 = np.reshape(A12, (1, 31374))
A13 = np.reshape(A13, (1, 31374))
A14 = np.reshape(A14, (1, 31374))
A15 = np.reshape(A15, (1, 31374))
A16 = np.reshape(A16, (1, 31374))
A17 = np.reshape(A17, (1, 31374))
A18 = np.reshape(A18, (1, 31374))
A19 = np.reshape(A19, (1, 31374))

#Alocando os vetores coluna em uma matriz 20x31374


M = cria_matriz_nula(20, 31374)

for i in range(0, 31374):


M[0][i] = A0[0][i]/255

for i in range(0, 31374):


M[1][i] = A1[0][i]/255

for i in range(0, 31374):


M[2][i] = A2[0][i]/255

for i in range(0, 31374):


M[3][i] = A3[0][i]/255

for i in range(0, 31374):


M[4][i] = A4[0][i]/255

for i in range(0, 31374):


M[5][i] = A5[0][i]/255

for i in range(0, 31374):


M[6][i] = A6[0][i]/255

for i in range(0, 31374):


M[7][i] = A7[0][i]/255

for i in range(0, 31374):


APÊNDICE B. Algoritmo para reconhecimento de rostos 81

M[8][i] = A8[0][i]/255

for i in range(0, 31374):


M[9][i] = A9[0][i]/255

for i in range(0, 31374):


M[10][i] = A10[0][i]/255

for i in range(0, 31374):


M[11][i] = A11[0][i]/255

for i in range(0, 31374):


M[12][i] = A12[0][i]/255

for i in range(0, 31374):


M[13][i] = A13[0][i]/255

for i in range(0, 31374):


M[14][i] = A14[0][i]/255

for i in range(0, 31374):


M[15][i] = A15[0][i]/255

for i in range(0, 31374):


M[16][i] = A16[0][i]/255

for i in range(0, 31374):


M[17][i] = A17[0][i]/255

for i in range(0, 31374):


M[18][i] = A18[0][i]/255

for i in range(0, 31374):


M[19][i] = A19[0][i]/255

return M

def cria_vetor_centroide(M):
’’’A função receberá a matriz com rostos e criará o vetor centroide.
APÊNDICE B. Algoritmo para reconhecimento de rostos 82

Função do passo 1.2’’’


vetor_centroide = cria_vetor_nulo(31374)
vetor = cria_vetor_nulo(31374)

for j in range(0, 31374): # alterei aqui 17/04


for i in range(0, 20):
vetor_centroide[j] = vetor_centroide[j] + M[i][j]
for i in range(0, 31374):
vetor_centroide[i] = vetor_centroide[i]/20

vetor_centroide = np.reshape(vetor_centroide, (189, 166))


imprime_imagem(vetor_centroide)
vetor_centroide = np.reshape(vetor_centroide, (1, 31374))

for i in range(0,31374):
vetor[i] = vetor_centroide[0][i]

return vetor

def cria_matriz_A(M, vetor_centroide):


’’’A função cria a matriz que será fatorada via SVD. Função do passo 1.3’’’
A = cria_matriz_nula(20, 31374)

for i in range(0, 20):


for j in range(0, 31374):
A[i][j] = M[i][j] - vetor_centroide[j]

return A

def subespaco(vh): # alterei aqui também


’’’A função pega os primeiros 10 vetores da matriz vh. Função do passo 1.5’’’

VT=vh[0:10,]

return (VT)

def lista_distancia(A, V, vetor_centroide):


’’’ A função retornará uma lista de distância entre vetores originais que estão e
#o vetor b será o vetor projeção de aux em V
APÊNDICE B. Algoritmo para reconhecimento de rostos 83

b = cria_vetor_nulo(31374)

#o vetor distancia será o vetor que terá as distancias de cada entrada


distancia = cria_vetor_nulo(20)
diferenca = cria_vetor_nulo(31374)

for i in range(0, 20):


b = cria_vetor_nulo(31374)
for j in range(0, 10):
aux = produto_interno(A[i], V[j], 31374)
for k in range(0, 31374):
b[k] = b[k] + aux*V[j][k]
for l in range(0, 31374):
diferenca[l] = A[i][l] - b[l]

for l in range(0, 31374):


b[l] = b[l] + vetor_centroide[l]
b = np.reshape(b, (189, 166))
imprime_imagem(b)
distancia[i] = norma(diferenca, 31374)

return distancia

def testa_imagem(V, vetor_centroide):

c = cria_vetor_nulo(31374)
diferenca = cria_vetor_nulo(31374)

m = Image.open(’/content/drive/MyDrive/Aplicacao_SVD/nimg01.png’)
a = np.asarray(m)
a = np.reshape(a, (1, 31374))
for i in range(0, 31374):
c[i] = a[0][i]/255

for i in range(0, 31374):


c[i] = c[i] - vetor_centroide[i]
b = cria_vetor_nulo(31374)
for j in range(0, 10):
APÊNDICE B. Algoritmo para reconhecimento de rostos 84

aux = produto_interno(c, V[j], 31374)


for k in range(0, 31374):
b[k] = b[k] + aux*V[j][k]
for l in range(0, 31374):
diferenca[l] = c[l] - b[l]
distancia = norma(diferenca, 31374)
return(distancia)

def main():

teste = cria_vetor_nulo(31374)

#M é a matriz das imagens


M = ler_matriz()

vetor_centroide = cria_vetor_centroide(M)

#A matriz A contém as imagens centradas já

A = cria_matriz_A(M, vetor_centroide)

u, s, vh = svd(A,full_matrices=False)

print(u.shape, s.shape, vh.shape)

#u, s, vh = svd(A)

V = subespaco(vh)

d=lista_distancia(A, V, vetor_centroide)

print(d)
a = 5.202570
b = 15.674521

dist = testa_imagem(V, vetor_centroide)


print(dist)

if (dist > a and dist < b):


APÊNDICE B. Algoritmo para reconhecimento de rostos 85

print("A imagem é um rosto.")


else:
print("A imagem não é um rosto.")

if __name__ == ’__main__’:
main()

Você também pode gostar