O método da exaustão para encontrar a área do círculo

O método da exaustão foi desenvolvido nos tempos de Eudoxo e Arquimedes. Este post visa mostrar a ideia geral do método. Os gregos antigos tinham uma noção bastante forte de geometria, e por isso, é bastante lúdico entender o raciocínio.

Como calcular a área de um círculo, ou de alguma outra forma complicada? Uma resposta é aproximar por algo mais simples, como um triângulo ou um quadrado.

O maior quadrado possível que cabe dentro de um círculo é o quadrado inscrito.

O menor quadrado possível em que o círculo cabe dentro é o quadrado circunscrito.

Assumindo que o raio é igual a 1, para facilitar, a área do círculo vai estar entre 2 e 3,31 (demonstração nos capítulos seguintes abaixo).

Mas o quadrado é muito diferente do círculo. Não dá para melhorar?

Que tal utilizar um pentágono?

A aproximação melhorou um pouco, entre 2,38 e 3,25 (hoje sabemos que a área é pi*r^2, se o raio é 1, a área é pi = 3.1415…)

Podemos continuar crescendo o número de lados do polígono.

Digamos, 6 lados (hexágono):

10 lados:

15 lados:

Quanto maior o número de lados, o polígono regular é mais parecido com o círculo.

Repetindo o procedimento, até a exaustão (daí o nome), podemos chegar ao valor de pi com a precisão desejada.

Os gregos utilizaram técnica semelhante para calcular área de diversas outras formas, e também o volume de esferas e outros sólidos.

O método acima tem pouca álgebra e muita geometria e é uma espécie de precursor do cálculo integral.

Mexa na versão web em https://asgunzi.github.io/MetodoExaustao/index.html

É possível utilizar o Excel para traçar os polígonos acima, embora seja um pouco mais avançado (utilizando VBA).

O desenho utiliza apenas retas e círculos, o que facilita bastante.

Em essência, para adicionar uma linha, só é necessário saber as coordenadas iniciais (x1,y1) e finais (x2,y2).

ActiveSheet.Shapes.AddLine(x1, y1, x2, y2)

O número de lados N do polígono regular vai dividir o círculo em N, mostrado acima como bolinhas amarelas.

Se uma volta completa é igual a 360 graus (2*pi), o ângulo theta entre dois pontos é de 2*pi/N.

As coordenadas do ponto i são (r*cos(theta_i), r*sin(theta_i)), com theta_i = i*2*pi/N.

O código final envolve vários outros detalhes, porém, a essência está descrita acima.

For i = 1 To nlados

    theta = 2 * i * pi / nlados + theta0

    x1 = cx0 + raio * Math.Sin(theta)

    y1 = cy0 + raio * Math.Cos(theta)

theta = 2 * (i + 1) * pi / nlados + theta0

    x2 = cx0 + raio * Math.Sin(theta)

    y2 = cy0 + raio * Math.Cos(theta)

    plotaLinha "FrmRef", x1, y1, x2, y2, r, g, b

Next i

Para calcular a área, utilizar geometria novamente.

Se o lado do polígono é igual a x, e a altura do triângulo h, temos um triângulo retângulo h – x/2 – r.

Lembrando que o raio do círculo é conhecido.

O ângulo é theta = 360 / N.

Fazendo as contas, a área do polígono inscrito é N/2 * sin(2*pi/N).

A área do polígono circunscrito é 2*N*tan(pi/(2*N)).

Há um erro lógico aqui no exercício. Utilizei o conhecimento moderno de trigonometria para calcular a área – e tal conhecimento utiliza explicitamente o pi, que era justamente o que Eudoxo e Arquimedes queriam descobrir. Porém, para efeito de ilustração, imagino que seja suficiente.

Versão web em https://asgunzi.github.io/MetodoExaustao/index.html

Para baixar o arquivo Excel e o código-fonte em Javascript:

https://github.com/asgunzi/MetodoExaustao

Vide também:

https://ideiasesquecidas.com/laboratorio-de-matematica/

Cigarras e números primos

O que o ciclo de vida de cigarras exóticas tem a ver com números primos?

O artigo do link fala de cigarras que vão à superfície a cada 17 anos. É um comportamento diferente, sem dúvida.

Em sua forma imatura, esses insetos passaram os últimos 17 anos no subsolo, onde se alimentaram das raízes das árvores. Mas chegou a hora de procriarem e renovarem o ciclo em uma tarefa que exigirá que cigarras imaturas, chamadas ninfas, deixem confortáveis confins subterrâneos, transformarem-se em adultos e encontrarem um companheiro. E é aí que entra o icônico zumbido, enquanto os machos tentam cortejar uma parceira com seus zangões impressionantemente estridentes.

