Pi: um número irracional e fascinante


Francisco J. Alves de Aquino, professor CEFET-Ce, mestre em Engenharia Elétrica


Resumo -- neste trabalho iremos mostrar algumas das principais características e utilidades do número p, algumas fórmulas que podem ser utilizadas para seu cálculo e um pouco da sua história. Apesar da sua conhecida antigüidade, o número p é ainda fonte de pesquisas em diversas áreas da matemática e da informática.

 

I.     INTRODRUÇÃO

 

O número p está presente em inúmeras situações práticas e muitos povos antigos chegaram a encontrar um valor aproximado para esta constante.

 

Os primeiros a se depararem com este número foram os antigos egípcios e babilônios. Eles atribuíam ao p o valor aproximado de “3”, não se pode afirmar com certeza se eles descobriram isto ao perceber que a razão entre o comprimento de círculo e o seu diâmetro era uma constante que não dependia do tamanho da circunferência. Talvez a motivação tenha sido o cálculo de áreas circulares ou volumes de esferas. Os mais antigos documentos que temos e que tratam explicitamente de p são tabuletas mesopotâmicas de cerca de 2.000 AC [1].

 

Entretanto, foram os gregos que iniciaram uma pesquisa mais sistemática e científica em busca do valor exato de p. O grande físico-matemático grego Arquimedes se dedicou a este trabalho, e acabou por quase alcançar os fundamentos do cálculo infinitesimal. Utilizando um processo de aproximação de polígonos inscritos e circunscritos em um círculo, ele chegou a conclusão que o p estava entre os valores 22/7 e 223/71:

 

3 10/71 < p < 3 1/7

II.     Algumas Fórmulas para Cálculo do p

 

Muitas fórmulas podem ser utilizadas para calcular p, algumas delas foram deduzidas ainda no início da Idade Moderna [2]. Segue uma tabela com algumas destas fórmulas.

 

Tabela 1. Algumas das fórmulas para cálculo de p

 

Algumas destas fórmulas têm uma convergência computacional muito rápida, outras são especialmente lentas e inadequadas tanto para o cálculo manual quanto para o cálculo por computador.

 

Dezenas de outros matemáticos e cientistas, além do grego Arquimedes, tentaram calcular p sempre com o maior número possível de casas decimais, ao longo dos tempos, como podemos apreciar nas Tabelas 2 e 3 [3].

 

Matemático

Data

Casas

Comentário

Rhind papyrus

2000BC

1

4 (8/9)2

Archimedes

250BC

3

3.1418

Vitruvius

20BC

1

25/8

Chang Hong

130

1

Ö10

Ptolemy

150

3

3.14166

Wang Fan

250

1 

142/45

Liu Hui

263

5

3.14159

Tsu Ch'ung Chi

480

7

355/113

Aryabhata

499

4

62832/2000

Brahmagupta

640

1

Ö10

Al-Khwarizmi

800

4

3.1416

Fibonacci

1220

3

3.141818

Madhava

1400

11

3.141592...

Al-Kashi

1430

14

3.141592...

Otho

1573

6

3.1415929

Viète

1593

9

3.141592...

Romanus

1593

15

3.141592...

Van Ceulen

1596

35

3.141592...

Newton

1665

16

3.141592...

Sharp

1699

71

 

Seki Kowa

1700

10

 

Kamata

1730

25

 

Machin

1706

100

 

De Lagny

1719

127

Somente 112 corretas

Takebe

1723

41

 

Matsunaga

1739

50

 

von Vega

1794

140

Somente 136 corretas

Rutherford

1824

208

Somente 152 corretas

Strassnitzky

1844

200

 

Clausen

1847

248

 

Lehmann

1853

261

 

Rutherford

1853

440

 

Shanks

1874

707

Somente 527 corretas

Ferguson

1944

620

 

Tabela 2. Cálculo manual do p

 

Alguns desses calculadores de p ficaram famosos. na Alemanha, por exemplo, o número p ficou conhecido por muito tempo como número de Ceulen. William Shanks (1812 – 1882) teve a paciência de calcular o p com 707 casas decimais, mas, infelizmente, ele cometeu pequeno erro que foi percebido por Ferguson. Shanks e Ferguson usaram as seguintes fórmulas para cálculo de p:

 

