Introdução

Esta nota técnica apresenta uma derivação de limites superior para \(\pi\) a partir de polígonos regulares circunscrito e inscrito em um círculo de raio \(1\). Arquimedes (287-212 AC) foi um dos pioneiros no uso desse método, considerando polígonos regulares de 96 faces.

É apresentada uma solução para o problema de precisão com a utilização de variáveis com cerca de 100 digitos significativos, viabilizada pelo package Rmpfr do R. Esse procedimento possibilitou a obtenção de uma estimativa para \(\pi\) correta nas primeiras 20 decimais.

Limite superior para \(\pi\) por hexágonos circunscrito e inscrito

Considere a figura a seguir, contendo um polígono regular com 6 faces (hexágono) circunscrito e inscrito num círculo com raio com dimensão \(1\).

Fig 1: Hexágono circunscrito e inscrito no círculo

Pela geometria da Fig 1, podemos considerar que \(Phi\) é o perímetro do hexágono inscrito na circunferência e \(Phe\) o perímetro do hexágono circunscrito, com isso pode-se concluir que o perimetro da circunferência será:

Logo:

Como \(r=1\), e dividindo todos os termos por \(2\), tem-se que \(\pi\) está entre:

Para determinar \(Phe\), para o cálculo do limite superior de \(\pi\), usa-se a semelhança de triângulos, mostrado na Fig 2.

Fig 2: Triângulos semelhantes representados nos hexágonos circunscrito e inscrito no círculo.

Através da Fig 2, pode-se afirmar que o triângulo retângulo \(ABF\) é semelhante ao triângulo retângulo \(ADG\). Com isso, pode-se determinar o lado hexágono circunscrito Se, como sendo a relação:

Pela Fig2 tem-se que \(AG=r=1\), \(BF=Si/2\) e \(DG=Se/2\), assim:

Para determinar o \(AF\) usa-se o Teorema de Pitagoras para o triangûlo ADF:

Logo:

Substituindo Si=1, tem-se:

Determinando Phe:

Concluindo-se que:

Melhores limites com polígonos de mais lados

O mesmo argumento utilizado na Fig 2 para a construção do dodecágono a partir do hexágono pode ser repetido para construção de um polígono regular inscrito de 24 faces a partir do dodecágono, e assim sucessivamente, dobrando-se a cada passo o número de faces (48, 96, 192 … ).

Para facilitar a construção, considere a sequência de polígonos regulares internos caracterizados pelo índice \(t=1,2,\ldots,\) em que o número de lados \(L_t\) é definido por * \(L_t=3\times 2^t\) Com essa definição \(t=1\) corresponde ao hexágono, \(t=2\) ao dodecágono e assim sucessivamente, dobrando-se o número de lados, na medida que \(t\) cresce uma unidade. E utilizando o mesmo argumento de:

Em que Si pode ser determinado como demostrado na nota técnica do prof. Adriano Azevedo Filho, disponivel em: http://rpubs.com/adriano/limites_pi. Como sendo:

E assim determinar Phe, representado por \(Phe=3\times 2^tSe_t\)

Com isso encontrar o limite superior de \(\pi\).

acha_limsup<-function(n){
  si<-1
  se<-((2*sqrt(3))/3)
  for(i in 1:n){
    L<-3*2^i
    p<-L*se
    cat(sprintf("t= %2i Lados: %10.0f Lim inf: %0.17f dif %0.17f \n",i,L,p/2,p/2-pi))
    si<-sqrt(2-sqrt(4-si^2))
    se<-si/(sqrt(1-((si^2)/4)))
  }
}

Testando a função definida acima com \(t=5\), correspondente ao polígono de 96 faces, computamos o limite superior obtido por Arquimedes por

acha_limsup(5)
## t=  1 Lados:          6 Lim inf: 3.46410161513775439 dif 0.32250896154796127 
## t=  2 Lados:         12 Lim inf: 3.21539030917347279 dif 0.07379765558367968 
## t=  3 Lados:         24 Lim inf: 3.15965994209749912 dif 0.01806728850770600 
## t=  4 Lados:         48 Lim inf: 3.14608621513144016 dif 0.00449356154164704 
## t=  5 Lados:         96 Lim inf: 3.14271459964538824 dif 0.00112194605559512

A função mostra, além do valor computado para o limite superior, a cada passo, a diferença entre esse valor e o valor de \(pi\) definido internamente pelo R, através da constante \(pi\).

Problemas numéricos com os valores computados

Caso aumentar arbitrariamente \(t\) no procedimento apresentado no último parágrafo, observa-se, a partir de um certo ponto (\(t=16\)), que os valores obtidos para o limite indicam alguma anomalia no processo computacional.

Isso se deve à representação finita dos números pelos computadores, em geral limitada a 15 a 16 digitos significativos, em cálculos envolvendo a chamada precisão dupla, algo que pode trazer dificuldades aos cálculos realizados.

Uma solução possível para o problema pode envolver o uso de recursos do R para cálculos utilizando um número arbitrário de digitos significativos nos cálculos.

