Slide 1

Slide 1 text

Normas, condicionamento e fatorações Prof. Paulo R. G. Bordoni UFRJ

Slide 2

Slide 2 text

Vamos começar analisando o conceito de norma, para matrizes.

Slide 3

Slide 3 text

Uma norma num espaço vetorial é uma função ∙ ∶ → ℝ satisfazendo: Para , ∈ e ∈ ℝ: I. ≥ 0, II. = 0 se e somente se = 0, III. = , IV. + ≤ + .

Slide 4

Slide 4 text

Portanto é possível definir uma norma para matrizes em ℳ× . Basta garantir as quatro propriedades relacionadas pelo Galileu. Já conferimos que o conjunto ℳ× das matrizes × com a adição de matrizes e a multiplicação por fator de escala é um espaço vetorial.

Slide 5

Slide 5 text

A norma de Frobenius é definida por: = ෍ ,=1 2 = () Surfista, prove que é uma norma. Operacionalmente é como se fosse a norma euclidiana para um vetor de 2 componentes.

Slide 6

Slide 6 text

Na realidade nosso foco estará na aplicação linear associada à uma matriz ∈ ℳ× . Pensar na aplicação linear : ℝ → ℝ associada à matriz envolverá três normas: uma em ℝ outra em ℝ e uma terceira em ℳ× .

Slide 7

Slide 7 text

Vamos provar que: se é uma norma vetorial, então a função ∶ ℳ× → ℝ definida por ⟼ = sup ≠0 é uma norma. É uma norma matricial denominada norma matricial induzida (pelas normas em ℝ e ℝ).

Slide 8

Slide 8 text

Sim, basta considerar o supremo sobre a bola unitária, isto é: = sup =1 . Antes, vamos mostrar que não precisamos tomar o supremo sobre todos os vetores ≠ 0 de ℝ.

Slide 9

Slide 9 text

Observe, Surfista, que para todo ∈ ℝ, temos ∙ = = () Considerando o caso particular em que = Τ 1 , para ∈ ℝ e ≠ 0, temos ∙= 1 = Τ e, obviamente, = 1 para = Τ .

Slide 10

Slide 10 text

Portanto = sup ≠0 = sup =1 E isso vale para qualquer uma das três bolas unitárias, nas ∙ 1 , ∙ ∞ e ∙ 2 .

Slide 11

Slide 11 text

Fantástico, Surfista. Pela interpretação geométrica fornecida pela decomposição SVD segue daí que 2 = sup 2=1 2 = 1 , o maior valor singular de . 1 = 2

Slide 12

Slide 12 text

É o que nossos alunos farão! Senhores, essa afirmação que = sup ≠0 = sup =1 é uma norma é tão importante que merece ser provada!

Slide 13

Slide 13 text

A condição I da definição de norma é imediata: = sup =1 ≥ ≥ 0. A condição III também: = sup =1 = sup =1 = .

Slide 14

Slide 14 text

A parte ⇐ da exigência II da definição de norma é trivial. Se = 0, claramente = 0. Mostre a parte ⇒, Cabelos de Fogo! Se = 0 então sup ≠0 = 0 e portanto = 0, ∀ ∈ ℝ. Logo = 0, ∀ ∈ ℝ e assim = 0.

Slide 15

Slide 15 text

Só falta a condição IV, a desigualdade triangular. Antes de prová-la, vamos provar que ≤ , ∀ ∈ ℝ, uma desigualdade importante em si mesma.

Slide 16

Slide 16 text

Ora, Cabelos de Fogo, sua afirmação decorre da definição de supremo: = sup ≠0 ≥ , ∀ ∈ ℝ, ≠ 0 Claro, pois daí temos ≤ , ∀ ∈ ℝ.

Slide 17

Slide 17 text

Para vetores , ∈ ℝ temos + ≤ + , portanto ∀ ∈ ℝ, segue daí que + = + ≤ + . Então, para na bola unitária, da desigualdade que acabamos de provar, temos + ≤ + ≤ +

