El algoritmo PSLQ e identificación de números

El algoritmo PSLQ se usa para resolver aproximadamente ecuaciones con coeficientes enteros a_i de la forma

\sum_i a_i x_i = 0

donde, obviamente, no todos los a_i son cero. Aproximadamente significa que la solución se busca dentro de un cierto nivel de tolerancia.

No existe, que yo sepa, una implementación en R. Pero sí en Python, usando librerías que permiten utilizar números de precisión arbitraria, como mpmath. Veamos un ejemplo:

>>> from mpmath import *
>>> pslq([-1, pi], tol=0.01)
[22, 7]

La respuesta obtenida significa que

| -22 + 7 \pi | < 0.01, [/latex]   es decir, que la fracción 22/7 aproxima el valor de [latex]\pi con un error inferior al 1 %.

Y esta es sólo una de las posibilidades que ofrece el algoritmo PSLQ y más en general, la librería mpmath. Muchas de las que encuentro más sorprendentes están recogidas en el capítulo Number identification de la documentación de mpmath.

2 comentarios sobre “El algoritmo PSLQ e identificación de números

  1. Freddy 18 septiembre, 2012 15:12

    Hola. Muy interesante esto. ¿Has utilizado este algoritmo en alguna aplicación estadística (o relacionado), por casualidad? Gracias.

  2. datanalytics 18 septiembre, 2012 15:39

    @Freddy Pues en estadística… no se me ocurre ninguna. Al fin y al cabo, nos da igual si nuestras respuestas son o no números racionales.

    Pero fui matemático y todavía arrastro cierto tipo de deformaciones formacionales.

Los comentarios están desabilitados.