A seguir apresenta-se uma nova versão da função definida anteriormente, que considera cálculos com \(k\) digitos significativos, onde \(k\) é um argumento da função. Usamos na função a constante \(\pi\) definida no package Rmpfr que também pode ser definida com um número arbitrário de digitos significativos, para fazer as comparações. A função mpfr do package define um número com um número de bits de interesse e esse número de bits é propagado para todos números e operações que dependem desse número. Na função o número de bits é calculado a partir de um número de digitos de interesse \(k\), a partir de recomendações na documentação do package.

acha_limsup2<-function(n,k){
  require(Rmpfr)
  bits<-k*log2(10)
  si<-mpfr(1,bits)
  se<-mpfr(((2*sqrt(3))/3),bits)
  p<-mpfr(0,bits)
  novopi<-Const("pi",bits)
  for(i in 1:n){
    L<-3*2^mpfr(i,bits)
    p<-L*se
    cat(sprintf("t= %2i Lados: %12.0f Lim inf: %s dif %s \n",i,L,format(p/2,24),format(p/2-novopi,10)))
    si<-sqrt(2-sqrt(4-si^2))
    se<-si/(sqrt(1-((si^2)/4)))
  }
}

Testando a seguir a nova função considerando 100 digitos significativos nos cálculos, para obtenção de um limite superior para \(\pi\) considerando \(t=35\), um polígono regular com 103079215104 lados. Nesse caso, as decimais de \(\pi\) estão corretas nas primeiras 21 casas decimais.

acha_limsup2(35,100)
## t=  1 Lados:            6 Lim inf: 3.46410161513775438635321 dif 0.3225089615 
## t=  2 Lados:           12 Lim inf: 3.21539030917347247767064 dif 0.07379765558 
## t=  3 Lados:           24 Lim inf: 3.15965994209750048331663 dif 0.01806728851 
## t=  4 Lados:           48 Lim inf: 3.14608621513143497109810 dif 0.004493561542 
## t=  5 Lados:           96 Lim inf: 3.14271459964536829816886 dif 0.001121946056 
## t=  6 Lados:          192 Lim inf: 3.14187304997982387174549 dif 0.0002803963900 
## t=  7 Lados:          384 Lim inf: 3.14166274705684852622449 dif 7.009346706e-5 
## t=  8 Lados:          768 Lim inf: 3.14161017660468953876347 dif 1.752301490e-5 
## t=  9 Lados:         1536 Lim inf: 3.14159703432152615199322 dif 4.380731733e-6 
## t= 10 Lados:         3072 Lim inf: 3.14159374877135202797598 dif 1.095181559e-6 
## t= 11 Lados:         6144 Lim inf: 3.14159292738509703354801 dif 2.737953038e-7 
## t= 12 Lados:        12288 Lim inf: 3.14159272203861381834280 dif 6.844882058e-8 
## t= 13 Lados:        24576 Lim inf: 3.14159267070199804787702 dif 1.711220481e-8 
## t= 14 Lados:        49152 Lim inf: 3.14159265786784441984401 dif 4.278051181e-9 
## t= 15 Lados:        98304 Lim inf: 3.14159265465930603249722 dif 1.069512794e-9 
## t= 16 Lados:       196608 Lim inf: 3.14159265385717143688936 dif 2.673781984e-10 
## t= 17 Lados:       393216 Lim inf: 3.14159265365663778806420 dif 6.684454960e-11 
## t= 18 Lados:       786432 Lim inf: 3.14159265360650437586271 dif 1.671113740e-11 
## t= 19 Lados:      1572864 Lim inf: 3.14159265359397102281264 dif 4.177784350e-12 
## t= 20 Lados:      3145728 Lim inf: 3.14159265359083768455014 dif 1.044446087e-12 
## t= 21 Lados:      6291456 Lim inf: 3.14159265359005434998452 dif 2.611115219e-13 
## t= 22 Lados:     12582912 Lim inf: 3.14159265358985851634311 dif 6.527788047e-14 
## t= 23 Lados:     25165824 Lim inf: 3.14159265358980955793276 dif 1.631947012e-14 
## t= 24 Lados:     50331648 Lim inf: 3.14159265358979731833017 dif 4.079867529e-15 
## t= 25 Lados:    100663296 Lim inf: 3.14159265358979425842953 dif 1.019966882e-15 
## t= 26 Lados:    201326592 Lim inf: 3.14159265358979349345436 dif 2.549917206e-16 
## t= 27 Lados:    402653184 Lim inf: 3.14159265358979330221057 dif 6.374793015e-17 
## t= 28 Lados:    805306368 Lim inf: 3.14159265358979325439963 dif 1.593698254e-17 
## t= 29 Lados:   1610612736 Lim inf: 3.14159265358979324244689 dif 3.984245634e-18 
## t= 30 Lados:   3221225472 Lim inf: 3.14159265358979323945870 dif 9.960614085e-19 
## t= 31 Lados:   6442450944 Lim inf: 3.14159265358979323871166 dif 2.490153521e-19 
## t= 32 Lados:  12884901888 Lim inf: 3.14159265358979323852490 dif 6.225383803e-20 
## t= 33 Lados:  25769803776 Lim inf: 3.14159265358979323847821 dif 1.556345951e-20 
## t= 34 Lados:  51539607552 Lim inf: 3.14159265358979323846653 dif 3.890864877e-21 
## t= 35 Lados: 103079215104 Lim inf: 3.14159265358979323846362 dif 9.727162193e-22