Slide 18

Slide 18 text

Notem que + ≤ + , ∀ ∈ ℝ com = 1. Consequentemente + = sup =1 + ≤ + . Brilhante Cabelos de Fogo! Assim é válida a exigência IV, a desigualdade triangular: + ≤ + , ∀, ∈ ℳ× .

Slide 19

Slide 19 text

Agora vamos examinar as normas induzidas 1 e ∞ de uma matriz .

Slide 20

Slide 20 text

Sim Surfista, basta aplicarmos aos vetores dos vértices , , , tanto da 1 (1) como da ∞ (1). Mestra, essas duas bolas unitárias são quadrados. Obter o efeito de uma matriz sobre elas é imediato, não?

Slide 21

Slide 21 text

Por exemplo, a imagem por = 1.1 0.6 0.4 1.8 da ∞ (1) é:

Slide 22

Slide 22 text

E a imagem pela mesma matriz = 1.1 0.6 0.4 1.8 da 1 (1) é:

Slide 23

Slide 23 text

Por inspeção visual, o vetor de tamanho máximo da imagem por A da ∞ (1) é ∗ . Temos ∗ ∞ = max{1.7, 2.2} = 2.2. Portanto ∞ = 2.2.

Slide 24

Slide 24 text

Já, examinando a imagem por da 1 (1), vemos que o vetor de tamanho máximo é ∗ . Temos ∗ 1 = 0.6 + 1.8 = 2.4. Portanto 1 = 2.4.

Slide 25

Slide 25 text

Entretanto, não precisamos gerar as imagens por das bolas ∞ (1) e 1 (1) para calcular as ∞ e 1 . Basta calcularmos a matriz nos vértices , , , das bolas. Como, Mestre?

Slide 26

Slide 26 text

Ora Loirinha, porque ∞ = max ∞ , ∈ ∞ 1 = = max ∞ , = , , , . E, com a taquigrafia óbvia: = , , , = 1 1 , −1 1 , −1 −1 , 1 −1 ⟹ = 11 12 21 22 1 2 = 1 2 = = 11 + 12 21 + 22 , −11 + 12 −21 + 22 , −11 − 12 −21 − 22 , 11 − 12 21 − 22 .

Slide 27

Slide 27 text

Portanto ∞ = max ∞ , x = a, b, c, d = = max{ 11 + 12 , 21 + 22 } Claro, pois ൠ ()1 = 11 + 12 , −11 +12 , −11 −12 , 11 −12 ()2 = 21 + 22 , −21 +22 , −21 −22 , 21 −22 ⟹ ∞ = max ()1 , ()2 = = max{ 11 + 12 , 21 + 22 }

Slide 28

Slide 28 text

Da mesma forma, porque 1 = max 1 , ∈ 1 1 = = max 1 , = , , , . E com a taquigrafia, também óbvia: = , , , = +1 0 , 0 +1 , −1 0 , 0 −1 , ⟹ = 11 12 21 22 1 2 = ()1 ()2 = 11 21 , 12 22 , −11 −21 , −12 −22 .

Slide 29

Slide 29 text

Portanto 1 = max 1 , = , , , = = max{ 11 + 21 , 12 + 22 } Claro, pois neste caso: ቊ = , ⟹ 1 = 1 + 2 = 11 + 21 = , ⟹ 1 = 1 + 2 = 12 + 22

Slide 30

Slide 30 text

Repetindo, para = 11 12 21 22 : • 1 = max{ 11 + 21 , 12 + 22 } • ∞ = max{ 11 + 12 , 21 + 22 } Por esses dois resultados: • 1 é referida como norma (...) das colunas de e • ∞ como norma (...) das linhas de . (...) = (do máximo da soma dos valores absolutos)

Slide 31

Slide 31 text

Conferindo, para = 1.1 0.6 0.4 1.8 tenho: • 1 = 2.4 (colunas de ), • ∞ = 2.2 (linhas de ).

Slide 32

Slide 32 text

Apresento novamente a scipi.linalg.norm().

