19 novembro 2005Cogitar (15 cogitações anteriores)PiAs formas geométricas acompanham o Homem desde que ele surgiu na Terra mas antecedem-no em milhares de milhões de anos (recorde-se, por exemplo, a forma hexagonal dos favos nas colmeias das abelhas, a trajectória dos planetas, a estrutura dos átomos e das moléculas, entre tantos outros exemplos das formas geométricas do Universo...). Já no artigo Omnia factus mathematica se abordou a presença das formas geométricas no mundo e a teoria de que tal se deve ao nascimento da Matemática no Big Bang. Uma das formas geométricas mais apelativas, quer pela sua simplicidade que pela sua infinita simetria quer pela sua utilidade e versatilidade é a circunferência (a circunferência é a linha, a linha com o interior é o círculo). Esta é uma forma que tem suscitado a imaginação humana desde muito cedo, desde a pura utilidade da roda às divindades ligadas aos discos solares e lunares. Recorde-se a forma de Stonehenge...
Vários foram os povos que, ao longo da história, se fascinaram por este valor de aparência mística. Como era possível que o comprimento de toda e qualquer circunferência a dividir pela sua largura desse sempre o mesmo valor? Os antigos Babilónios (ver Aevum decimale para outros contributos babilónicos) deixaram imensas placas de argila com a primeira forma de escrita conhecida: a escrita cuneiforme. Há placas com os mais diversos tipos de textos, desde poemas de amor, relatórios económicos e militares, lendas, histórias,... Há também registos da Matemática babilónica nalgumas dessas placas. Para os Egípcios da mesma altura, o valor de Pi era √ 10 ≈ 3,162277. Estas duas civilizações conheciam já esta mítica constante e preocupavam-se em encontrá-la, apesar de não se saber se lhe davam algum nome em particular. Mas a primeira tentativa sistemática para encontrar o valor de Pi foi desenvolvido pelo grego Arquimedes (conhecido matemático e inventor, de que já se falou de um outro feito em Aurea corona). Arquimedes colocou uma circunferência entre polígonos com n lados, de tal forma que n = 6x2k, ou seja, o número de lados do polígono é sempre igual a 6 vezes uma potência de 2. Os nomes dos polígonos são formados pelos prefixos gregos para o número dos seus lados a que se junta o sufixo «gono», que significa lado.
Mas outros prosseguiram-nos: Poucos progressos teóricos foram feitos ao longo dos séculos que sucederam a Aristóteles.
Até 1946 todos os cálculos eram feitos à mão, demorando anos a serem feitos. Existe curiosamente uma forma experimental de calcular o valor de Pi. Algumas outras curiosidades sobre Pi: Cogitado por Mauro Maia às 14:49
| Cogitar (15) Cogitações anteriores
Excelente artigo, como sempre. Aqui vai, se me é permitida, uma possível demonstração para o problema das agulhas:
Seja d a distância que separa duas linhas paralelas e l o comprimento da agulha. Lance-se a agulha e meça-se o ângulo que a mesma faz com as referidas linhas. Seja alfa o valor desse ângulo. Então a probabilidade de, nesse lançamento, a agulha intersectar uma linha é dada pela razão entre o comprimento da agulha medido segundo uma direcção perpendicular às linhas paralelas e a distância d (um diagrama aqui facilitaria muito a compreensão deste ponto, mas não me é possível fazê-lo). Ou seja:
p(alfa) = l . sen(alfa) / d.
O valor de alfa pode variar entre 0 e PI (e não entre 0 e 2PI, dada a simetria da agulha). A probabilidade de, para todos os valores de alfa, a agulha intersectar uma linha será, por conseguinte, dada por:
P = (1 / PI) . integral entre 0 e PI de (p(alfa) . dalfa).
Substituindo, obtemos:
P = (1 / PI) . integral entre 0 e PI de (l . sen(alfa) / d . dalfa) = (1 / PI) . (l / d) . integral entre 0 e PI (sen(alfa) . dalfa) = (1 / PI) . (l / d) . (-cos(alfa)) entre 0 e PI = (1 / PI) . (l / d) . (-cos(PI) - (-cos(0))) = (1 / PI) . (l / d) . (1 + 1) = (2 / PI) . (l / d).
Para os valores referidos no artigo, d = 4 cm e l = 2 cm, temos:
P = (2 / PI) . (2 / 4) = 1 / PI (qed).
Aqui vai outra maneira divertida de calcular PI:
PI / 4 = (1 / 1) - (1 / 3) + (1 / 5) - (1 / 7) + (1 / 9) - (1 / 11) + ...
Conheço outro método muito engraçado, baseado em tiro ao alvo, e que é muito fácil de implementar num computador (com o recurso a números aleatórios). Vou tentar explicá-lo: considere-se um quadrado unitário (isto é, um quadrado cujo lado é igual a 1) e um quarto de um círculo unitário (o raio é igual a 1), inscrito no quadrado (um diagrama aqui também seria útil). Disparem-se tiros aleatoriamente em direcção ao quadrado. Todos os tiros atingirão o quadrado, mas só alguns acertarão no quarto de círculo. A probabilidade é dada por:
P = número de tiros no quarto de círculo / número total de tiros = área do quarto de círculo / área do quadrado = (PI . R^2 / 4) / (lado^2) = PI / 4. A aproximação será tanto melhor quanto maior for o número total de disparos. Cumprimentos.
Cogitado por: . a novembro 20, 2005 06:19 PM
Obrigado pelo complemento à «Agulha de Buffon». Eu hesitei em colocar a descrição geral do problema, recorrendo a um comprimento de agulha l e a uma distância entre as linhas d. Acabei por concluir que tal descrição não aclararia o artigo, pelo que serviria somente para o alongar. Agradeço-te a inclusão no teu comentário da descrição em termos de l e d, bem como a desmonstração da mesma (que nem originalmente cogitei colocar non artigo). Sem dúvida que é um óptimo suplemento. A primeira forma que referes para encontrar Pi (usando a soma de fracções de denominador ímpar com sinais alternadamente simétricos) está incluído no artigo, quando é referido como a primeira forma «moderna» de encontrar Pi sem o método de Arquimedes. Mas o «método» do tiro ao alvo eu desconhecia e é, sem dúvida, uma forma curiosa de encontrar Pi. Uma «Agulha de Buffon» (Pi através de probabilidades geométricas) mas com tiros ao alvo e alvos circulares. Sem dúvida interessante. Obrigado, «.», mais uma vez.
Cogitado por: Mauro a novembro 20, 2005 09:18 PM
Tens razão no que se refere ao método do desenvolvimento em série. As minhas desculpas pela repetição. Quanto ao método do tiro ao alvo, foi-me ensinado, já lá vão muitos anos, por um professor de Introdução à Programação. Na sua formulação original entrava um quadrado com duas (e não uma) unidades de lado e um círculo unitário completo (em vez de um quarto de círculo). A probabilidade continua a ser de PI / 4. A formulação do quarto de círculo tem a vantagem de levar a algumas simplificações na escrita do programa.
Cogitado por: . a novembro 20, 2005 10:09 PM
Sem dúvida um exercício interessante, ainda mais com o alvo com 2 unidades e um círculo inteiro a um canto. Quem sabe, uma boa sugestão para um pequeno exercício de aplicação...
Cogitado por: Mauro a novembro 20, 2005 10:51 PM
Estive a testar o método do tiro ao alvo. Com um total de mil milhões de disparos, obtive para PI o valor aproximado de 3.141521. Não é propriamente um método eficiente, mas não deixa de ser divertido...
Cogitado por: . a novembro 21, 2005 12:03 AM
O teu comentário pôs-me a cogitar... estiveste a testar o método do tiro ao alvo... sem estilhaços, espero ;) Fizeste um programa informático para gerar números aleatórios numa grelha que simula um alvo quadrado? Nada mau como aproximação de Pi. Em termos das aproximações históricas de Pi, é um valor nada mau. Fez-me lembrar a produção do triângulo do Sierpinski a partir da geração de números aleatórios. Já não me recordo bem como é, mas é um resultado interessante e, depois de mais aprofundadamente relembrado, um bom futuro artigo...
Cogitado por: Mauro a novembro 21, 2005 12:14 AM
Referes-te à figura obtida com base na determinação do ponto médio do segmento de recta que liga um vértice do triângulo, escolhido ao acaso, a um ponto semente, passando o referido ponto médio a constituir a nova semente a usar na iteração seguinte?
Quanto ao programa do tiro ao alvo, considero o quadrado unitário definido pelos vértices opostos (0, 0) e (1, 1), e o quarto de círculo com centro em (0, 0), e extremos em (1, 0) e em (0, 1). Com base numa função geradora de números pseudo-aleatórios compreendidos no intervalo [0, 1[ produzo, para cada tiro, as coordenadas (x, y) do mesmo. Em seguida verifico se a distância ao centro não é superior à unidade (ou seja, se x^2 + y^2 <= 1; não é preciso calcular a raiz quadrada). Se assim for, o tiro atingiu o quarto de círculo, pelo que trato de incrementar de uma unidade um contador dos tiros que acertaram o alvo. No fim, estimo o valor de PI como sendo igual a 4 * número de tiros que acertaram o alvo / número total de tiros. Se estiveres interessado no programa, terei muito gosto em to oferecer.
Cogitado por: . a novembro 21, 2005 12:44 AM
Vale, caro «.», da forma de gerar aleatoriamente o triângulo de Sierpinski. A forma tradicional é dividir um triângulo equilátero em 4 triângulos igualmente equiláteros e retirar o do meio. Repete-se para cada um dos triângulos seguintes e de novo para os triângulos deles resultantes. Essa é a forma tradicional. Mas ao que eu me refiro no comentário é forma aleatória que, de forma «mágica», acaba por ser o dito triângulo. Gerando pontos aleatórios e usando uma regra algorítmica simples, obtém-se o triângulo de Sierpinski. Tenho mesmo de escrever um artigo sobre o assunto. Se bem que, se calhar, devia começar por escrever um que falasse de fractais... Quanto ao programa que referes, tenho curiosidade em vê-lo, sim. Está programado em que linguagem? Ando a ver se arranjo tempo para me dedicar à programação, mas surge sempre algum projecto que mo impede... O e-mail é mauro.maia@sapo.pt (como se pode aduzir da «assinatura» em cada artigo). Obrigado, «.».
Cogitado por: Mauro a novembro 21, 2005 10:56 AM
Bem sei. Trata-se do método que eu tentei, sem êxito, explicar: definem-se os vértices de um triângulo, e um ponto qualquer (designado por semente) no interior do mesmo. Em seguida itera-se várias vezes (quantas mais, melhor) o seguinte procedimento:
1 - escolhe-se aleatoriamente um dos vértices do triângulo;
2 - determina-se o ponto médio do segmento de recta definido pelo vértice escolhido e pelo ponto-semente;
3 - desenha-se o referido ponto médio;
4 - toma-se o ponto médio para o novo ponto-semente e repete-se o procedimento.
E o triângulo lá aparece por acção desta poeira fractal de perlimpimpim... :)
Cogitado por: . a novembro 21, 2005 11:12 AM
O programa do tiro ao alvo está escrito em C. Vou passar-to no comentário a seguir, pois é bastante pequeno. Receio, no entanto, que fique desformatado, devido à substituição dos tabs e das mudanças de linha por espaços. Se tiveres problemas, avisa.
Quanto ao triângulo de Sierpinski, também te posso ceder um programa, escrito em C e OpenGL, que o desenha. Mas este já não é assim tão pequeno...
Cogitado por: . a novembro 21, 2005 11:17 AM
#include
#include
#include
#define RANDOM ((double) rand() / (double) RAND_MAX)
int main(void)
{
long i, m = 0, n;
double x, y;
srand((unsigned) time(NULL));
printf("Introduza o numero de disparos: ");
scanf("%ld", &n);
for (i = 0; i < n; i++) {
x = RANDOM;
y = RANDOM;
if (x * x + y * y <= 1.0)
m++;
}
printf("PI = %lf\n", 4.0 * (double) m / (double) n);
return 0;
}
Cogitado por: . a novembro 21, 2005 11:23 AM
Agradeço-te o programa em C, «.». Infelizmente é uma linguagem que nunca utilizai nem tenho um compilador para a mesma. Sei BASIC (dos meus tempo com o ZX Spectrum), sei Pascal (do meus tempos na Universidade) mas nada de C. Tenho de ver é se finalmente dou uso (a prendo autodidaticamente) ao Visual Basic que tenho. O programa que referes é de facto muito simples (e até perceptível em termos de Inglês), não tenho é como o entender ao nível da programação (ou seja, não tenho como o puder reestruturar e moldar, verdadeira definição de entendimento). Mas o problema parece simples o suficiente para ser facilmente programável. É como te digo, tem é faltado o tempo.... (A questão do OpenGL então, peço desculpa pela minha indesculpável ignorância, é que nem tenho ideia de como é...)
Cogitado por: Mauro a novembro 21, 2005 08:29 PM
Se aprendeste Pascal, aprenderias C com igual facilidade, pois ambas são linguagens estruturadas e têm muitos pontos em comum. Pese embora o facto de o C não ser, hoje em dia, eventualmente a melhor linguagem em termos do investimento do tempo e do esforço necessários à sua aprendizagem. Se, mesmo assim, estiveres interessado, posso comentar cuidadosamente os programas e enviar-tos por correio electrónico, mas serviriam apenas como exemplos de aplicação, e não propriamente como ponto de partida para uma aprendizagem adequada da linguagem. Para isso sugiro o livro:
"The C Programming Language" (2nd edition), Brian Kernigham e Dennis Ritchie, Prentice Hall, 1988, ISBN 0-13-110362-8 (paperback), 0-13-110370-9 (hardback).
Também existe uma edição traduzida para o português do Brasil:
"C, a Linguagem de Programação: padrão ANSI", Editora Campus, ISBN 85-7001-586-0.
Quanto ao compilador terias, de facto, de arranjar um, caso quisesses programar nesta linguagem. Existe, por exemplo, o Visual C++ da Microsoft, mas também há compiladores open-source que são de graça.
Quanto ao OpenGL, trata-se de uma interface (a designação correcta é API - Application Programming Interface) que permite criar gráficos, 2D e (sobretudo) 3D, de uma forma independente da plataforma utilizada. É muito usada, a par do Direct3D, no desenvolvimento de jogos de computador. É open-source e pode ser encontrada no site do OpenGL, em www.opengl.org
Cogitado por: . a novembro 21, 2005 09:32 PM
Obrigado pelas indicações, «.». Como bem notaste, a questão é o rácio relevância actual/tempo para aprender da linguagem C. Eu tenho o compilador de Pascal, porventura ser-me-ia fácil cria um programa em Pascal que simulasse a probabilidade do tiro ao alvo. Mas gostava mesmo é de ter tempo/disponibilidade para aprender visual basic, para puder fazer um programa com um aspecto mais «moderno». Apesar de apreciar e saber usar bem uma linha de comandos, é já um aspecto demasiado antiquado para o programa apelar visualmente, tal como o faz intelectualmente. E não deixarei de verificar o link do OpenGl. Obrigado pelas indicações.
Cogitado por: Mauro a novembro 21, 2005 10:06 PM
louis vuitton bags: A Fashion Genre! Among all brands of handbags that are currently available in the market, one brand name that mostly catches women's attention is louis vuitton outlet. No woman can deny this fact, since its classic design and distinct color always come in style and fashion.http://www.gifico.com Louis Vuitton Sale are considered as every woman's dream to own. Here has LV estore which will fulfill your dream at an affordable price. Just browsing our page, you will find your ideal handbags to fit your every occasion.
Cogitado por: louis vuitton a abril 21, 2010 03:34 AM
|