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).