(14)

 

(15)

 

 

Nome

Ano

No. dígitos

Máquina

G. Reitwiesner

1949

2.037

ENIAC

S.C. Nicholson

J. Jeenel

1954

3.092

NORC

G.E. Felton

1957

7.480

Pegasus

F. Genuys

1958

10.000

IBM 704

G.E. Felton

1958

10.020

Pegasus

J. Guilloud

1959

16.167

IBM 704

W. Shanks &

T.W. Wrench Jr

1961

100.265

IBM 7090

J. Guilloud &

J. Filliatre

1966

250.000

IBM 7030

J. Guilloud &

M. Dichampt

1967

500.000

CDC 6600

J. Guilloud &

M. Bouyer

1973

1.001.250

CDC 7600

K. Miyoshi &

Y. Kanada

1981

2.000.036

FACOM M-200

J. Guilloud

1981-82

2.000.050

not known

Y. Tamura

1982

2.097.144

MELCOM 900II

Y. Tamura &

Kanada

1982

4.194.288

HITAC M-280H

Y. Tamura &

Kanada

1982

8.388.576

HITAC M-280H

Y. Kanada,

S. Yoshino &

Y. Tamura

1983

16.777.206

HITAC M-280H

Y. Ushiro &

Y. Kanada

1983.10

(*)10.013.395

HITAC S-810/20

W. Gosper

1985.10

17.526.200

Symbolics 3670

D.H. Bailey

1986.1

29.360.111

CRAY-2

Y. Kanada &

Y. Tamura

1986.9

33.554.414

HITAC S-810/20

Y. Kanada &

Y. Tamura

1986.10

67.108.839

HITAC S-810/20

Y. Kanada,

Y. Tamura,

Y. Kubo, etc.

1987.1

134.214.700

NEC SX-2

Y. Kanada &

Y. Tamura

1988.1

204.326.551

HITAC S-820/80

G. Chudnovsky

D. Chudnovsky

1989.5

480.000.000

CRAY-2  IBM-3090/VF

G.Chudnovsky

D.Chudnovsky

1989.6

535.339.270

IBM 3090

Y. Kanada &

Y. Tamura

1989.7

536.870.898

HITAC S-820/80

G.Chudnovsky

D.Chudnovsky

1989.8

1.011.196.691

IBM 3090

Y. Kanada &

Y. Tamura

1989.11

1.073.740.799

HITAC S-820/80

G. Chudnovsky

D. Chudnovsky

1991,8

2.260.000.000

Home made parallel computer

D. Takahashi &

Y. Kanada

1995.6

3.221.220.000

HITAC S-3800/480

G.Chudnovsky

D.Chudnovsky

1994,5

4.044.000.000

New home made parallel computer

D. Takahashi &

Y. Kanada

1995.8

4.294.960.000

HITAC S-3800/480

Tabela 3. Obtenção do p com uso de computadores

 

III.     Como se obter algumas dessas fórmulas

 

Muitos matemáticos deram contribuições na forma de novas fórmulas para o cálculo de p. Entre eles podemos citar: Arquimedes, Francois Viète, John Wallis, Lord Brouncker, Isaac Newton, Machin, Leonard Euler, Leibnitz, e muitos outros. Algumas dessas fórmulas são muito recentes, tais como as descobertas por Srinivasa Ramanujan (1914), Louis Comtet (1974), Jonathan e Peter Borwein (1989), e Simon Plouffe (1996). Entre as fórmulas mais antigas são particularmente notáveis:

 

(16)

 

 

(17)

 

Além de fórmulas, surgiram vários algoritmos para o cálculo rápido de p. Esses algoritmos se mostram muito fáceis de serem implementados em qualquer linguagem, como FORTRAN, C, Pascal ou BASIC.

 

