7 votos

GCD polinomio en presencia de errores de punto flotante

El requisito fundamental para el uso de la raíz de aislamiento de los métodos basados en la Vicente del teorema es que la entrada al polinomio no tiene varios ceros. Una forma de eliminar las múltiples ceros es utilizar el polinomio de GCD. Sin embargo, cuando se implementa con la usual de los números de punto flotante (IEEE dobles), probablemente los diversos errores de redondeo será causa de las múltiples raíces a disgregarse en grupos de raíces.

¿Alguien sabe acerca de la buena (y simple) aproximado polinomio MCD algoritmo, que no requiere exacta de la aritmética (es decir, es susceptible de aplicación en 64 bits flotante puntos números)?

Lo más cercano que he encontrado es el "cálculo de varias raíces de la inexactitud de los polinomios de" por Zhonggang Zeng, pero por desgracia es una manera más de mi pequeño cerebro.

5voto

Ninefingers Puntos 18767

Una de las razones por las que los métodos mencionados no funcionan por varias raíces es que, en esta situación, la raíz del hallazgo problema es numéricamente mal planteado. Es decir, una arbitrariamente pequeña perturbación de la entrada va a cambiar la estructura de su solución (tal y como lo reconoció, múltiples raíces se dividirá en grupos). Lo mismo se aplica para el cálculo de la plaza de la parte libre. Tratando de remediar esta situación de inestabilidad por una inexacta de cálculo es, en general, condenado, a menos que disponga de información adicional (por ejemplo, el número total de bienes y raíces complejas, o su verdadero objetivo es aislar un múltiplo de la raíz de la que se sabe a priori que es único). En tales situaciones, usted debe comprobar si realmente es necesario hacer para que el polinomio squarefree, o si usted puede deducir toda la información requerida por otros medios.
También, podría ser más fácil mirar para el complejo de raíces utilizando métodos como Aberth Ehrlich (como se implementa en el MPSolve), Durand-Kerner-Weierstraß, o homotopy continuación de los métodos (por ejemplo, como en PHCpack o Bertini). En cierto sentido, si la precisión de la entrada no es lo suficientemente alta, funcionan como si el polinomio tendría un clúster de las raíces en lugar de un múltiplo de la raíz, y usted puede simplemente dejar después de una suficiente precisión o "resolución" es alcanzado. A continuación, el postproceso o combinar el clúster aproximaciones en múltiples raíces. Por supuesto, esa es una heurística, pero un aproximado de MCD es menos trivial de implementar en un certificado manera, también.
Por el camino, el corazón de la Aberth Ehrlich método es, quizás, una de cinco forro, y funciona impresionantemente bien en la práctica. Me volvería a dar que un intento, incluso si son sólo en busca de las raíces reales.

Pero volviendo a su pregunta: hasta donde yo sé, aproximado GCDs todavía no se conocen suficientemente bien, y, en particular, no tengo conocimiento de ready-made implementaciones de uso de la máquina de precisión (probablemente debido a que todos ellos se producirá un error para algunos casos). YMMV, pero si quieres probar algo en la precisión de la máquina, me gustaría tomar los siguientes pasos:

  • Usar el Algoritmo de Euclides Extendido para el MCD de cálculo, nada más elegante (en particular, no asintóticamente algoritmo rápido como la Mitad-GCD a menos que tenga una muy buena razón para creer que debería ser lo más estable).
  • Los pasos críticos será divisiones con resto de donde el coeficiente inicial de que el resto se desvanece. Si no es debido a inestabilidades numéricas, la salida será de la basura. Por lo tanto:
  • Junto con la de punto flotante versión del polinomio GCD (posiblemente en la aritmética de intervalos), calcular el MCD modulo algunos de los mejores(s) (asumo su entrada consta de polinomios en $\mathbb{Q}[x]$). No sólo que esto, con alta probabilidad, le dan el grado correcto de la DPC; a menos que usted haya optado por una "mala suerte" de primera, la secuencia de los grados y los coeficientes que ocurren en todo el EEE, debe ser igual al módulo de la prima. Así que usted puede utilizar estos resultados como una comprobación de validez para cualquier redondeo o lejos de cero.

Pero AFAICS, si alguna vez te encuentras en una situación donde usted no tiene suficiente precisión suficientemente vinculado a un no-cero coeficiente inicial (certificado por el modular de cómputo) de distancia de cero, va a tener problemas y la necesidad de confiar en conjeturas (por ejemplo, la heurística para la raíz de distancias o de la magia epsilons en el código).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X