Slide 1

Slide 1 text

Introdução à MatPlotLib Prof. Paulo R. G. Bordoni UFRJ

Slide 2

Slide 2 text

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.

Slide 3

Slide 3 text

“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.”

Slide 4

Slide 4 text

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...

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Reducionismo: estudo do mundo como uma montagem de partes físicas que podem ser divididas e analisadas separadamente e recompostas.

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

Escher remontou tudo, harmonicamente, quem sabe para mostrar que “o todo pode ser maior que a soma das partes”. Holismo ...

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

Mas Escher vai mais além. A próxima transparência ensina que o que você vê depende de como você olha as coisas.

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

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?

Slide 14

Slide 14 text

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:

Slide 15

Slide 15 text

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 ...

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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.

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Pierre Fermat ...

Slide 20

Slide 20 text

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.”

Slide 21

Slide 21 text

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.

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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. = ( , ) = ( , )

Slide 24

Slide 24 text

Surfistas, Loirinhas e Cabelos de Fogo, vou apresentar um roteiro para vocês estudarem a MatPlotLIb. Mais especificamente a PyPlot.

Slide 25

Slide 25 text

Surfista, comece abrindo a Python(x,y) e nela a Spyder. Ah, agora vamos !

Slide 26

Slide 26 text

Uma forma de trabalhar interativamente com nossas ferramentas é, na Spyder, abrir um console IPython. Veja como:

Slide 27

Slide 27 text

No console interativo, repita o que indiquei: Eu fiz isso, e recebi este help imenso !

Slide 28

Slide 28 text

Eis outra forma buscar a documentação “online” da MatPlotLib

Slide 29

Slide 29 text

E aqui estamos na página dela:

Slide 30

Slide 30 text

A navegação é facílima. Use previous ou next para velejar. Eis como a buscar por palavra-chave:

Slide 31

Slide 31 text

Não Manuel, vamos direto para pyplot ! Vou apresentar, rapidamente, o que há em cada uma das abas que marquei:

Slide 32

Slide 32 text

A sua dúvida!

Slide 33

Slide 33 text

A Mestra mandou marcar as funções da API que iremos utilizar mais.

Slide 34

Slide 34 text

Vamos usá-las para construir gráficos de funções !

Slide 35

Slide 35 text

Os nomes são bem descritivos.

Slide 36

Slide 36 text

A função plot é básica !

Slide 37

Slide 37 text

Gráficos em coordenadas polares ! E em escala logarítmica.

Slide 38

Slide 38 text

A MatPlotLib possui muitas funções facilitadoras !

Slide 39

Slide 39 text

Se não errei na contagem, são 133 funções disponíveis !

Slide 40

Slide 40 text

Agora sim, vamos aos tutoriais da MatPlotLib, que te darão asas, Surfista. Este é o significado de origem (em Inglês) de tutor:

Slide 41

Slide 41 text

Claro que nosso 1º passo será o tutorial da PyPlot.

Slide 42

Slide 42 text

O início do tutorial e seu conteúdo. Vocês deverão estudá-lo até o final Surfistas

Slide 43

Slide 43 text

O Mestre mandou mostrar a galeria de exemplos e marcar os que veremos.

Slide 44

Slide 44 text

Vários exemplos (27 ao todo) de uso da PyPlot.

Slide 45

Slide 45 text

Depois que se divertirem com o tutorial da PyPlot, olhem o tutorial de cores que marquei.

Slide 46

Slide 46 text

O início do tutorial de especificação de cores. Depois vejam os exemplos de uso cores na aba examples.

Slide 47

Slide 47 text

Exemplos envolvendo cores.

Slide 48

Slide 48 text

Duas tabelinhas com cores básicas.

Slide 49

Slide 49 text

Uma tabela com 148 cores nomeadas:

Slide 50

Slide 50 text

Agora vou mostrar como obteremos nossos gráficos, usando a função plot.

Slide 51

Slide 51 text

Na API da pyplot, clique em plot:

Slide 52

Slide 52 text

Ou, no console interativo, após importar a matplotlib.pyplot digite help(plot):

Slide 53

Slide 53 text

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).

Slide 54

Slide 54 text

Muito fácil! Para plotar 2 segmentos colados um no outro criei duas listas com as coordenadas x e y dos vértices:

Slide 55

Slide 55 text

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.

Slide 56

Slide 56 text

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:

Slide 57

Slide 57 text

O que faz o comando da linha 2, Mestre? Ele permite utilizar acentuação na imagem. Vou analisar o resto do código Loirinha.

Slide 58

Slide 58 text

• 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:

Slide 59

Slide 59 text

Loirinha, passarei agora a mostrar como a MatPlotLib traça gráficos de funções.

Slide 60

Slide 60 text

Sim Mestre, como faremos para traçar gráficos de funções com a MatPlotLib? Até que enfim algo de Cálculo I !

Slide 61

Slide 61 text

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.

Slide 62

Slide 62 text

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 .

Slide 63

Slide 63 text

Vejam, com o código à frente geramos o gráfico de uma função. Escolhi ↦ () = 2.

Slide 64

Slide 64 text

Mestre, não gostei! Ficou muito ruim - uma parábola cheia de quinas. Grande Surfista! Depois vou repetir com mais pontos. Ah, Coleguinha, é só colocar mais pontos no vetor !

Slide 65

Slide 65 text

Antes uma explicação sobre a nomenclatura adotada pelos Mestres. Figura (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).

Slide 66

Slide 66 text