O método utilizado por Arquimedes foi de aproximar o comprimento círculo pelo perímetro de polígonos regulares inscritos (limite inferior) e circunscritos (limite superior), ver figuras 1 e 2 [5]. Além disso, esse método mostra que a área do circulo pode ser calculada por: AC = p . r2.

 

 

 

 

 

 

 

 

 


Figura 1. Círculo com hexágonos inscrito e circunscrito

 

Figura 2. Área do círculo aproximada pela de um polígono

 

(18)

 
A área de um quarto do círculo pode ser calculada por meio da seguinte integral:

A raiz pode ser expandida na forma de uma série de potências, como segue:

para a = -x2 e n = ½:

logo a integral resulta em:

e p/4 pode ser calculado por (equação 3):

 

Essa expressão converge rapidamente para p. A descoberta de um das fórmulas de Euler (equação 5) para o cálculo de p é mostrada a seguir [6].

 

Se a e b são raízes de uma equação, esta pode ser posta na forma:

Substituindo-se x por x2, a por a2 e b por b2, fica:

Cujas as raízes são ±a, ±b, ficando claro que o coeficiente de x2 é a soma dos inversos dos quadrados das raízes. Essa forma de escrever pode ser expandida para equações com grau superior:

Considere agora equação transcendente:

sen(x) = 0

Cujas as raízes são: 0, ± p, ± 2p, ± 3p, ... Dividindo-se a equação por x, elimina-se a raíz 0:

Daí resulta que:

Usando as considerações acima, notamos que:

Cabe uma observação final: fazendo-se x = p/2 podemos obter o produto de Wallis:

 

 

A fórmula encontrada por Brouncker, usa uma espécie de fração contínua. Qualquer número racional pode ser posto em na forma de uma fração contínua finita [7]. Por exemplo:

É devido Euler uma fórmula notável que relaciona algumas das principais constantes matemáticas:

IV.     Exemplos de cálculo computacional de pi

O cálculo computacional do p começou tão logo surgiram os primeiros computadores. A Tabela 3 [3, 4] mostra a “verdadeira” corrida que ainda ocorre na busca pelo maior número possível de casas decimais para p. Atualmente (2001), esse número chega aos bilhões de casas decimais !

 

Foi escrito um programa em Delphi (pascal) para cálculo do p usando três das fórmulas mostradas na Tabela 1, com um outro método, o algoritmo de Gauss-Legendre, cuja convergência é muito rápida, o método de Monte Carlo (simulação com números aleatórios) e a fórmula de Bailey-Borwein-Plouffe. A Figura 3 mostra a interface do programa.

Figura 3. Programa para cálculo computacional de p

Cada método apresenta uma forma de convergência própria. O algoritmo de Gauss-Legende foi, entre os implementados o que apresentou melhor resultado e em menor número de iterações, apenas 6. A Figura  4 mostra a convergência para as equações 3 e 6.

 

(a)

(b)

Figura 4. Convergência.

 

Um outro algoritmo que pode calcular o valor de p muito rapidamente é o de Salmin-Brent, de 1976. Os valores inciais são: a0=1, b0=1/Ö2, s0=b0, k=1,2,3...

A fórmula (equação 20) devida aos pesquisadores, descoberta muito recentemente, Bailey-Borwein-Plouffe  merece alguns comentários.

§         gera d-ésino dígito hexadecimal (base 16) de p diretamente, sem precisar calcular os dígitos anteriores;

§         é simples de se implementar em um computador;

§         Não requer software com aritmética de múltipla precisão;

§         requer pouca memória;

§         apresenta um custo computacional que cresce apenas um pouco mais rapidamente que o índice d.

 

(20)

 

A esta altura pode-se perguntar: “Afinal, qual o valor numérico de p com n casas decimais ?”. O valor de p com 36 casas decimais é:

3,141.592.653.589.793.238.462.643.383.279.502.884 ...

V.     Conclusão

O número p ainda desperta um forte interesse, tanto dos especialistas, quanto dos leigos. Sendo possível se encontrar trabalhos e publicações originais recentes sobre este assunto na literatura técnica e também na não especializada.

 

VI.     Referências bibliográficas

 