Existe uma teoria de que este número de anos não seja aleatório, e sim, uma estratégia que derivou do eterno jogo entre predador e presa.

Note que 17 é um número primo. Ser um número primo significa que este é divisível por 1 e por si mesmo.

Imagine que a cigarra descrita tenha um predador especializado nela.

O predador tem que ter um ciclo tão longo quanto os 17 anos para conseguir comer a cigarra. A cigarra consegue sobreviver 17 anos como larva, comendo as raízes das árvores, protegida dentro da terra. Já o predador, dificilmente conseguiria aguentar tanto tempo.

Imagine outra situação, a título de exercício. Imagine que a cigarra agora tenha um ciclo de 18 anos.

18 é um número composto, ou seja, 6*3 = 18.

Um predador pode adotar uma estratégia menos custosa: aparecer a cada 6 anos. Em dois dos ciclos, ele come algo menos saboroso, digamos, baratas, somente para sobreviver ao ciclo seguinte. E, no terceiro ciclo, ele pode ir à farra, festejando com as saborosas cigarras.

Já com um número primo, não é possível usar a estratégia acima.

Os primeiros primos são 2, 3, 5, 7, 11, 13 e 17.

Note que a matéria diz que há cigarras com o ciclo de 13 anos também.

Com menos anos, digamos 3 ou 5, facilita a entrada de predadores (que podem se sujeitar a comer baratas por alguns anos).

Quem diria que números primos tivessem relação com o ciclo de vida das cigarras!

Veja também:

Link do artigo: https://gizmodo.uol.com.br/milhoes-de-cigarras-devem-aparecer-nos-eua-depois-de-passarem-17-anos-debaixo-da-terra/

https://ideiasesquecidas.com/laboratorio-de-matematica/

As curvas do espirógrafo e as órbitas dos planetas

Comprei um espirógrafo, para analisar melhor as curvas que este produz (são diferentes das que eu tinha feito antes).

Segue a implementação descrita a seguir, em versão web: https://asgunzi.github.io/Espirografos/.

Espirógrafo desenhos geométricos hipotroclóides e epitroclóides

Fiz algumas figuras para entender a lógica deste – vide o scan abaixo.

Esquematicamente, imagine um círculo menor rodando dentro de um círculo maior.

Além disso, dentro do círculo menor, escolho a posição do ponto onde coloco a caneta, representada pelo círculo vermelho abaixo.

A posição inicial do círculo menor é dada pelo círculo verde abaixo.

O raio do círculo maior é R, o do círculo menor que roda dentro do círculo maior é r2.

A posição da caneta pode ser descrita por um raio r3, e um ângulo lambda em relação ao centro do círculo menor no início da rotação.

Imagine que o círculo menor rodou um ângulo theta em relação ao círculo maior.

A posição do CENTRO do círculo menor vai ser dada pelas equações da figura – até agora, nenhuma novidade, são equações de um círculo.

A posição inicial do círculo, em verde, mudou, porque girou com o círculo.

O ângulo phi, do deslocamento da posição inicial, é obtido notando que o arco da circunferência maior tem a mesma dimensão do arco da circunferência do círculo menor.

Um arco de circunferência é dado por R*ângulo, onde o ângulo é medido em radianos.

Assim, R*theta = r2*phi.

Ou seja, phi = R*theta / r2.

Se o raio menor r2 for pequeno, phi é maior, ou seja, vai ter que girar mais vezes para chegar ao mesmo ponto.

Agora, finalmente, temos que encontrar a posição da caneta (a bola vermelha). Lembrando, ela estava a um ângulo lambda da posição inicial, e num raio r3.

Portanto, o ângulo até o ponto de tangência entre os dois círculos é (phi – lambda), onde phi = R*theta / r2.

As equações finais têm que levar em consideração a posição inicial do círculo maior, o centro do círculo menor, e a rotação descrita acima.

X = x0 + (R-r2)*Math.sin(theta)-r3*Math.sin(theta*R/r2 - phi));

Y = y0 + (R-r2)*Math.cos(theta)-r3*Math.cos(theta*R/r2 - phi));

Fiz a implementação utilizando a excelente biblioteca D3 de Javascript.

Para o raio maior, utilizei o valor arbitrário de 200. Os outros parâmetros são o raio menor (r2), a posição da caneta (r3) e o número de voltas que o círculo menor dá em torno do maior.

Seguem alguns resultados.

Com os parâmetros descritos, e 1 volta.

2 voltas:

Chega uma hora que não adianta mais dar voltas, que elas coincidem na mesma trajetória.

Outros exemplos:

Nota: o ângulo lambda foi desprezado, no final das contas, porque apenas desloca um pouco o ângulo, sem mudar o formato da figura.

Vide a implementação citada aqui: https://asgunzi.github.io/Espirografos/.

A dança das estrelas

As curvas desenhadas acima lembram as curvas que os planetas fazem no céu, vistos da Terra.

When the motion of the planets are charted as their so called ...

Imagine que a Terra é o círculo menor, girando ao redor do Sol, o círculo maior. A Terra também gira em torno de si mesma. Agora, um outro planeta, Vênus, também gira ao redor do Sol numa velocidade diferente.

Certamente, a equação dos planetas é muito mais complexa: é em três dimensões, as órbitas são elípticas, e o outro planeta gira em torno do Sol também. Porém, a ideia geral é mais ou menos semelhante: uma composição de rotações em torno de rotações de rotações, ora fazendo a posição aparente ir para frente, ora para trás, numa eterna dança celestial…

Trilha sonora: O segundo sol, Cássia Eller

“Quando o segundo sol chegar, para realinhar as órbitas dos planetas…”

Vide também:

https://ideiasesquecidas.com/2015/03/03/a-danca-de-afrodite/

https://ideiasesquecidas.com/2017/07/05/plutao-e-a-falacia-narrativa/

IBM Quantum Challenge 2020

Participei do IBM Quantum Challenge 2020, e gostaria de compartilhar a experiência.

Computadores quânticos são a próxima fronteira da computação. É um mundo esquisito, onde os bits podem ser sobrepostos, entrelaçados, enviados para outros universos e trazidos de volta com a solução correta (obs. há um certo exagero nessa afirmação).

No desafio são propostas 4 séries de exercícios, em dificuldade crescente. Todos na linguagem Qiskit, baseada em Python. A interface é o Jupyter Notebook, rodando nos servidores da IBM (que chegou a cair, por excesso de utilização).

Na maior parte das vezes, usamos o modo simulador, porém, num exercício tivemos o prazer de rodar um dos computadores quânticos reais da IBM, no meu caso, o IBMQ_16_Melbourne.

Das 4 séries de exercícios, completei 3, e aprendi uma quantidade enorme de conceitos no processo.

– 8 questões sobre circuitos quânticos

– 4 questões sobre ruído

– Experimento sobre criptografia quântica BB84

– Decompor um circuito nos componentes básicos

Este campo ainda está na infância. Pode crescer exponencialmente. Ou não, pode ser que dê em nada. Uma sobreposição de sucesso ou fracasso, como o gato de Schrodinger.

Obrigado à IBM pela dedicação.

https://quantum-computing.ibm.com/challenges/4anniversary

Como criar um quadrado mágico de qualquer tamanho

Quadrados mágicos são números arranjados numa grade, de tal forma que a soma das linhas, colunas e diagonais seja igual.

A questão de como criar diversos tipos de quadrados mágicos vem intrigado os matemáticos há séculos.

Magic Squares - history of chinese math squares as in book "The ...

Veremos neste tutorial, como criar um quadrado mágico de qualquer tamanho. Implementação em VBA e em Python disponível no Github.

Há três casos diferentes:

– quadrados mágicos ímpares,

– do tipo 4*n

– do tipo 4*n+2

Para cada caso, há um algoritmo diferente.


Caso 1: Quadrados mágicos ímpares

São os que têm número de lado ímpar (3, 5, 7, etc).

Começar colocando o 1 na célula superior do meio. Andar uma casa para a esquerda e uma para cima, para colocar o próximo número. Como o tabuleiro acaba, é como se ele desse a volta e colocasse o número no canto inferior.

Ir repetindo o passo acima, do número 2 para o 3.

Quando a casa em questão já estiver ocupada, como no caso abaixo,

… colocar o próximo número imediatamente abaixo da casa de referência.

Isso é suficiente para gerar qualquer quadrado mágico ímpar.

Ex. quadrado mágico 3×3:

Obs. Devido à simetria, tanto faz ir para a direita ou para a esquerda, no primeiro passo acima.

Padrão de cores: mais claro -> número maior, mais escuro, número menor.

Ex. Quadrado mágico 15×15:


Caso 2: Quadrados de ordem 4*n

Ou seja, quadrados de lado 4, 8, 12, 16, etc.

Colocar os números de 1 a 16 sequencialmente na grade.

Apagar os números da diagonal principal e da diagonal secundária:

Agora, imagine o grid preenchido sequencialmente, mas na ordem inversa:

Neste grid inverso, apagar todos os números que NÃO são das diagonais principal e secundária.

Juntar ambos os quadrados semi-preenchidos, e voilá, temos um quadrado mágico!