Slide 33

Slide 33 text

Agora vamos calcular normas matriciais.

Slide 34

Slide 34 text

Especificamente, vamos calcular as normas ∙ , ∙ 2 , ∙ 1 , ∙ ∞ de uma matriz e conferir a igualdade 2 = 1 .

Slide 35

Slide 35 text

Vejam:

Slide 36

Slide 36 text

Passaremos a analisar a sensibilidade da multiplicação matricial. Isto porque ela está diretamente associada à resolução de sistemas lineares.

Slide 37

Slide 37 text

No início do curso estudamos o número de condicionamento de um problema/função. Sim Mestre. Tanto o condicionamento absoluto , = () como o condicionamento relativo , = , ∙ Τ () .

Slide 38

Slide 38 text

Nosso interesse imediato é calcular os números de condicionamento de funções ∶ ℝ → ℝ dadas por ↦ ∈ ℝ, ∈ ℝ. O 1º passo da generalização é imediato: substituímos os módulos por normas. Assim eles serão os números dados por: , = () e , = , ∙ Τ ()

Slide 39

Slide 39 text

Para funções ∶ ℝ → ℝ a () é a matriz jacobiana, = Τ () O 2º passo envolve o entendimento do que é ().

Slide 40

Slide 40 text

Claro e a é a multiplicação de matriz por vetor, de forma que cada é definido por = (1 , 2 , ⋯ , ) = 1 1 +2 2 + ⋯ + Lembrem-se colegas, sistemas lineares são descritos por funções lineares : ℝ → ℝ: = 1 2 ⋮ ∈ ℝ ⟼ = 1 2 ⋮ ∈ ℝ, onde = .

Slide 41

Slide 41 text

Sendo prático, vamos imaginar um sistema 3 × 3 típico: ቐ 21 − 2 + 43 = 1 −1 + 52 + 33 = 3 61 − 22 + 3 = 0 Para esse sistema, temos: ൞ 1 (1 , 2 , 3 ) = 21 − 52 + 43 2 (1 , 2 , 3 ) = −1 + 52 + 3 3 (1 , 2 , 3 ) = 61 − 22 + 3

Slide 42

Slide 42 text

Portanto para a : ℝ3 → ℝ3 do sistema linear do Surfista teremos Τ () = 2 −1 4 −1 5 3 6 −2 1 . Claro, Loirinha! A matriz jacobiana dela é constante, e igual à própria matriz do sistema!

Slide 43

Slide 43 text

Portanto o número de condicionamento absoluto para sistemas lineares é = , = . Resumindo, se ∶ ℝ → ℝ é a multiplicação matricial, = , seu número de condicionamento absoluto é , = .

Slide 44

Slide 44 text

Claro que não colega! A solução de um sistema linear = é dada por = −1. Assim, a função é : ↦ = −1. Brilhante Cabelos de Fogo. O número de condicionamento para o problema da resolução de sistemas lineares é, portanto , = −1 .

Slide 45

Slide 45 text

Assim, o número de condicionamento absoluto ( = , ) de um sistema linear só está definido quando é inversível. E independe tanto do termo independente quanto da incógnita . Só depende da matriz .

Slide 46

Slide 46 text

O número de condicionamento relativo é dado por , = , Τ ∙ () . Bem, só falta entender o termo Τ () . Mestre, se = () = −1 é claro que = .

Slide 47

Slide 47 text

Sim Cabelos de Fogo e portanto Τ () = Τ ≤ . Assim o condicionamento relativo da resolução de sistemas lineares satisfaz , ≤ −1 ∙

Slide 48

Slide 48 text

Quando é ortogonal a igualdade em , ≤ −1 ∙ é atingida. Claro Mestra, pois nesse caso a : ↦ = −1 não altera o tamanho de , não importa a forma de medir tamanho.

Slide 49

Slide 49 text

Conclusão: o número de condicionamento relativo de um sistema linear = é = , = −1 ∙ Portanto os números de condicionamento absoluto e relativo para sistemas lineares = dependem apenas da matriz (e da −1): • = , = , • = , = ∙ −1 .

