agosto 10, 2020

BitCuco

¡Hola Mundo!

Pi : Origen del Número π – ¡Incluye códigos en C!

pi
Tiempo de Lectura8 Minuto(s), 9 Segundo(s)
Anuncio / Advertisement

El número Pi (π) es uno de los números más famosos en las matemáticas básicas. La expresión de Pi es muy simple de forma aritmética: Se obtiene dividiendo la longitud de la circunferencia entre su diámetro, y equivale a la longitud desplegada de la circunferencia con relación a su diámetro, tal y como se muestra en la siguiente imagen:

Pi
De John ReidCC BY-SA 3.0, Enlace

Historia del número Pi (π)

El número Pi es un número irracional que fue adoptado hasta el siglo XVIII. Sin embargo ya se había ajustado una aproximación del número π desde la época de los egipcios. Podemos resumir la historia del número π empleando la siguiente cronología:

Tiempos Antiguos

  • Los egipcios utilizaban 256/81 como el valor de la circunferencia. Obtuvieron ese valor al calcular el área del círculo contenido en el Papiro de Rhind, dando un valor aproximado de Pi como 3.16.
  • Los babilonios obtuvieron el valor aproximado del número Pi haciendo la operación aritmética 3+1/8 = 3.125, contenido en la Tablilla de Susa.

Método de Arquímedes en los lados del polígono para calcular Pi

  • En la antigua Grecia, Arquímedes inscribió polígonos de 96 lados, obteniendo el valor del número Pi en el rango de 3+10/71 < π < 3+1/7, es decir entre los valores 3.1407 y 3.1428. Así queda formulado el método de Arquímedes para calcular el valor de Pi en base a los lados de un polígono regular con una cantidad de lados sumamente grande.
  • En el siglo II, Ptolomeo obtuvo un valor más preciso utilizando polígonos de 720 lados y 60 de circunferencia. Dando un valor Pi de 3.14166.
  • En el siglo III, el chino Liu Hui utilizó polígonos de 3072 lados. Obtuvo como valor del número Pi 3.14159.
  • En el siglo V, Tsu Ch’ung Chi utilizó 355/113 = 3.1415929 como valor del número Pi.
  • Siddhantas de la India, en el año 380 obtuvo una aproximación de Pi de 3 + 177/1250, es decir 3.1416.
  • En el año 1400, Aryabhata
    Anuncio / Advertisement
    obtiene un valor del número Pi de 11 cifras decimales.
  • Al-Khasi utilizó en 1429 un polígono de 3·228 lados y obtuvo así como valor del número Pi 3.14159265358979.
  • El francés Vieta utilizó en el siglo XVI un polígono con 3·217 lados, obteniendo un valor del número Pi 3.141592653.
  • Ludolf van Ceulen calculó con polígonos de 262 lados el valor del número Pi. Obtuvo aproximadamente 35 cifras.
circunferencia

Métodos de convergencia para Pi

A partir del siglo XVII, hubo varios matemáticos que emplearon otros métodos diferentes para hacer una aproximación mejor del número Pi, aunque sus métodos fueron de convergencia lenta. Algunos de los matemáticos más destacados son los siguientes:

  • John Wallis: Utiliza el producto infinito π/2 = 2/1 * 2/3 * 4/3 * 4/5 … muy lento.
  • Gottfried Leibniz: Utiliza la serie π/4 = 1 – 1/3 + 1/5 -1/7 + 1/9 – … para obtener el valor del número Pi.

Métodos de convergencia rápida para Pi

Después de estudiar los métodos de convergencia lenta, hubo otros matemáticos que buscaron formas de obtener una convergencia más rápida para obtener el valor del número Pi (π), entre los cuáles destacan los siguientes:

  • En 1706, John Machin propone la serie numérica π/4 = 4*arc tan (1/5) – arc tan (1/239), calculando 100 decimales de Pi.
  • Anuncio / Advertisement
  • En el mismo año, William Jones empieza a utilizar el símbolo número 16 del alfabeto griego (π) para denominar el valor pi. El símbolo se adoptó en forma general y es hasta ahora un símbolo ampliamente reconocido.
  • Leonard Euler propone varias fórmulas para mejorar la convergencia del valor Pi. Algunas de éstas fórmulas destacan las siguientes:
pi

Al obtener los inversos de los cuadrados converge, sin embargo Euler propone otra fórmula en 1738 que converge de forma más rápida.

 arc tan (1) = arc tan (1/2) + arc tan (1/3) =  π/4

Y en 1755 Euler descubrió otra fórmula de convergencia aún más rápida.

π/4 = 5*arc tan(1/7) + 2*arc tan(3/79)

circunferencia

3 Algoritmos para obtener el Número Pi (π)

Además de los métodos anteriores, os explicaré otros tres algoritmos para obtener el número Pi (π), y voy a incluir su implementación en el lenguaje de programación C.

Método Madhava-Leibniz para calcular π

El método Madhava-Leibniz es una serie matemática creada por Leibniz que converge en el cálculo del valor π. A pesar de ser una serie que converge de forma lenta, al usar una computadora para realizar los cálculos, el tiempo de convergencia se reduce drásticamente.

