Loading web-font TeX/Math/Italic

sábado, 12 de janeiro de 2019

Calculando "pi"

Existem muitas fórmulas interessantes para o cálculo da famosa constante \pi. Essa constante é o resultado da razão entre o comprimento do círculo pelo seu diâmetro:
\pi = \frac{comprimento-do-circulo}{diametro}

Claro que a melhor forma de obter o valor de \pi não é construindo um círculo, medindo o seu comprimento e depois dividindo pelo diâmetro. Erros de construção e medição iriam afetar o resultado final. Entre as fórmulas conhecidas para o cálculo de podemos citar (Gregory e Leibniz, Beeler et al. e Bailey et al.):
\pi/4 = \sum_{k=1}^{\infty} \frac{(-1)^{k+1}}{2k-1}
\pi/2 = 1+\frac{1}{3} + \frac{1.2}{3.5}+ \frac{1.2.3}{3.5.7} + \frac{1.2.3.4}{3.5.7.9} ...
\pi=\sum_{n=0}^{\infty} (\frac{4}{8n+1}-\frac{2}{8n+4}-\frac{1}{8n+5}-\frac{1}{8n+6}).(\frac{1}{16})^n.

Entretanto, não iremos usar nenhuma dessas fórmulas para o cálculo de \pi. Usaremos o método de Newton-Raphson (para saber sobre esse método ver aqui) para encontrar zeros de uma função para calcular numericamente o valor de \pi. Resumidamente, o método de Newton consiste no seguinte algoritmo: x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}
sendo x_0 o chute inicial da raiz da função f(x). Esse chute não pode ser muito distante da raiz da função. No caso, escolhendo a função \sin(x) = 0 e como chute inicial x_0 = 3, usamos fórmula iterativa
x_{n+1} = x_n - \tan(x_n)

e obtemos:

 n:      valor x_n:                             erro (x_n - \pi):
   1.    3.1425465430742778316642  - 0.0009538894844847156662
   2.    3.1415926533004769893864    0.0000000002893161266115
   3.    3.1415926535897931159980    0.

O código Scilab é bem simples:

x=3
for k=1:3
    x=x-  tan(x);
    e=%pi-x;
    disp([k,x,e]);
end

Nenhum comentário:

Postar um comentário