[1]http://athena.mat.ufrgs.br/~portosil/aplcom1a.html

[2] Spiegel, Murray Ralph, Análise de Fourier, São Paulo, McGraw-Hill do Brasil

[3] http://www.cecm.sfu.ca/~pborwein/

[4] Arquivo de “Help” do programa “Super PI for Windows (ver 1.1)”, Kanata Lab University of Tokyo.

[5] Conhecer Universal, vol. 5, pag. 772, Ed. Abril Cultural, 1981.

[6] Cálculo com Geometria Analítica, vol 2, G. F. Simmons, Ed. Makron Books, 1988.

[7] Qué es la Matemática ?, Richard Courant, Herbert Robbins, Ed. Aguilar, Madrid, 1958.

VII.     Anexo – Programa Delphi

 

procedure TForm1.Button1Click(Sender: TObject);

var

  v1,v2,v3,st,t3,p3,pic,a,b,t,x,y,erro : extended;

  nx,mx,nk,k,p : longint;

begin

  pic := 3.0;  a := 1;

  b := 1/sqrt(2);  t := 1/4;

  x := 1;  erro := 1.0;  nk := 1;

  repeat

    nk := nk + 1;    y := a;

    a := (a+b)/2;

    b := sqrt(b*y);

    t := t - x*(y-a)*(y-a);

    x := 2 * x;

    erro := pic;

    pic := (a+b)*(a+b)/(4*t);

    erro := erro - pic;

    edit1.text := FloatToStr(pic) + ' <> ' + IntToStr(nk);

  until (erro = 0)or(nk > 100);

  edit1.text := FloatToStrF(pic,ffGeneral,30,30);

 

mx:=900000;

p3:=1+1/6+3/40;

t3:=3/40;

v1:=1; v2:=3; v3:=5;

for k:=3 to mx do

begin

 nx:=2*k+1;  v3:=2*k-1;

 t3:=0.5*t3*v3/nx;

 t3:=t3*v3/k;

 p3:=p3+t3;

end;

p3:=2*p3;

edit2.text := FloatToStrF(p3,ffGeneral,30,30);

 

mx:=25000;

t3:=-1/40;

st:=1-1/6-1/40;

p:=2;

repeat

 v3:=t3;

 t3:=t3*(4*p*p-1)/(2*(2*p+3)*(p+1));

 st:=st+t3;

 p:=p+1;

until (p>mx)or(abs(t3)>abs(v3));

st:=4*st;

edit3.text := FloatToStrF(st,ffGeneral,30,30);

 

mx:=25000;

t3:=-1/56;

st:=1/3-1/10-1/56;

p:=2;

repeat

 v3:=t3;

 t3:=t3*(2*p-1)*(2*p+3)/(2*(2*p+5)*(p+1));

 st:=st+t3;

 p:=p+1;

until (p>mx)or(abs(t3)>abs(v3));

st:=16*st;

edit4.text := FloatToStrF(st,ffGeneral,30,30);

 

p := 0;

for k := 1 to 200000 do

  begin

  a := random;  b := random;

  x := sqrt(a*a+b*b);

  if x<1.0 then p:=p+1;

  end;

  v1 := p*4/k;

p := 0;

for k := 1 to 200000 do

  begin

  a := random;  b := random;

  x := sqrt(a*a+b*b);

  if x<1.0 then p:=p+1;

  end;

  v2 := 0.5*(v1 + p*4/k);

  edit5.text := FloatToStrF(v2,ffGeneral,10,10);

 

v1 := 0; a := 1;

for k := 0 to 30 do

  begin

    v1 := v1 + (4/(8*k+1)-2/(8*k+4)-1/(8*k+5)-1/(8*k+6))/a;

    a := a * 16;

  end;

edit6.text := FloatToStrF(v1,ffGeneral,30,30);

end;

 



O autor é professor do CEFET-Ce desde março de 1994, ministrando aulas de eletricidade, eletrônica, informática, rádio transmissão nos níveis médio, técnico e superior. Mestre em Engenharia Elétrica pela UFSC, em 1998.

Hosted by www.Geocities.ws

1