Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Álgebra Linear Computacional I

Álgebra Linear Computacional I

Começo examinando a classe Matrix da NumPy. Depois apresento o SciPy e mergulho no scipy.linalg - é o início do estudo de álgebra linear computacional. Mostro como calcular o determinante de uma matriz e as diversas normas de vetores. Apresento o conteúdo de álgebra linear computacional (o sumário dos livros do Gene Golub/Van Loan e do Trefethen/Bau). Finalizo examinando em detalhe os efeitos de uma matriz como transformação linear.

Paulo Bordoni

April 08, 2014
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. Aulas atrás, exibimos aplicações gráficas da classe ndarrays do NumPy

    Vamos iniciar a aula de hoje olhando para outra classe, a classe matrix.
  2. O Neo informa que os objetos da classe matrix são

    arrays 2d especializados. O numpy nos oferece matrix para lidarmos com vetores e matrizes. É nossa porta de entrada para a Álgebra linear computacional.
  3. Clicando em Tutorial somos conduzidos a uma repetição do seu

    índice. De imediato vamos olhar para Introduction
  4. É hora de embarcar no pacote scipy.linalg. Ele possui a

    álgebra linear computacional tão anunciada.
  5. Eis o motivo para usar a linalg da SciPy. Mas

    já tem linalg na NumPy. Por quê repetir?
  6. A estrutura do tutorial Linear Algebra, (scipy.linalg), é a seguinte:

    Álgebra linear Apresentação Rotinas básicas Decomposições Funções matriciais Matrizes especiais
  7. Os tópicos em rotinas básicas são : Rotinas básicas Achando

    a inversa Resolvendo sistemas lineares Achando o determinante Calculando normas Resolvendo problemas lineares de mínimos quadrados e pseudo-inversas Inversa generalizada Vamos começar pelos determinantes.
  8. O texto é um resumo da “Leitura adicional” ao final

    deste con junto de transparências.
  9. Indo ao Reference Guide do pacote Linear Algebra, em Basics,

    vamos encontrar os detalhes para usar a função. Fiquei sabendo que o cálculo de determinantes é inviável, na prática. Então, como o pacote scipy faz isto?
  10. A utilização da função det( ) é trivial e a

    resposta à sua pergunta está marcada no pé da página, Loirinha.
  11. E o que é fatoração LU? É algo tão importante

    e fundamental em Álgebra linear computacional como respirar é para a vida! O Mestre informou que será o assunto da próxima aula.
  12. Neste programa entramos com uma matriz A, via teclado, e

    em seguida chamamos a função det(A).
  13. Voltando às rotinas básicas do Scipy, vejamos o que há

    no tópico “Calculando normas”. Rotinas básicas Achando a inversa Resolvendo sistemas lineares Achando o determinante Calculando normas Resolvendo problemas lineares de mínimos quadrados e pseudo-inversas Inversa generalizada
  14. Por enquanto, vamos examinar apenas as normas vetoriais. Veremos as

    normas matriciais mais adiante. Para elas precisaremos de um pouco mais de teoria. É importantíssimo observar que todas aquelas cujo parâmetro ord é negativo não são normas.
  15. Surfista, apresente alguns contra-exemplos que justifiquem a última afirmação do

    Mestre! Quando ord = inf temos a norma do máximo. Para ord = 1 temos a norma da soma e para ord = 2 temos norma euclidiana. Elas são anotadas ∞ , 1 e 2 respectivamente. As outras são anotadas , ( = ).
  16. Já provamos que 2 = 1 2 + 2 2

    + ⋯ + 2 define uma norma. A verificação que 1 = 1 + 2 + ⋯ + é uma norma é óbvia. Da mesma forma, a comprovar que ∞ = max{ 1 , 2 , ⋯ , } define uma norma também é fácil.
  17. Para prová-la precisamos da desigualdade de Hölder: , ≤ ′

    com ′ = −1 . A dificuldade para provar que = |1 | + |2 | + ⋯ + | | é uma norma está na desigualdade triangular: + ≤ + . Ela é conhecida na literatura como desigualdade de Minkowski.
  18. Observem que a desigualdade de Hölder desempenha um papel análogo

    ao da desigualdade de Cauchy-Schwarz. Não vamos provar nenhuma das duas. Porém, se você estiver interessado, Surfista, já sabe as palavras-chave para buscar as demonstrações.
  19. Mestre, parece que os valores numéricos das normas estão tendendo

    ao valor da ∞ ! É verdade minha filha. Prove que para ∀ ∈ ℝ temos lim →∞ = ∞
  20. 1 y x A bola unitária no espaço euclidiano ℝ

    é o conjunto 2 = ∈ ℝ | 2 ≤ 1 . Ela descreve o conjunto 2 + 2 + 2 ≤ 1, que nossa intuição entende por uma bola (de futebol) no espaço euclidiano ℝ3. No plano seria como um CD (dos Beatles).
  21. 1 1 -1 -1 y x A bola unitária no

    espaço ℝ com a norma da soma é o conjunto 1 = ∈ ℝ | 1 ≤ 1 . No ℝ2 ela corresponde ao conjunto definido pela desigualdade + ≤ 1, mostrado na figura.
  22. 1 1 -1 -1 y x A bola unitária no

    espaço ℝ com a norma do máximo é o conjunto ∞ = ∈ ℝ | ∞ ≤ 1 . No ℝ2 ela corresponde ao conjunto definido pela desigualdade max{ , } ≤ 1, mostrado na figura.
  23. Surfista, não vá jogar bola com 1 ou ∞ .

    Você pode se machucar! É, são bolas que escapam da nossa intuição euclidiana.
  24. Este livro é o clássico dos clássicos sobre álgebra linear

    computacional. Vamos até reproduzir seu Sumário.
  25. São livros de cabeceira para quem for fazer pós-graduação em

    computação científica, matemática aplicada ou análise numérica.
  26. O conteúdo desses dois livros é a definição mais apropriada

    de Álgebra linear computacional. Invista em você. Adquira os dois livros!
  27. O conceito de função é, com certeza, o mais importante

    da matemática. Elas são o objeto do Cálculo diferencial e integral. Em particular, vamos considerar funções de um espaço vetorial U em um outro espaço vetorial V : : → , ∈ ⟼ = () ∈ .
  28. Em outras palavras, funções : → tais que: • +

    ⟼ ( + ) = + , • ⟼ = (). Tais funções recebem o nome especial de transformações lineares. Particularizando ainda mais: funções : → de um espaço vetorial U para outro V que preservam as operações nativas de U e V.
  29. = A ℝ ℝ Matrizes × definem transformações lineares de

    ℝ em ℝ através da multiplicação matriz x vetor. Uma matriz 3 x 4 define uma transformação linear ∶ ℝ4 → ℝ3, através da multiplicação: 1 2 3 = 11 12 13 14 21 22 23 24 31 32 33 34 1 2 3 4
  30. Lembrem-se que: Se A é uma matriz m x n

    então: • + = + , ∀, ∈ ℝ • = , ∀ ∈ ℝ , ∀ ∈ ℝ Que são as condições de linearidade.
  31. Um exemplo simples de ℝ2 em ℝ2 é 1 2

    ⟼ 1 2 = −1 2 2 −3 1 2 que corresponde ao par de igualdades 1 = −1 + 22 2 = 21 − 32
  32. As equações correspondentes são 1 = 1 2 = −2

    . Vemos que ela mantém a 1ª coordenada e troca o sinal da 2ª coordenada. Em outras palavras, realiza uma reflexão no eixo-x. A matriz = 1 0 0 −1 aplicada num vetor X fornece : 1 2 ⟼ 1 2 = 1 0 0 −1 1 2
  33. O programa a seguir mostra a ação de uma matriz

    M sobre um vetor . Ele permite escolher a matriz M e o vetor .
  34. Uma execução do programa. Em azul temos o vetor e

    em vermelho o vetor = X Vemos claramente que M realiza uma reflexão no eixo-x.
  35. O programa da próxima transparência permitirá a visualização da ação

    de uma matriz M qualquer sobre um triângulo ABC escolhido livremente. Mostraremos alguns exemplos com diferentes matrizes M. Surfista, faça outros exemplos exploratórios.
  36. O programa a seguir mostra a ação de uma matriz

    M de ordem 2 sobre um triângulo ABC.
  37. Comecemos conferindo que a matriz = 1 0 0 −1

    do exemplo anterior efetua uma reflexão entorno do eixo-x.
  38. Entretanto a vizualização da ação da matriz = 0.5 0

    0 1.5 sobre o triângulo azul não conduz a conclusões evidentes.
  39. Já usando um triângulo com um lado paralelo ao eixo-x

    e outro paralelo ao eixo- y percebemos que M efetua uma contração no eixo-x e uma dilatação no eixo-y.
  40. A matriz M definida por = cos() −() () cos()

    , quando aplicada num vetor v efetua uma rotação de ângulo no sentido horário em v. Isto é, se = então o ângulo entre v e u, medido de v para u é de radianos.
  41. Fiz um programa que recebe um quadrado arbitrariamente escolhido e

    gira-o no sentido horário de uma quantidade escolhida de graus..
  42. Uma rotação de 45º e outra de 90º. Notem que

    na rotação a norma dos vetores (e portanto dos objetos construídos com eles) permanece inalterada.
  43. A ação da matriz M sobre um feixe de vetores

    de tamanho unitário é clara: Ela dilata a componente vertical dos vetores do feixe por um fator de escala = 2 e mantém a componente horizontal inalterada.
  44. Já esta outra matriz M faz a dilatação = 2.5

    na componente horizontal dos vetores do feixe mantendo a componente vertical inalterada.
  45. Já a ação desta outra matriz M sobre um feixe

    de vetores unitários é mais complexa: Uma rotação seguida de uma dilatação.
  46. Esta 4ª matriz M, além da rotação e dilatação também

    realiza uma inversão do sentido dos vetores.
  47. Agora sim temos uma boa descrição do efeito de deformação

    de uma matriz M sobre um feixe de vetores.
  48. x x I A matriz identidade I é uma matriz

    quadrada de ordem n com 1’s na diagonal e 0’s fora dela. A identidade, como transformação linear não faz nada! ℝ ℝ I x = x
  49. Uma matriz M muito próxima da identidade = 1 0

    0 1 . Se M fosse a identidade I veríamos apenas o triângulo rosa, cobrindo o azul.
  50. x y A z B ℝ ℝ ℝ BA O

    produto BA de uma matriz B por uma matriz A corresponde à aplicação linear composta de A seguida por B:
  51. Lembrem-se que a multiplicação de matrizes não é comutativa. Na

    aula passada exibimos um programa que mostra que, usualmente, ≠ . Por exemplo, para = 1 2 1 2 e = −1 1 1 −1 temos = 1 −1 1 −1 e = 0 0 0 0 .
  52. A inversa de uma matriz quadrada A de ordem n

    é uma matriz quadrada B de ordem n tal que ∙ = ∙ = Existem matrizes que não possuem inversa – são não-inversíveis. Uma matriz não possui mais que uma inversa. Além disso, a inversa da inversa é a própria!
  53. Prova-se que A é inversível quando, e apenas quando, é

    não-singular, i.é, det() ≠ 0 Entretanto, verificar se det() ≠ 0 para saber se A é inversível é uma técnica nunca utilizada em Álgebra linear computacional.
  54. x y A A-1 ℝ ℝ x y A x

    A-1 ℝ ℝ ℝ I Pela própria definição, a inversa A-1 de uma matriz A , quando considerada como aplicação linear, desfaz a ação de A.
  55. Vejam a ação de uma matriz não-inversível M sobre um

    triângulo: Não há como desfazer a ação da M sobre o trtiângulo!
  56. Voltando às rotinas básicas do foquemos nossa atenção no tópico

    “Achando a inversa”. Rotinas básicas Achando a inversa Resolvendo sistemas lineares Achando o determinante Calculando normas Resolvendo problemas lineares de mínimos quadrados e pseudo-inversas Inversa generalizada
  57. Pedi ao Mestre para fazer um programa parecido àquele que

    mostra o efeito visual da ação de uma matriz num triângulo. Mas para a matriz inversa! Ele fará Loirinha, você é a queridinha dele!
  58. Verificando as ações de uma matriz e sua inversa, como

    transformações lineares. O deslocamento é um artifício para enxergarmos o efeito da inversa (em verde).