UFRJ
Matrizes, transformações
lineares e a SVD
Prof. Paulo R. G. Bordoni
Slide 2
Slide 2 text
Agora, Loirinhas, Surfistas e Cabelos
de Fogo, vamos examinar as
transformações lineares definidas por
matrizes.
Slide 3
Slide 3 text
Nesta aula associamos
matrizes e sistemas de
equações lineares.
Slide 4
Slide 4 text
Lembrem-se, o problema:
“Resolver um sistema linear de equações a
incógnitas”
é o problema inverso descrito matricialmente por:
“Obter um vetor ∈ ℝ tal que = , sendo
dado ∈ ℝ.”
Já o problema direto associado a uma
matriz de tamanho × é:
“Dado ∈ ℝ, obter o vetor ∈ ℝ
para o qual = .”
Slide 5
Slide 5 text
Conforme já vimos, problemas diretos
estão associados a funções.
Nesse caso (usando a mesma letra, num
abuso usual de notação), à função
: ℝ ⟶ ℝ
⟼ = .
Sim, e na NumPy, o valor é
calculado através produto interno
= np. dot (, )
de com o vetor .
Slide 6
Slide 6 text
A multiplicação matriz × vetor satisfaz várias
propriedades, entre elas duas triviais:
• + = + , para , ∈ ℝ
• = , para ∈ ℝ, ∈ ℝ
Claro Mestra, nem
precisa perder tempo
com exemplos !
Slide 7
Slide 7 text
Essas duas propriedades mostram que a
função : ℝ → ℝ associada à matriz
através da multiplicação define uma
transformação linear de ℝ em ℝ.
Transformações lineares
constituem uma classe muito
ampla de funções definidas
entre espaços vetoriais.
Slide 8
Slide 8 text
Uma transformação linear de um espaço
vetorial num espaço vetorial é uma função
∶ → satisfazendo as duas propriedades:
• + = + , ∀, ∈ ,
• = , ∀ ∈ ℝ , ∀ ∈ .
A definição abaixo é tão
importante que merece ser
colocada numa moldura de ouro !
Slide 9
Slide 9 text
Transformações lineares : →
empurram as operações naturais do
espaço de saída para as operações
naturais do espaço de chegada .
Sim, adição em adição,
+
T
+ ,
e escalamento em escalamento,
T
,
para quaisquer ∈ ℝ e , ∈
Slide 10
Slide 10 text
Por que escreve-se e não
() para uma
transformação linear ?
Porque para calcular o valor =
temos que efetuar o produto da
matriz pelo vetor .
Slide 11
Slide 11 text
Surfistas, Loirinhas e Cabelos
de Fogo, os Mestres estão
conduzindo vocês a um passo
gigantesco em abstração.
Adiantando as coisas:
Outros dois exemplos de transfor-
mações lineares são a integral e a
derivada, que operam entre espaços de
funções (aula futura).
Slide 12
Slide 12 text
Como assim ?
Ora colega, já vimos em Cálculo I que se ∈ ℝ e
, são funções,
( + ) = + e = .
Vimos também que
+ =
+
e
=
.
Slide 13
Slide 13 text
A B
ℝ ℝ
ℝ
= ∘
O produto B A de uma matriz B por
uma matriz A corresponde à
aplicação linear composta ∘ de A
seguida por B.
Sim, para todo ∈ ℝ temos
∘ = = e portanto
∘ = .
Mais um bom motivo para dispensar os
parênteses em ().
Slide 14
Slide 14 text
Por exemplo, para
=
1 2
1 2
e =
−1 1
1 −1
temos =
1 −1
1 −1
e =
0 0
0 0
.
Lembrem-se que a
multiplicação de matrizes não
é comutativa.
A
B
ℝ
ℝ
ℝ
B
A
Slide 15
Slide 15 text
E quando uma matriz de ordem
possui inversa −1, temos
= −1 = −1, correspondendo a
aplicação identidade : ℝ → ℝ,
= .
A
ℝ ℝ
ℝ
−1
= −1
A
ℝ ℝ
ℝ
−1
= −1
Slide 16
Slide 16 text
Indo à Referência e clicando
em inv( ) obtive:
Slide 17
Slide 17 text
Este programa recebe uma
matriz A, calcula sua
inversa e testa.
Slide 18
Slide 18 text
Duas execuções
do programa:
Slide 19
Slide 19 text
U L
ℝ ℝ
ℝ
A
z
A fatoração = revela que
pode ser decomposta em duas
outras aplicações lineares:
A decomposição permite resolver o
problema inverso = para qualquer
termo independente escolhido, sem
calcular a matriz inversa −1 de .
Slide 20
Slide 20 text
U
ℝ ℝ
ℝ
Sim, obtida a fatoração, de = tudo que
temos a fazer é calcular em = , ou seja
obter = −1, algo imediato pois é
triangular inferior.
−1
ℝ ℝ
ℝ
−1
−1
Em seguida, calculamos em = ,
i.é, resolvemos = −1, que também
é imediato já que é triangular
superior.
Slide 21
Slide 21 text
A fatoração (ou método de
eliminação de Gauss) não acrescenta
conceitos novos à Álgebra Linear
Computacional.
Sua importância reside
na rapidez. É um
algoritmo (23/3).
Slide 22
Slide 22 text
Pensar em transformações lineares
conduz a um enfoque
geométrico/teórico da Álgebra
Linear Computacional.
Slide 23
Slide 23 text
O próximo programa mostra a
ação de uma matriz A, como
uma transformação linear,
sobre um vetor .
O programa permite
escolher tanto a matriz A
como o vetor .
Slide 24
Slide 24 text
Este é o programa.
Slide 25
Slide 25 text
Uma execução do programa.
Em azul temos o vetor e em
vermelho o vetor
Vemos claramente que A realiza uma
reflexão no eixo-x.
Slide 26
Slide 26 text
Um 2º exemplo:
Slide 27
Slide 27 text
O programa a seguir mostra
a ação de uma matriz de
ordem 2 sobre um triângulo
abc.
Slide 28
Slide 28 text
Comecemos examinando o
efeito de matrizes
diagonais em triângulos.
Esta matriz faz
uma reflexão no
eixo-x.
Slide 29
Slide 29 text
Esta outra contrai de 0.5 na
direção x e dilata de 1.5 na
direção y.
Mas isto já não é
tão evidente,
Mestra.
Slide 30
Slide 30 text
Já usando um triângulo com um lado
paralelo ao eixo-x e outro paralelo ao eixo-
y percebemos que efetua uma contração
no eixo-x e uma dilatação no eixo-y.
Slide 31
Slide 31 text
Observem que a matriz
A é “quase” a mesma.
E o efeito é
“quase” o mesmo.
Slide 32
Slide 32 text
Mudamos o termo
0.1 para 1:
Agora o efeito
mudou bastante.
Slide 33
Slide 33 text
Agora trocamos o
termo nulo por 1.2.
O efeito mudou
radicalmente!
Slide 34
Slide 34 text
Vejam a ação de uma
matriz não-inversível
sobre um triângulo:
Não há como desfazer
a ação da M sobre o
trtiângulo!
Slide 35
Slide 35 text
Essa matriz é “quase”
não-inversível.
Vejam como ela achata um
triângulo:
Slide 36
Slide 36 text
A matriz definida por
=
cos() −()
() cos()
,
quando aplicada num vetor efetua uma
rotação de ângulo no sentido horário em .
Isto é, se = então o ângulo
entre e , medido de para , é
de radianos.
Slide 37
Slide 37 text
Fiz um programa que recebe um quadrado
arbitrariamente escolhido e gira-o no
sentido anti-horário de uma quantidade
escolhida de graus.
Slide 38
Slide 38 text
Uma rotação de 45º.
Notem que na rotação a norma dos
vetores (e portanto dos objetos
construídos com eles) permanece
inalterada.
Slide 39
Slide 39 text
Rotações de 90º e 270º podem
representar reflexões
relativamente aos eixos
coordenados, mas nem sempre:
Slide 40
Slide 40 text
O código do programa.
Ficou longo porque
optei pela didática.
Slide 41
Slide 41 text
O final do código do
programa..
Slide 42
Slide 42 text
Mestres, exceto para matrizes
diagonais e de rotação, não consigo
entender o efeito delas nos vetores
e nas figuras!
Realmente, não é um
problema tão simples!
Slide 43
Slide 43 text
Vamos entender, definitivamente, a
atuação de matrizes como
transformações lineares analisando a
ação delas sobre feixes de vetores!
Slide 44
Slide 44 text
Este livro é o clássico dos clássicos
sobre álgebra linear computacional.
Vamos até reproduzir seu Sumário.
Slide 45
Slide 45 text
No content
Slide 46
Slide 46 text
Este é outro clássico peso-pesado
em álgebra linear computacional.
Vejam seu Sumário.
Slide 47
Slide 47 text
São livros de cabeceira
para quem for fazer
pós-graduação.
Slide 48
Slide 48 text
O conteúdo desses dois livros é a
definição mais apropriada de Álgebra
linear computacional.
Invista em você.
Adquira os dois livros!
Slide 49
Slide 49 text
Observem que os dois livros iniciam
com a decomposição SVD e só depois
vão tratar do método de eliminação de
Gauss:
Gauss só no
capítulo 3.
Gauss só no
capítulo 4.
Slide 50
Slide 50 text
Veremos que entender ação da
transformação linear associada
a uma matriz nas bolas é
fundamental.
Pela linearidade, basta
entendermos a atuação nas
bolas unitárias.
Slide 51
Slide 51 text
Isso é fácil de fazer nas
bolas das normas ∙ 1
e
∙ ∞
.
Claro Mestra, como vocês já
mostraram para triângulos e
quadrados.
Slide 52
Slide 52 text
Este programa mostra a
ação de uma matriz M num
feixe de vetores.
Slide 53
Slide 53 text
A ação da matriz sobre um feixe de vetores
de tamanho unitário é clarificada pela imagem
abaixo:
A ação é dilatar a componente vertical dos
vetores do feixe por um fator de escala = 2 e
manter a componente horizontal inalterada.
Slide 54
Slide 54 text
A ação desta outra matriz é
dilatar de = 2.5 a componente
dos vetores do feixe mas manter a
componente inalterada.
A dilatação dos vetores do
feixe, que varia com a
inclinação do vetor na bola.
Slide 55
Slide 55 text
Já a ação desta outra matriz sobre os
vetores unitários do feixe é mais
complexa:
Uma rotação e uma dilatação.
Slide 56
Slide 56 text
Esta 4ª matriz , além da rotação e
dilatação também realiza uma inversão do
sentido dos vetores.
Notem, pelas cores, que o sentido dos
vetores na imagem foi invertido.
Slide 57
Slide 57 text
Agora uma matriz com
todos os elementos não-
nulos.
Slide 58
Slide 58 text
Dilatar, contrair, girar.
Como descrever matematicamente o
efeito de uma matriz sobre
vetores?
Slide 59
Slide 59 text
Sim Mestra, é só olhar
para as pontas dos
vetores.
Percebemos claramente que a
matriz A leva a circunferência
unitária numa elípse.
Slide 60
Slide 60 text
Então se eu usar apenas a bola
unitária obterei o mesmo
resultado - uma elipse.
Exatamente Surfista,
compare com o exemplo
anterior.
Slide 61
Slide 61 text
Confirmadíssimo,
Mestra!
Slide 62
Slide 62 text
Resumindo:
A transformação linear : ℝ2 → ℝ2
leva a circunferência unitária numa
elipse.
Slide 63
Slide 63 text
Sim Surfista.
E as medidas 1
, 2
dos semi-
eixos da elipse são chamados de
valores singulares da matriz .
2 1
Slide 64
Slide 64 text
Ok Mestres.
Mas como eu calculo os
esses valores singulares
1
, 2
da matriz ?
Slide 65
Slide 65 text
Loirinha, esta é uma das questões mais
importantes da Álgebra linear computacional.
A resposta é a decomposição em valores
singulares da matriz .
Slide 66
Slide 66 text
Voltando ao livro do Trefethen,
logo no início está a
decomposição em valores
singulares
Slide 67
Slide 67 text
Lá vocês encontram teorema
da Decomposição em Valores
Singulares (SVD):
Seja ∈ ℳ×
uma matriz com elementos
∈ ℂ.
Então existem matrizes unitárias ∈ ℳ×
e ∈ ℳ×
tais que
= = (1
, 2
, ⋯ ,
),
com = { , } e 1
≥ 2
≥ ⋯ ≥
≥ 0.
Os ′ são chamados de valores
singulares.
As colunas de U e V são os vetores
singulares da esquerda e direita,
respectivamente.
Slide 68
Slide 68 text
Para = 3 e = 2:
11
12
21
22
31
32
=
11
12
13
21
22
23
31
32
33
1
0
0 2
0 0
11
12
21
22
Para = 2 e = 3:
11
12
13
21
22
23
=
11
12
21
22
1
0 0
0 2
0
11
12
13
21
22
23
31
32
33
Quando = , todas as
matrizes serão quadradas.
Abaixo mostrei dois exemplos
em que ≠ .
Slide 69
Slide 69 text
Seja ∈ ℳ×
uma matriz com elementos reais.
Então existem matrizes ortogonais ∈ ℳ×
e
∈ ℳ×
tais que
= = (1
, 2
, ⋯ ,
),
com = { , } e 1
≥ 2
≥ ⋯ ≥
≥ 0.
Vamos nos restringir à
matrizes reais
∈ ℝ.
Nesse caso o teorema fica:
Slide 70
Slide 70 text
Vejam, lá na
scipy.linalg.
Slide 71
Slide 71 text
A continuação
A transposta
de V.
Slide 72
Slide 72 text
Um programinha simples
que recebe uma matriz e
devolve sua decomposição
SVD:
Slide 73
Slide 73 text
Uma execução do
programa:
Slide 74
Slide 74 text
Nesse caso a hiper-esfera unitária
foi deformada num hiper-elipsoide
com semi-eixos
1
= 6.678 … , 2
= 4.049 … ,
3
= 2.288 … , 4
= 1.322 … .
Perfeitamente,
Loirinha!
Slide 75
Slide 75 text
Notem que os vetores 1
, 2
, 3
, 4
,
que constituem as colunas da matriz
e os vetores 1
, 2
, 3
, 4
que
constituem as linhas da matriz são
ortonormais.
Sim Galileu, uma vez que:
• ∙ = ,
• ∙ = .
Slide 76
Slide 76 text
Lembrem-se, matrizes ortogonais
representam transformações rígidas,
que não alteram o tamanho (norma) dos
vetores.
São rotações, reflexões ou inversões.
Slide 77
Slide 77 text
Exatamente
Surfista!
E, se eu entendi, as direções desses semi-
eixos são dadas pelos vetores ortonormais
1
, 2
, 3
, 4
, que constituem as colunas da
matriz :
= 1
2
3
4
Slide 78
Slide 78 text
Só não consegui entender o papel dos
vetores ortonormais 1
, 2
, 3
, 4
, que
constituem as linhas da matriz :
=
1
2
3
4
.
É aí que entra a
interpretação geométrica
da fatoração SVD.
Slide 79
Slide 79 text
O teorema informa que
= ∙ ∙ ,
com ∈ ℳ×
, ∈ ℳ×
,
∈ ℳ×
e ∈ ℳ×
.
Isto significa que, como transformação linear,
: ℝ → ℝ é a composta de três
transformações lineares:
∶ ℝ → ℝ, ∶ ℝ → ℝ e ∶ ℝ → ℝ,
como mostro na próxima transparência.
Slide 80
Slide 80 text
Veja no gráfico,
Loirinha:
ℝ ℝ
ℝ ℝ
Transformação
rígida
Transformação
rígida
Dilatação ou
contração
Slide 81
Slide 81 text
Este programa calcula a
decomposição SVD de uma
matriz 2x2 e mostra o
resultado graficamente.
Slide 82
Slide 82 text
Aí estão as diagonais que
você tanto pediu,
Loirinha.
Slide 83
Slide 83 text
Graficamente, para
uma rotação de 30º
temos:
Slide 84
Slide 84 text
E para uma
outra matriz:
Slide 85
Slide 85 text
No content
Slide 86
Slide 86 text
No content
Slide 87
Slide 87 text
Mestres, se uma matriz é
inversível, quais serão os valores
principais de sua inversa −1 ?
Assuma que a SVD de é = .
Então −1 = −1 = −1−1()−1
e como e são ortogonais temos
−1 = −1 .
Slide 88
Slide 88 text
ℝ ℝ
ℝ ℝ
ℝ ℝ
ℝ ℝ
−1
−1
Assim, se 1
, 2
, ⋯ ,
os valores
principais de , os valores principais de
−1 são Τ
1 1
, Τ
1 2
, ⋯ , Τ
1
.
Compare os diagramas:
Slide 89
Slide 89 text
Na fórmula acima, fórmula,
é qualquer sub
matriz de ordem obtida de eliminando-se
− linhas e − colunas de .
O posto de , anotado () é definido por:
= 1 ≤ ≤ min ,
≠ 0 } .
A definição de posto de uma
matriz ∈ ℳ×
é a seguinte:
Slide 90
Slide 90 text
O () é o número máximo de vetores
coluna de linearmente independentes ou
seja é a dimensão da imagem de :
= ∈ ℝ y = Ax, x ∈ ℝ }
O núcleo de uma matriz ∈ ℳ×
é o
subespaço
ú = ∈ ℝ = 0 }.
A dimensão de ú é denominada
nulidade de , e anotada .
Slide 91
Slide 91 text
Este programa calcula a
SVD de uma matriz A, seu
posto e nulidade.
Slide 92
Slide 92 text
Uma execução do
programa:
Slide 93
Slide 93 text
Calculei a SVD da matriz aí na
frente. Vejam que um dos
valores principais é zero.
O posto da matriz é 2 e
seu espaço nulo é
unidimensional
Slide 94
Slide 94 text
Nesse caso, as seguintes
propriedades são equivalentes:
1. é não-singular,
2. det ≠ 0,
3. ú = 0 ,
4. =
Para uma matriz quadrada de ordem
valem as seguintes igualdades:
1. = posto(),
2. + = .
Slide 95
Slide 95 text
Podemos resolver um sistema
linear = utilizando a
fatoração SVD de .
Sim o argumento é
desenvolvido nas duas
próximas transparências.
Slide 96
Slide 96 text
O diagrama abaixo ajuda a
entender o algoritmo que
usaremos.
Nele = .
= ฑ
=
=
=
Slide 97
Slide 97 text
O algoritmo é o seguinte:
1. Calcular a fatoração SVD de :
=
2. Resolver = .
3. Resolver = , quando possível.
4. Resolver = .
ฑ
=
=
=
Slide 98
Slide 98 text
No caso em que todos os
≠ 0,
teremos uma única solução,
calculável pelo algoritmo do
Mestre.
Vale a pena comentar que:
1. ortogonal e = ⟹ = .
2. = e
≠ 0, = 1, ⋯ , ⟹
= Τ
, = 1, ⋯ , .
3. ortogonal e = ⟹ = .
Slide 99
Slide 99 text
Portanto, dispondo da decomposição
em valores singulares da matriz , o
algoritmo é (2).
Prove a afirmação do
Cabelos de Fogo Surfista!
Slide 100
Slide 100 text
Fiz um programa que calcula a
solução de um sistema linear
= , usando a SVD através do
algoritmo descrito pelos Mestres.
Slide 101
Slide 101 text
O final de meu
programa:
Slide 102
Slide 102 text
Uma execução do
programa:
Slide 103
Slide 103 text
Continuação da
execução do programa:
Slide 104
Slide 104 text
Agora uma
execução para
sendo 3 × 4:
Mais incógnitas
que equações.
Slide 105
Slide 105 text
Eis a solução!
Slide 106
Slide 106 text
Agora em 3D para entender
melhor os conceitos de posto
(e imagem) e nulidade (e
espaço nulo) de uma matriz.
A esfera unitária
será levada num
elipsoide.
Slide 107
Slide 107 text
O Mestre cortou um gomo da laranja
para melhorar a visualização.
Na realidade uma casca esférica,
cortada para olharmos seu interior.
A matriz A é diagonal. Note as escalas
nos 3 eixos da imagem.
Slide 108
Slide 108 text
Fiz um programa para calcular a
decomposição em valores singulares, SVD,
de uma matriz A. Depois apliquei-o à matriz
do gráfico anterior.
Slide 109
Slide 109 text
Esta outra matriz, além de
deformar a esfera num elipsoide,
ela também gira-o entorno da
origem!
Slide 110
Slide 110 text
Calculei a SVD dessa matriz.
Marquei o tamanho dos semi-eixos
do elipsoide para você, Loirinha.
Slide 111
Slide 111 text
Para esta outra matriz A, a esfera vira um
disco! Perdemos uma dimensão na imagem.
Fiz duas fotos para vocês conferirem. Uma
de perfil e, a outra, quase de frente.
Slide 112
Slide 112 text
Esta outra matriz
possui dois valores
singulares nulos.
Slide 113
Slide 113 text
O espaço imagem é
unidimensional!
A imagem da esfera vira um
segmento de reta.