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

Introdução à MatPlotLib

Introdução à MatPlotLib

...

Paulo Bordoni

August 23, 2018
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. A MatPlotLib será nossa ferramenta para construir gráficos de funções.

    Mas, antes de apresentá-la reavivaremos a disputa Platão x Aristóteles.
  2. “A criação de Adão” Afresco pintado no teto da Capela

    Sistina por Michelangelo Buonarroti, entorno de 1511. Vou começar pelo dito popular: “Uma imagem vale mais que mil palavras.”
  3. 1637 René Descartes - Francês Nasceu 31/03/1596 Morreu 11/02/1650 A

    formalização do método científico, um século e um quarto de depois...
  4. Reducionismo: estudo do mundo como uma montagem de partes físicas

    que podem ser divididas e analisadas separadamente e recompostas.
  5. M.C. Escher, Relativity (1953), Litogravura Uma imagem vale muito mais

    que mil palavras ... Escher dividiu e depois remontou tudo, harmonicamente, certamente questionando o Reducionismo.
  6. Escher remontou tudo, harmonicamente, quem sabe para mostrar que “o

    todo pode ser maior que a soma das partes”. Holismo ...
  7. Descartes é do mundo das ideias. Onde entra a crítica

    de Escher? Imagens e gráficos são entidades criadas pela nossa percepção euclideana.
  8. Mestre, Mestre ... Eu faço engenharia, não filosofia, nem história!

    Pois é Surfista, Escher usa nossa própria percepção visual para desconstruir a confiança que temos na percepção visual.
  9. Mas Escher vai mais além. A próxima transparência ensina que

    o que você vê depende de como você olha as coisas.
  10. M.C. Escher, Convex and Concave (1955), Litogravura Experimente olhar assim

    ↘, como a mulher descendo com a cesta - canto esquerdo superior. Depois, olhe assim ↖, como o operário subindo a escada - canto direito inferior.
  11. Olhar o todo permite detectar contradições. Use a Internet criteriosamente

    para buscar mais informações, mas cuidado com as “fake news” Pode ser muito pior: “O que você vê depende de como te mostram as coisas” É ou não é, Escher?
  12. Isto já é história ! Quero ver nas eleições, agora

    em 2.018. Pensem nas imagens de Escher quando virem essas manchetes na imprensa podre:
  13. Foi você quem acabou de protestar: “ Eu faço engenharia

    ! ” Fiquei convencido que votar envolverá decisões sobre: ética x política x educação (UFRJ) x segurança x hospitais x ...
  14. Surfista, veja mais sobre armadilhas da percepção ao final deste

    conjunto de transparências. Depois volte a refletir sobre a disputa Platão x Aristóteles.
  15. Voltando ao ponto que nos interessa no momento: Descartes (1637)

    e Fermat (1636) amarraram a Geometria de Euclides à Álgebra através do conceito de sistema de coordenadas.
  16. Publicou 1º, 1684/1686 Descobriu antes, 1665/1666 Não deixem de ver

    no Youtube: The Calculus Controversy. Em particular Newton e Leibniz, criaram o Cálculo Infinitesimal (a matemática do contínuo) cerca de 50 anos depois Descartes e Fermat parirem a Geometria Analítica. Aliás é de Newton a frase: “Se enxerguei mais longe é porque estava no ombro de gigantes.”
  17. x y = (, ) x z y = (,

    , ) A algebrização da geometria decorre da possibilidade identificar pontos, tanto do plano euclidiano ℝ2, como do espaço euclidiano ℝ3, a pares , e ternas (, , ) de números.
  18. A partir dela, da geometria analítica, os matemáticos passaram a

    poder descrever entes geométricos como segmentos, retas, planos, triângulos, seções cônicas (e outros lugares geométricos), através da álgebra: com equações e inequações. Circunferência Elipse Parábola Hipérbole 2 + 2 = 1 2 = 4 2 2 + 2 2 = 1 2 2 − 2 2 = 1
  19. A utilização: • do teorema de Pitágoras permite calcular distância

    entre pontos. • da trigonometria possibilita obter o ângulo entre duas retas. • da regra de Cramer permite obter o ponto de interseção entre duas retas. = ( , ) = ( , )
  20. Surfistas, Loirinhas e Cabelos de Fogo, vou apresentar um roteiro

    para vocês estudarem a MatPlotLIb. Mais especificamente a PyPlot.
  21. Uma forma de trabalhar interativamente com nossas ferramentas é, na

    Spyder, abrir um console IPython. Veja como:
  22. Não Manuel, vamos direto para pyplot ! Vou apresentar, rapidamente,

    o que há em cada uma das abas que marquei:
  23. Agora sim, vamos aos tutoriais da MatPlotLib, que te darão

    asas, Surfista. Este é o significado de origem (em Inglês) de tutor:
  24. O início do tutorial de especificação de cores. Depois vejam

    os exemplos de uso cores na aba examples.
  25. Lista das coordenadas x Lista das coordenadas y Vendo o

    help é fácil Manoel. Usando a plot( ) desenhei um segmento com extremidades nos pontos A = (2.1, 1.3) e B = (3.5, 2.7).
  26. Muito fácil! Para plotar 2 segmentos colados um no outro

    criei duas listas com as coordenadas x e y dos vértices:
  27. Mas clicando no ícone do disquete salvamos uma imagem sem

    a borda cinza. Eu prefiro assim! Após a execução, a PyPlot abriu uma janela mostrando uma imagem com borda cinza, como no slide anterior.
  28. Construí o triângulo abaixo, com dois comandos plot( ) e

    mais alguns comandos de “embelezamento”. Vejam o código e a imagem que o Surfista prefere:
  29. O que faz o comando da linha 2, Mestre? Ele

    permite utilizar acentuação na imagem. Vou analisar o resto do código Loirinha.
  30. • Em 12 plotamos os lados do triângulo, usando uma

    linha contínua em azul e indicamos um texto para a legenda, • Em 13 plotamos os vértices com bolinhas em vermelho, mais um texto para a legenda, • Em 14 deixamos a pyplot escolher a melhor posição para posicionar a legenda, • Em 15 definimos o título da figura, • Em 16 e 17 rotulamos os eixos, • Em 18 definimos um tamanho para o gráfico. Analisando a parte gráfica:
  31. Sim Mestre, como faremos para traçar gráficos de funções com

    a MatPlotLib? Até que enfim algo de Cálculo I !
  32. Ora, simplesmente ligamos os pontos 0 , 0 , 1

    , 1 , ⋯ , ( , ), com segmentos de reta, sendo = ( ). O nome técnico da matemática para isto é interpolação linear por partes! Interpolação é um tópico importante de nosso curso.
  33. Depois: • usamos a difusão para calcular os valores =

    ( ), • e passamos esse par de vetores para a função plot( ). Vejam na próxima transparência. Operacionalmente: • escolhemos o domínio [, ] para construir o gráfico da função f • e usamos a vetorização com a linspace( ) para gerar as coordenadas .
  34. Vejam, com o código à frente geramos o gráfico de

    uma função por ex. ↦ () = 2.
  35. Uma explicação sobre a nomenclatura adotada pelos Mestres. Ela é

    mais intuitiva que a da matplotlib.pyplot. Desenho (substitui fig) é uma entidade abstrata, não pré-definida (pode ser o gráfico de uma função, um histograma, uma foto, um mapa, etc.), que queremos colocar no papel (substitui ax).
  36. • Em 28 plotamos o gráfico da função, • Em

    29 colocamos o título, • Em 30 e 31 criamos marcas para a, b , y_min e y_max, • Em 32 e 33 colocamos os eixos x e y, • Em 34 estabelecemos os limites do papel. Acompanhem mais explicações abaixo:
  37. Mestre, não gostei! Ficou muito ruim - uma parábola cheia

    de quinas. Grande Surfista! Vou repetir com mais pontos. Ah, Coleguinha, é só colocar mais pontos no vetor X!
  38. É Mestre, o aspecto da parábola melhorou! Usei 21 pontos,

    marcados em azul. São 20 sub-intervalos de mesmo tamanho Δ = ( 2.0 − (−2.0))/20 = 0.2.
  39. Que tal o gráfico da função : [0,2] → ℝ

    definida por = 2sin() Loirinha ? Note que acrescentei os eixos.
  40. É o Escher em ação, Mestra! Observe que com muitos

    pontos (51), percebemos uma curva suave.
  41. A única coisa nova é o gráfico da função :

    [, ] → ℝ em tracejado e vermelho.
  42. Loirinha, acompanhe no código as minhas explicações. Vou repetir algumas

    já dadas no gráfico do triangulo para fixação.
  43. • Os comandos 42-47 definem o polígono (é preciso repetir

    o 1º vértice para fechar o polígono), • Nos comandos 49-54 calculamos o tamanho do gráfico (definido na linha 66), • O comando fill( ) na linha 59 pinta o interior do polígono, • Os comandos xticks(...) e yticks(...) nas linhas 62 e 63 plotam os valores passados coord_x e coord_y, • O comando grid(True) traça as linhas pontilhadas horizontais e verticais pelos “ticks”, • Os comandos 64 e 65 traçam os eixos x e y. Meus pupilos, vejam alguns comentários sobre o código:
  44. O “kit” de ferramentas é último conjunto de tutoriais. É

    nele que está a caixa de ferramentas para gráficos 3D.
  45. O gráfico aramado da superfície que criamos com o código

    da página anterior, visto de 3 ângulos distintos:
  46. Um programa usando plot_surface( ) • Em 11 importamos Axes3D

    para poder construir gráficos tridimensionais, • Em 12 importamos a classe cm de mapear cores. • Em 14 criamos imagem para receber, em 15, um quadro onde desenhar.
  47. A continuação do programa: • Em 57, criamos superf_3D, o

    gráfico da função f(x, y) no domínio [a,b]x[c,d], • Em criamos uma escala colorida para descrever a variação da função, • Em 50-52 estabelecemos os limites da caixa retangular onde o gráfico é traçado, • Em 53-55 damos nomes a alguns bois.
  48. Mestre, você superpôs a superfície com o aramado ? Não,

    apenas mudei linewidth=0 para 1 no código.
  49. Fiz um programa para desenhar curvas de nível. É igualzinho

    ao 3D_superfície e usei os mesmos dados. Só troquei as linhas 57-59 por estas duas:
  50. Ilusão induzida pelo claro/escuro . http://www2.uol.com.br/vivermente/ multimidia/galeria_de_ilusoes.html Comece olhando pelo

    balcão superior. Depois desça ao pátio pela corda. Em seguida, suba pela escada.
  51. Pois é, são armadilhas de percepção. Esta revista mostra algumas.

    Escher, desenhou muitas outras. Elas envolvem o famoso “tribar” de Sir Roger Penrose.
  52. Mauritius Cornelius Escher, holandês. Nasceu em 17/06/1898 Morreu em 27/03/1972

    Este é o artista genial que construiu as litogravuras que mostramos. Surfista, procure na internet para ver muito mais!
  53. “Cogito, ergo sum” The Discourse on Method is best known

    as the source of the famous quotation "Je pense, donc je suis" ("I think, therefore I am"), which occurs in Part IV of the work. (The similar statement in Latin, Cogito ergo sum, is found in §7 of Principles of Philosophy.)
  54. Sigmund Freud Nasceu 06/05/1856 Morreu 23/09/1939 "The great question that

    has never been answered, and which I have not yet been able to answer, despite my thirty years of research into the feminine soul, is 'What does a woman want?'" From Sigmund Freud: Life and Work by Ernest Jones O criador da Psicanálise. Aprendi nesse divã que “sinto, logo sou”
  55. Nasceu em o8/o8/1932, na Inglaterra Sir, a consciência é mesmo

    o resultado de interações quânticas dentro dos neurônios?
  56. Tradução para o latin de 1575, por Wilhelm Xylander. Diofanto

    de Alexandria foi, talvez, o primeiro matemático a usar símbolos para incógnitas, em sua Aritmética, ~250 dC. Ele é considerado um dos pais da álgebra. Tradução para o latin de 1621, por Bachet de Méziriac
  57. A edição de 1670 da Aritmética, pelo filho de Fermat,

    com uma chamando a atenção sobre a observação do pai.
  58. Os dois artigos foram aceitos e publicados como na totalidade

    na edição de maio de 1995 do Annals of Mathematics. Estas publicações estabeleceram o teorema de modularidade para curvas elípticas semi-estáveis, o último passo para provar o teorema. Com base na obra de Ken Ribet, Andrew Wiles conseguiu provar o suficiente do teorema de modularidade para provar o Último Teorema de Fermat, com a ajuda de Richard Taylor. Esta realização de Wiles foi noticiado amplamente na imprensa popular, e foi popularizada em livros e programas de televisão.