Slide 50

Slide 50 text

Assim suprimiremos a indicação do sistema = e de , escrevendo apenas () e ().

Slide 51

Slide 51 text

Quando não é inversível, é usual escrever = +∞ e = +∞ Quando é inversível de ∙ −1 = decorre que 1 = = ∙ −1 ≤ −1 . Portanto ≥ 1, para toda matriz inversível .

Slide 52

Slide 52 text

Como antes, quando os números de condicionamento forem pequenos o problema de resolução de sistemas lineares é bem condicionado; caso contrário é mal condicionado.

Slide 53

Slide 53 text

Na numpy.linalg temos a função cond( ):

Slide 54

Slide 54 text

Fiz este programinha, que recebe uma matriz A e devolve os números de condicionamento oferecidos pela numpy.linalg.con():

Slide 55

Slide 55 text

Surfista, observe que: • 2 = - o maior valor singular de A , • −1 2 = Τ 1 - o menor valor singular de A . Assim = Τ Em outras palavras = Τ , é a excentricidade do hiper-elipse que é a imagem por A da circunferência unitária.

Slide 56

Slide 56 text

Os teoremas 12.1 e 12.2 do livro de Trefethen & Bau, exibidos a seguir, mostram a importância dos números de condicionamento de uma matriz A.

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

Eis como estimar o número de casas decimais confiáveis na solução de um sistema linear:

Slide 59

Slide 59 text

A paisagem é magnífica; há muita coisa a ser vista!

Slide 60

Slide 60 text

Álgebra linear Apresentação Rotinas básicas Decomposições Funções matriciais Matrizes especiais Agora vamos explorar as fatorações (Decompositions) existentes na scipy.linalg.

Slide 61

Slide 61 text

A famosa fatoração LU.

Slide 62

Slide 62 text

Rotinas existentes na Referência da scipy.linalg para a fatoração LU.

Slide 63

Slide 63 text

Sim, de = , segue que det() = det det det(). Veremos que L só possui 1’s na diagonal e que P é ortogonal. Assim, det = ± det = ±11 22 ⋯ A fatoração = permite calcular det().

Slide 64

Slide 64 text

Mestre, que outras vantagens Maria Loirinha leva com essa tal de fatoração LU? Antes do Mestre te responder, jovem, proponho que discuta com seus colegas sobre essa cultura de levar vantagem em tudo. Grande Filósofo!

Slide 65

Slide 65 text

Respondendo tua pergunta, Loirinha: Tendo a fatoração = , resolver o sistema linear = é equivalente a resolver = . Então resolvemos primeiro o sistema = e depois o = . Note que esses dois são sistemas triangulares, facílimos de resolver! Conforme já vimos, o maior trabalho reside em fatorar (i.é, efetuar o processo de eliminação).

Slide 66

Slide 66 text

Os detalhes para usar a linalg.lu( ):

Slide 67

Slide 67 text

O que linalg.lu( ) retorna:

Slide 68

Slide 68 text

A rotina pode efetuar o pivotamento por linha (ou não). Ela retorna: • as três matrizes P, L e U • ou apenas duas, a PL que é a triangular inferior permutada e a U.

Slide 69

Slide 69 text

Conferindo a fatoração LU:

Slide 70

Slide 70 text

Um 1º exemplo em que não necessidade de trocas de linhas,

Slide 71

Slide 71 text

Já neste exemplo é evidente a necessidade de permutar a L0 com a L2 e depois a L2 com a L3. Atente para as matrizes A e P.

Slide 72

Slide 72 text

Uma outra forma de chamar a fatoração LU da SciPy. Como no 1º exemplo, não houve a necessidade de pivotamento.

Slide 73

Slide 73 text

Chamando a 2ª forma da fatoração LU da SciPy. Agora com pivotamento.

Slide 74

Slide 74 text

Esta é lu_factor( ) que efetua a fatoração . Ela recebe a matriz A e retorna uma matriz contendo a fatoração LU e um vetor P contendo os índices de pivoteamento.