Para ordem 8, 12, é similar. É só imaginar um quadrado 8×8 sendo dividido em 4 quadrados 4×4, e para cada quadrado 4×4, aplicar o padrão acima.


Caso 3: Ordem 4*n+2

São quadrados com casas 6, 10, 14, etc, em que os algoritmos acima não funcionam.

Este caso é mais complicado.

A regra utilizada aqui é a LUX, desenvolvida por John Conway (o mesmo do Jogo da Vida).

Dividir o quadrado em grupos de quadrados 2×2.

Exemplo, um quadrado 6×6 pode ser visto como um grupo de 3×3 quadrados 2×2.

Para o grupo de quadrados, dividir assim:

  • Até a metade de linhas L
  • 1 linha de U
  • O restante de X

No exemplo de lado 6, não “cabe” a linha X, mas para casos maiores, sim.

Depois, inverter o L central com o U abaixo:

Note que o grupo de quadrados torna-se um quadrado de ordem ímpar (o primeiro algoritmo descrito).

L, U e X referem-se à padrões de preenchimento:

Portanto, o algoritmo é:

– A ordem de preenchimento é como no caso ímpar, para grupos de quadrados 2×2

– Dentro do quadrado 2×2, usar a regra LUX correspondente ao quadrado.

Exemplo: cubo 6×6

No exemplo acima, começo com 1 no meio na linha superior, que é padrão L:

O próximo número é 5, e o local dele é à direita e acima, conforme o algoritmo de lado ímpar. Esta casa corresponde ao padrão U.

O próximo número é o 9, à direita e acima. Agora, é o padrão L.

E assim sucessivamente.

Ex. Quadrado 10×10.

Utilizando os três algoritmos acima, é possível criar quadrados mágicos de qualquer tamanho, digamos 1000 x 1000.

Implementação em D3: https://asgunzi.github.io/QuadradoMagicoD3/index.html

Implementação em VBA e em Python disponível no Github.

Links:

https://en.wikipedia.org/wiki/Conway%27s_LUX_method_for_magic_squares

https://en.wikipedia.org/wiki/Siamese_method

https://ideiasesquecidas.com/laboratorio-de-matematica/

https://ideiasesquecidas.com/2016/03/09/quadrados-magicos-impares/

Laboratório de matemática

Separei na página a seguir alguns trabalhos interativos que envolvem a Rainha das Ciências.

https://ideiasesquecidas.com/laboratorio-de-matematica/


Desenhos com círculos

Utilizando apenas círculos, é possível criar padrões interessantes.

Brinque aqui: https://asgunzi.github.io/CirculosSVG/


Fibonacci Visual

Visualize a sequência de Fibonacci https://asgunzi.github.io/Fibonacci/


Cardioides

Conheça a curva cardioide, feita apenas de retas sobre um círculo: https://asgunzi.github.io/Cardioids/


Cardioides circulares

Brinque com cardioides feitas com círculos ao invés de retas: https://asgunzi.github.io/CircularCardioids/


O Jogo da Vida

Implementação do Jogo da Vida, em homenagem a John Conway – falecido vítima do Coronavírus.

Versão Excel: https://github.com/asgunzi/JogodaVidaExcel

Versão Python: https://github.com/asgunzi/JogoVidaPython


Jogo da Vida Hexagonal

Inspirado no Jogo da Vida normal, porém com células hexagonais.

https://github.com/asgunzi/HexGameLife


Fractais

Crie os seus próprios fractais de Mandelbrot no Excel: https://github.com/asgunzi/vbaMandelbrot


Estrela geométrica

Estrela feita de retas. Em Excel VBA: https://github.com/asgunzi/EstrelaGeometrica


O problema de Josephus

Quem sobra, no final? https://ferramentasexcelvba.wordpress.com/2019/08/09/sobre-o-problema-de-josephus/


Quantas bobinas cabem num conteiner?

https://ferramentasexcelvba.wordpress.com/2019/01/19/quantas-bobinas-cabem-num-conteiner/


SEND + MORE = MONEY

Como resolver computacionalmente este puzzle? https://ferramentasexcelvba.wordpress.com/2019/05/27/send-more-money/


Curva cicloide

Simulação de uma curva cicloide

https://ferramentasexcelvba.wordpress.com/2019/07/23/cicloide-em-excel-vba/

Informs Analytics Conference

O Informs é a maior instituição de Analytics e Operations Research do mundo, e anualmente faz uma conferência internacional.

Este ano, será virtual e gratuita (normalmente, custa uns 1000 dólares). É uma boa oportunidade, para quem gosta do assunto.

Saiba mais no link a seguir.

http://meetings2.informs.org/wordpress/analytics2020