• Em 27 colocamos o título, • Em 28 plotamos o gráfico da função, • Em 29 e 30 criamos marcas para a, b , y_min e y_max, • Em 31 e 32 colocamos os eixos x e y, • Em 33-34 estabelecemos os limites do papel. Acompanhem mais explicações abaixo:

Slide 67

Slide 67 text

Loirinha, acrescentei a linha de código marcada em vermelho, acima. Agora são 21 pontos, marcados em vermelho e 20 sub-intervalos de mesmo tamanho Δ = ( 2.0 − (−2.0))/20 = 0.2. É Mestre, o aspecto da parábola melhorou!

Slide 68

Slide 68 text

Que tal o gráfico da função : [0,2] → ℝ definida por = 2sin() Loirinha ?

Slide 69

Slide 69 text

É o Escher em ação, Mestra! Observe que com muitos pontos (51), percebemos uma curva suave.

Slide 70

Slide 70 text

Vá em Search e busque por marker. Esqueci como pedir help para esses detalhes todos!

Slide 71

Slide 71 text

Pronto, a lista dos marcadores disponíveis.

Slide 72

Slide 72 text

Uma outra forma é abrir uma “Console IPython”

Slide 73

Slide 73 text

E proceder como eu indico: Mas usando a “Search” é mais prático!

Slide 74

Slide 74 text

Você também pode pedir ajuda ao Google, Loirinha:

Slide 75

Slide 75 text

Vou aproveitar para estudar por minha conta!

Slide 76

Slide 76 text

Nesta parte não há nada de novo. Para desenhar o gráfico de duas funções:

Slide 77

Slide 77 text

A única coisa nova é o gráfico da função : [, ] → ℝ em tracejado e vermelho.

Slide 78

Slide 78 text

Loirinha, acompanhe na aula as minhas explicações. Vou repetir algumas já dadas no gráfico do triângulo para fixação.

Slide 79

Slide 79 text

O programa a seguir permite traçar poligonais. Neste programa você usou fig e ax !

Slide 80

Slide 80 text

Ele permite escolher entre alguns polígonos. Modifique-o para traçar polígonos regulares com N lados Surfista.

Slide 81

Slide 81 text

É Mestra, posso escolher entre um segmento e um triângulo!

Slide 82

Slide 82 text

E também entre um quadrilátero ou um pentágono!

Slide 83

Slide 83 text

• 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:

Slide 84

Slide 84 text

Agora vou mostrar como traçar gráficos 3D.

Slide 85

Slide 85 text

O “kit” de ferramentas é último conjunto de tutoriais. É nele que está a caixa de ferramentas para gráficos 3D.

Slide 86

Slide 86 text

O início do mplot3d e seu conteúdo. Vejam a seguir a galeria com 36 exemplos.

Slide 87

Slide 87 text

Este é apenas início dos gráficos 3D da galeria.

Slide 88

Slide 88 text

Eis como desenhar um gráfico aramado em 3D

Slide 89

Slide 89 text

Este programa traça um gráfico aramado de uma superfície 3D.

Slide 90

Slide 90 text

O gráfico aramado da superfície que criamos com o código da página anterior, visto de 3 ângulos distintos:

Slide 91

Slide 91 text

Agora vamos desenhar o gráfico de uma superfície 3d, usando o surface plots:

Slide 92

Slide 92 text

A continuação do surface plots:

Slide 93

Slide 93 text

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.

Slide 94

Slide 94 text

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.

Slide 95

Slide 95 text

A superfície que criamos com esse programa, vista de 2 ângulos distintos:

Slide 96

Slide 96 text

Uma outra superfície, com aramado, vista de três ângulos distintos

Slide 97

Slide 97 text

Mestre, você superpôs a superfície com o aramado ? Não, apenas mudei linewidth=0 para 1 no código.

Slide 98

Slide 98 text

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:

Slide 99

Slide 99 text

Tchau, até a próxima aula!

Slide 100

Slide 100 text

A matemática é platônica ou aristotélica? Que armadilhas a visualização nos apresenta?

Slide 101

Slide 101 text

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.

Slide 102

Slide 102 text

Pois é, são armadilhas de percepção. Esta revista mostra algumas. Escher, desenhou muitas outras. Elas envolvem o famoso “tribar” de Sir Roger Penrose.

Slide 103

Slide 103 text

O “tribar” é uma criação do pensamento para confundir a percepção Sir Roger Penrose?

Slide 104

Slide 104 text

M.C. Escher, Waterfall (1961), Litogravura Descubram os tribar! E as torres: mesma altura mas quantos andares?

Slide 105

Slide 105 text

M.C. Escher, Belvedere (1958), Litogravura Descubram os tribar. O quê o homem sentado no banco segura?

Slide 106

Slide 106 text

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!

Slide 107

Slide 107 text

“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.)

Slide 108

Slide 108 text

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”

Slide 109

Slide 109 text

Nasceu em o8/o8/1932, na Inglaterra Sir, a consciência é mesmo o resultado de interações quânticas dentro dos neurônios?

Slide 110

Slide 110 text

Pierre Fermat é famoso também pelo “Último Teorema de Fermat”

Slide 111

Slide 111 text

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

Slide 112

Slide 112 text

A edição de 1670 da Aritmética, pelo filho de Fermat, com uma chamando a atenção sobre a observação do pai.

Slide 113

Slide 113 text

O Último Teorema de Fermat, foi provado por Andrew Wiles,358 anos depois que foi conjecturado.

Slide 114

Slide 114 text

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.

Slide 115

Slide 115 text

Agora tchau, mesmo!