Dado un número algebraico , estoy interesado en encontrar una aproximación de ℜ ( e α ) hasta una precisión dada, donde ℜ ( ) se refiere a la parte real del número complejo.
Formalmente, quiero calcular un número racional tal que | ℜ ( e α ) - r | ≤ 2 - n
está dado por un polinomio mínimo (estándar).
¿Qué tan rápido podemos resolver este problema?
Cuando se da como un punto flotante, la siguiente referencia
R. Brent. Evaluación rápida de precisión múltiple de funciones elementales. JACM, 1976.
Parece dar una respuesta.
Sin embargo, no estoy seguro de que pueda usarse para el número algebraico .
Respuestas:
Tal como está escrito, el problema requiere un tiempo de , donde m es la longitud de entrada (desafortunadamente usó n para otra cosa). De hecho, si, por ejemplo, α es un número entero positivo (dado por su polinomio mínimo x - α ) yn = 0 , el tamaño de la salida es exponencial en el tamaño de la entrada. Este límite es, por supuesto, óptimo, ya que hay varias formas de calcular el resultado en el tiempo 2 O ( m ) .2Ω(m) m n α x−α n=0 2O(m)
Permítanme intentar reformular la pregunta para que tenga un poco más de sentido. El problema principal es cómo elegir la representación de la entrada y la salida, así como la noción de aproximación, de modo que la exponenciación tenga una gran posibilidad de ser computable en el tiempo polinómico.
Kaveh mencionó una forma en los comentarios: restringir el dominio a un intervalo finito fijo. Si bien esto funciona, es innecesariamente restrictivo; en particular, no hay una buena manera de transformar un número algebraico en uno que esté limitado de modo que sus exponenciales tengan algo que ver entre sí.
Un enfoque más flexible es representar la entrada como un número de punto fijo y la salida como un número de coma flotante . Para ser específicos, una representación de punto fijo es una cadena denota ± ∑ j a j 2 j , donde a j ∈ { 0 , 1 } , y una representación de coma flotante es ± 2 e ×
Las representaciones de punto fijo y punto flotante de racionales gaussianos diádicos, y las aproximaciones de números complejos, se definen de manera similar, utilizando un par de reales. En todas partes a continuación, denota el tamaño total de la entrada.n
Ahora, dejemos que la exponenciación (real o compleja) sea el siguiente problema: la entrada es una representación de punto fijo de un número un número natural unario m , y la salida es una aproximación de coma flotante de e x a m bits de relativa precisión. Dualmente, el logaritmo toma como entrada un número de coma flotante xy unario m , y la salida es una aproximación de punto fijo de log x (digamos, la rama principal en el caso complejo) a m bits de precisión absoluta.x m ex m x m logx m
Mientras nos atenemos a los límites de tiempo de ejecución que satisfacen algunas condiciones de regularidad leves, e ignoramos los factores multiplicativos constantes, tenemos:
Esto divide la pregunta en dos problemas bastante no relacionados. El límite superior más conocido en exponenciación es
Para una aproximación de raíz real , Pan y Tsigaridas dan:
Para la exponenciación de racionales exactos, podemos evitar el problema:
fuente