Código para calcular π por el Método Madhava-Leibniz

Por medio del método Madhava-Leibniz podemos calcular el valor de π utilizando n iteraciones, tal y como se puede mostrar en el segmento de código siguiente hecho en el lenguaje de programación C. Nota: pi es un typedef struct, previamente definido.

// Función mad_lei (Madhava-Leibniz)
pi mad_lei() { 
  pi result;
  // Inicializa contador
  cont=1; 
  // Inicializa p
  p=1.0; 
  if (k<21) { 
    // Si k<21 llama mad_lei21
    result=mad_lei21();
  } else { 
    // Si no sigue su curso normal
    while(cont<(k+1)) {
      // Procedimiento Madhava-Leibniz para encontrar Pi
      p+=(pow((-1.0 / 3.0),cont))/(2.0*cont+1.0);
      cont=(cont+1);
    }
    p=p*(sqrt(12));
    muestra(result); // Imprime resultado en pantalla
  }      
}
 
// Función mad_lei21 (llamada desde mad_lei)
pi mad_lei21() {
  while(cont<(k+1)) {
    // Igual que mad_lei hace el procedimiento
    p+=(pow((-1.0 / 3.0),cont))/(2.0*cont+1.0);
    cont=(cont+1);
  }
  p=p*(sqrt(12));
  printf("\nAproximacion de Pi con %d terminos es: ",k);
  printf("%lf\n",p);
}

Método BBP para el cálculo de π

El método Bailey–Borwein–Plouffe (llamado también BBP) es una fórmula reciente para calcular el valor de π. Fue descubierta en 1995 por Simon Plouffe y de allí adoptó el método el nombre de los autores del artículo en el que fue publicado, es decir David H. Bailey, Peter Borwein y Plouffe.

La fórmula del método BBP ha sido trascendental para mejorar la eficiencia de los algoritmos actuales para la obtención del valor π y es computacionalmente adaptable, como podemos ver en la fórmula siguiente:

pi

Aplicable a n dígitos, sin embargo también existe el caso general y es el siguiente:

pi

Código para calcular π por el Método BBP

Podemos utilizar la fórmula BBP para calcular el valor π utilizando n iteraciones. Para ello disponemos de la siguiente función desarrollada en C, para proporcionar soporte al desarrollo del algoritmo.

// Función BBF
pi BBP() { 
  pi result;
  // Iteración BBP
  p=(4.0-(1.0/2.0)-(1.0/5.0)-(1.0/6.0)); 
  while (cont < k) {
    p+=((1.0 /pow(16.0,cont)))*((4.0/(8.0*cont+1.0))-(2.0/(8.0*cont+4.0))-(1.0/(8.0*cont+5.0))-(1.0/(8.0*cont+6.0)));
    cont=(cont+1);
  }
  muestra(result); // Imprime resultados
}               

Método sencillo para aproximar π

Como un tercer ejemplo, podemos aproximar el valor de π utilizando una forma sencilla de aproximación, empleando la fórmula:

p = (p*((1.0*x) / (1.0*y)))

Con ésta fórmula, siendo x el numerador y y el denominador, podemos dar una aproximación del valor Pi (π) utilizando n iteraciones por medio de una fórmula fácil de entender.

Código del método sencillo para aproximar Pi

Para calcular el valor de π utilizando el método sencillo, solamente requerimos implementar la función en el lenguaje C, en donde al igual que las funciones anteriores, obtenemos la aproximación de π en base al número de iteraciones deseadas.

// Aproximación sencilla de Pi
pi sencilla() {
  pi result;
  int num, den; // Declara variables locales
  num=2; // Acumulador para numerador
  den=3; // Acumulador para denominador
  p=1.0; // inicializa p
  if (k<=0) { 
    // Hace el procedimiento sencillo
    p=0.0;
  }
  else
  {    
    while (cont < k)
    {
      p=(p*((1.0*num)/(1.0*den)));
      cont=cont+1;
      if (cont<k) {
        num=num+2;
        p=(p*((1.0*num)/(1.0*den)));
        den=den+2;
        cont=cont+1;
      }
    }
    p=(p*4);
  }
}

Conclusiones

El cálculo de Pi (π) ha sido un problema que ha trascendido por miles de años. La razón principal se debe a que es un número irracional y no tiene un método perfecto para obtener el valor de Pi de forma tradicional. Por esa razón se han investigado nuevos métodos para el cálculo del valor Pi.

Con la llegada de las computadoras, los cálculos que requerían varios años en concretarse, han pasado a cuestión de horas y minutos, sin embargo la mejora en los algoritmos para resolver problemas, por ejemplo el problema del cálculo aproximado del valor de π, han permitido tener una mejor aproximación a los valores buscados.

Anuncio / Advertisement

Los trabajos por encontrar nuevos métodos no terminan, y aún cuando se encuentran nuevos métodos, éstos deben ser analizados para verificar la velocidad de convergencia, otro aspecto muy importante en la elección de un algoritmo eficaz.

Anuncio / Advertisement
0 0

Sobre el Autor

BitCuco

BitCuco. El Blog para los desarrolladores emergentes.