Slide 75

Slide 75 text

Os parâmetros retornados. Esta rotina usa a LAPACK.

Slide 76

Slide 76 text

Esta rotina recebe a fatorada LU e o vetor piv fornecidos pela lu_factor( ). Recebe também o termo independente b e retorna a solução x.

Slide 77

Slide 77 text

Resolvendo um sistema linear Ax = b via fatoração LU com pivotamento.

Slide 78

Slide 78 text

Ela é boa para resolver sistemas Ax=b com muitos b’s, mas a mesma A.

Slide 79

Slide 79 text

Vejam, entrei com uma matriz 4x4 e 2 termos independentes. Poderiam ser muitos: 10, 50, etc.

Slide 80

Slide 80 text

Uma brevíssima explicação do que é a fatoração de Cholesky.

Slide 81

Slide 81 text

É essa a ideia Surfista. Além disso, vale a volta; veja na próxima transparência! Confirmando, se A é simétrica e positiva definida está garantida a existência de uma matriz triangular superior tal que = . É como se U fosse a raiz quadrada de A, Mestre, pois = .

Slide 82

Slide 82 text

Suponha que uma matriz não-singular A possa ser fatorada na forma = , com U triangular superior. Então A será simétrica e definida positiva. É difícil provar isto Mestra?

Slide 83

Slide 83 text

E também que A é definida positiva, isto é ≠ 0 ⟹ > 0. De fato assumindo ≠ 0 e = teremos ≠ 0, devido à não-singularidade de U. Então = () = = = 2 > 0. Bem, minha querida, de = segue que: • A é simétrica, pois = ()= ()= = • U é não-singular, pois det()2 = det() = det() ≠ 0.

Slide 84

Slide 84 text

As rotinas do SciPy para a fatoração de Cholesky.

Slide 85

Slide 85 text

A explicação para passagem de parâmetros.

Slide 86

Slide 86 text

Surfistas e Loirinhas, fiz este programa usando a fatoração de Cholesky.

Slide 87

Slide 87 text

Uma execução. Deixo a cho_fator() e a cho_solve() para vocês.

Slide 88

Slide 88 text

Esta rotina só efetua a fatoração. Deve ser usada com a cho_solve().

Slide 89

Slide 89 text

Fácil, fácil. Só troquei o nome da rotina e acrescentei o parâmetro de retorno Eh_inf.

Slide 90

Slide 90 text

Fácil nada, você errou. O apressado come cru! Repeti os dados da Mestra e não conferiu.

Slide 91

Slide 91 text

Errou porque não prestou atenção no aviso: Vou corrigir!

Slide 92

Slide 92 text

Foi só aplicar a rotina triu() na Cho. Vejam o resultado a seguir:

Slide 93

Slide 93 text

Como você disse Surfista, fácil, fácil!

Slide 94

Slide 94 text

Esta rotina resolve o sistema após fatorado pela rotina cho_factor().

Slide 95

Slide 95 text

Vou resolver o sistema linear abaixo. A matriz do sistema é a do exemplo anterior. 5 2 1 0 2 7 3 1 1 0 3 1 6 −1 −1 2 = 1 2 3 4

Slide 96

Slide 96 text

O Mestre chamou a Cho_fator() e depois a Cho_solve(). Percebam que ele não precisou zerar a parte inferior da matriz Cho. Além disso, b entrou como vetor-linha e foi transformado em vetor-coluna.

Slide 97

Slide 97 text

A execução, com conferência a resposta.

Slide 98

Slide 98 text

Esta é específica para matrizes de banda. Só fatora.

Slide 99

Slide 99 text

Esta resolve o sistema linear, após a fatoração pela cholesky_banded().

Slide 100

Slide 100 text

Façam um programa para resolver um sistema linear = no qual , além de ser simétrica e positiva-definida, também é de banda. Vai cair na prova Mestra?

Slide 101

Slide 101 text

Tchau, até a próxima aula!