quinta-feira, 10 de setembro de 2015

Girino Vey me lembrou que ontem fez 68 anos de quando a Grace Hopper achou uma mariposa presa dentro do relé do computador que ela usava. Tem gente que acha que foi aí que surgiu o termo "bug" (não foi), tem gente que acha que foram 70 anos ao invés de 68 (não foram). Mas para mim o mais legal é o que ela estava fazendo nesse dia!

 Olha só a página do diário dela. Às 8:00 ela começou a calcular um arco tangente, a computação terminou às 10:00! Isso foi usando um computador que pegava um andar inteiro do prédio. Hoje em dia meu celular de bolso calcula um arco tangente em nanosegundos.

 E a parte bacana é que ela anotou os resultados! Confere no cantinho, ela estava calculando atan(1.27), o resultado foi 9.037847025e-1, comparado com o valor de referência de 9.037846995e-1 ela achou bom o suficiente e aprovou.

 Mas olha só, o valor de referência dela estava errado :) O certo é 9.037846992e-1, erro no último dígito. E eu fiquei sem saber qual raio de algoritmo ela estava rodando naquele dia.

De primeiro eu pensei que era a série de Taylor do atan, mas isso não foi porque essa série só converge dentro do círculo unitário, e 1.27>1.

Table[InputForm[Sum[(-1)^k *x^(2 k + 1)/(2 k + 1), {k, 0, n}]], {n, 1, 20}]

Aí eu pensei que foi aquela série do Euler que converge com fatorial ao invés de convergir com o inverso. Mas não foi também, porque essa série converge monotonicamente por baixo, e a aproximação dela foi por cima:

Table[InputForm[ Sum[2^(2 k)*(k!)^2*x^(2 k + 1)/(2 k + 1)!/(1 + x^2)^(k + 1), {k, 0, n}]], {n, 1, 60}]

Que resta? Uma idéia é a série de Taylor de atan(1+x), aí você usa x=0.27. Eu fiz o teste e deu 9.037847049e-1, que não é bem o valor, mas é parecido. Mas pode ser porque os erros acumulam diferente, eu usei um computador binário, ela usava um computador decimal.

Table[InputForm[ N[Pi/4] + I Sum[((-1 - I)^k - (I - 1)^k)/(2^(k + 1)*k)*(x - 1)^k, {k, 1, n}]], {n, 1, 60}]

 Ainda não achei uma fórmula que bate com a dela, só se foi uma aproximação de Newton, e aí fica difícil achar o valor exato sem saber qual chute original ela usou de semente.

2 comentários:

  1. Mas então... o termo "bug" surgiu de onde? Já li em algum lugar que foi com o Thomas Edison...

    ResponderExcluir
  2. Mas então... o termo "bug" surgiu de onde? Já li em algum lugar que foi com o Thomas Edison...

    ResponderExcluir