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

Polinomiais e a NumPy

Polinomiais e a NumPy

...

Paulo Bordoni

May 27, 2017
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. Conjuntos permitem agrupar coisas mediante propriedades. Algumas delas permitem subclassificar

    seus elementos. Subespaços vetoriais incorporam essa ideia.
  2. As funções polinomiais em ℝ constituem um subespaço de ℱ.

    E ele é anotado . Sim: • A soma de polinomiais também é uma função polinomial. • A múltipla de uma função polinomial não perde a sua qualidade.
  3. O conceito de base de um espaço vetorial desempenha um

    papel fundamental para operar com as polinomiais.
  4. Lembrem-se, uma base B de um espaço vetorial V é

    um subconjunto linearmente independente maximal. Maximal significa: se ∉ então ∪ será LD.
  5. A base canônica dos vetores-coluna de ordem 3, o ℝ3,

    é 1 = 1 0 0 , 2 = 0 1 0 , 3 = 0 0 1 , É. Ela que permite escrevermos 2.1 −0.7 1.5 = 2.11 + (−0.7)2 + 1.53
  6. A base canônica do espaço vetorial 2, das funções polinomiais

    de grau menor ou igual a 2, é constituída pelas polinomiais: 0 () = 0 = 1, 1 () = 1 = , 2 () = 2 . A ideia é a mesma. Para a polinomial = 2.1 + 0.7 + 1.5 2 temos = 2.1 0 + 0.7 1 + 1.5 2
  7. É o aspecto dual das funções atacando de novo: elas

    são vetores construídos ponto a ponto.
  8. Com este programa desenhei a polinomial de grau 3, dada

    por = 2 − 1 − 22 + 3. Veja na próxima transparência.
  9. Mestre, bastou passar os coeficientes da polinomial. Da mesma forma

    que passamos as coordenadas para vetores coluna!
  10. Para provar que 0 , 1 , 2 são vetores

    LI precisamos garantir a implicação 0 0 + 1 1 + 2 2 = 0 ⇒ ቐ 0 = 0 1 = 0 2 = 0 Mestra, que 0 , 1 , 2 geram o 2 é óbvio. Mas, como faço para provar que elas são LI ?
  11. Portanto, da igualdade vetorial 0 0 + 1 1 +

    2 2 = 0 podemos escrever igualdades numéricas, para qualquer valor de ∈ ℝ. Lembrem-se do aspecto dual: Funções são vetores definidos ponto-a-ponto.
  12. Escolhendo = 1, 2, 3 obtemos o sistema linear ቐ

    0 + 1 + 2 = 0 0 + 1 2 + 2 4 = 0 0 + 1 3 + 2 9 = 0 Sua forma matricial é 1 1 1 1 2 4 1 3 9 0 1 2 = 0 0 0 . A solução dele é 0 = 1 = 2 = 0 .
  13. Repetindo a fala do Surfista. Para definir uma função polinomial

    de ℙ2 basta especificar suas coordenadas 0 , 1 , 2 na base canônica: = 0 0 + 1 1 + 2 2 É exatamente essa a ideia utilizada para definir a classe polynomial da Numpy. Basta dar as coordenadas da polinomial p na base canônica.
  14. Após clicar você verá que as informações sobre o Pacote

    Polynomials começam aqui. Agora clique em Polynomial Package!
  15. Antes, quero lembrar que a estruturação padrão em Python é:

    pacotes (pastas) são constituídos por módulos (arquivos tipo .py) que possuem classes, compostas por atributos e métodos. Atributos • aaa • ⋅⋅⋅ Métodos • f( ) • ⋅⋅⋅ Classe Xyz Atributos • aaa • ⋅⋅⋅ Métodos • f( ) • ⋅⋅⋅ Classe Abc
  16. Fiz um recorte do help para resumir a estruturação do

    pacote polynomial. Percebam que ele é constituído por seis módulos, cada um com uma classe homônima.
  17. numpy . polynomial . polynomial . Polynomial numpy . polynomial

    . chebyshev . Chebyshev ... ... ... ... numpy . polynomial . hermite_e . HermiteE pacote sub-pacote módulos classes Tornando a repetir:
  18. Caro Manual, é aqui que chegamos pós clicar em Polynomial

    Package. Por enquanto veremos apenas o 1ª deles - o módulo Polynomial. Pularemos a introdução.
  19. 1. Importar o módulo polynomial (dentro de numpy.polinomial) 2. Criar

    p chamando o construtor Polynomial(), da classe polynomial passando os parâmetros coef, domain e window. Os passos envolvidos na criação de uma função polinomial p: 1 2
  20. Pelo gráfico percebemos que a função polinomial possui 3 raízes

    reais, um ponto de máximo local, outro de mínimo local e um ponto de inflexão. Também fica evidente seu comportamento para → ±∞. = −2 − 3 + 2 + 3
  21. Grau da polinomial an > 0 Par lim →+∞ =

    +∞ lim →−∞ = +∞ Ímpar lim →+∞ = +∞ lim →−∞ = −∞ O comportamento das funções polinomiais para → ±∞ depende apenas do termo de maior grau da polinomial (se n é ímpar ou par) e do sinal do seu coeficiente, o a n : Se an < 0 é só trocar o sinal dos limites
  22. 0 x 0 |x| s(x) |k∗x| x Em outras palavras,

    quando usamos ≠ estamos, na verdade, trabalhando com uma polinomial composta ∘ , onde s é a função afim, translação mais fator de escala, definida por = 0 + ∗ , com = || ||
  23. 1. Quando = o 2º e 3º gráficos se superpõe.

    2. Para outros valores de k, isto não acontece. Confiram nas duas próximas transparências. Fizemos um programa que mostra 3 gráficos: 1. O de uma polinomial p com Window = Domain, 2. O da mesma polinomial p, mas com Window ≠ Domain, 3. Um 3º da mesma polinomial p, com o mesmo Domain, mas substituindo a variável x por ∗ , onde k um fator de escala para a variável x.
  24. Escolhemos primeiro = 0.5 ≠ || || . NÃO há

    superposição do 2º e 3º gráficos.
  25. Agora, escolhemos = || || = 0.75 . O 2º

    e 3º estão superpostos e para visualizá- los, foi necessário desenhar o 2º tracejado em negro e o 3º pontilhado em vermelho.
  26. As funções polinomiais são fáceis de derivar e integrar. =

    ෍ =0 [] = ෍ =1 −1 () = ෍ =0 + 1 +1 + .
  27. As funções polinomiais são contínuas e infinitamente diferenciáveis. Elas também

    integráveis (pq. são contínuas) Infinitamente diferenciáveis só porque derivada de ordem n de uma polinomial de grau n é uma constante e a derivada de ordem n+1 é zero: x = cte , +1 = 0
  28. Para derivar uma função polinomial p fornecemos seus coeficientes (e,

    se desejarmos, o número m de vezes a derivar).
  29. Os gráficos, da polinomial p, de sua derivada Dp e

    de sua integral indefinida Ip (anti-derivada), gerados pelo meu programa.
  30. Ao expandirmos um produto como − 0 − 1 −

    2 − 3 Obteremos, obviamente, uma polinomial de grau 4 em x, cujas raízes são 0 , 1 , 2 , 3 . Essa polinomial terá a forma padrão 4 4 + 3 32 21 x + 0 , 4 = 1, cujos coeficientes são obtidos, com um bocado de algebrismo, a partir das raízes.
  31. Ele é uma consequência trivial e imediata da fatoração: =

    0 + 1 + 2 + 3 + 4 . São só 4 adições e 4 multiplicações. O algoritmo de Briot-Ruffini-Horner é o algoritmo mais rápido para calcular o valor de uma função polinomial como = 0 + 1 + 2 2 + 3 3 + 4 4
  32. Mestre, ensine como implementar o algoritmo. Surfista, construa recursivamente um

    vetor 4 3 2 1 0 como o da nossa frente. Confira que 0 = () comparando com a nuvem! 4 = 4 3 = 3 + 4 2 = 2 + 3 1 = 1 + 1 0 = 0 + 1 = 0 + 1 + 2 + 3 + 4
  33. Se () é uma função polinomial de grau ≥ 1,

    então a equação () = 0 Possui pelo menos uma raiz (real ou complexa). Teorema fundamental da Álgebra Carl Friedrich Gauss demonstrou o seguinte resultado em sua tese de doutorado:
  34. Como as raízes complexas ocorrem aos pares (a raiz e

    sua complexa conjugada), se o grau da polinomial é ímpar com certeza ela possui uma raiz real. Segue do Teorema fundamental da Álgebra que: uma função polinomial = () de grau n possui n raízes reais ou complexas.
  35. Surfista, faremos um programa que permite determinar as raízes de

    uma equação polinomial () = 0. Loirinha, faça outro programa que permita achar os pontos de inflexão dessa mesma polinomial.
  36. Já vimos vários métodos para obter raízes aproximadas de equações,

    não apenas para equações polinomiais. O polyroots() é específico para polinomiais. O Mestre fez um programa para mostrar o gráfico de uma polinomial () e assinalar seus pontos de máximo, mínimo e inflexão. Mostra também os gráficos das derivadas de ordem 1 e 2 da ().
  37. Observem que para k = 0,1,2, ... • p k

    (1) = 1, • p k (0) = 0, k ≠ 0 E também para ∈ (0, 1) que: 0 > 1 () > 2 () > ⋯
  38. Naturalmente, para k > 0, lim →0 = 0. e,

    maior o k, mais rápida a convergência.
  39. Seja f uma função tal que lim →0 = 0.

    Se existir alguma constante M > 0 tal que ℎ ≤ ℎ, ℎ ∈ [0, ), para suficientemente pequeno, escreveremos = ℴ(ℎ) e diremos que f converge a zero com ordem k (polinomialmente).
  40. Portanto se = ℴ ℎ2 e = ℴ(ℎ) então f

    converge mais rapidamente a zero do que g. Confiram na figura!
  41. Provaremos mais adiante que as DDF avançadas e retardadas aproximam

    a derivada linearmente, e que a DDF centrada aproxima quadraticamente. Mas Mestra, os gráficos lá obtidos mostram convergência exponencial. Obtives retas em escala logarítmica!
  42. É porque lá usamos ℎ = ൗ 1 2 Que

    decai exponencialmente a zero com k, colega! Surfista, mostre graficamente que a convergência do método de Newton- Raphson é quadrática. Compare (também graficamente) a velocidade de convergência dos métodos da secante, ponto-fixo e bisseção.
  43. Esses módulos/classes, em última análise, apresentam outras bases do espaço

    das polinomiais. Elas surgem de forma natural na resolução, por separação de variáveis, de problemas de valor de contorno onde o domínio apresenta algum tipo de simetria. Infelizmente, em nosso curso, não teremos oportunidade de trabalhar com esses problemas.
  44. Mas vejam os 6 primeiros elementos da base de Chebyshev

    e suas expansões na base canônica: