Tengo un conjunto de coeficientes cuadráticos a, b y c que hay que resolver para determinar la intersección entre una parábola y una recta en un plano. Estos coeficientes han "llegado" de un algoritmo diferente.
Para el contexto, la cuadrática real que se resuelve es: $$a = 4.3162933554 \times 10^{-11}$$ $$b = 1.0361118521 \times 10^{6}$$ $$c = -4.5813932360 \times 10^{5}$$ donde $f(x)=ax^2+bx+c$ .
Mi problema, sin embargo, es que cuando mi parábola está tan "estirada" que empieza a comportarse como una línea alrededor del área de interés, el coeficiente "a" se vuelve muy pequeño, y en realidad despreciarlo por completo y en su lugar resolver linealmente para b y c funciona perfectamente para la intersección requerida.
En este caso lo que realmente ocurre con la fórmula es que el $-b+\sqrt(b^2-4ac)$ ¡está siendo calculado como 0.0 por el ordenador! (He confirmado que esto no es específico de mi implementación, ya que mi calculadora hace lo mismo. Además, todo esto implica una precisión de punto flotante doble)
Mi pregunta es, ¿cómo puedo abordar la búsqueda de esta raíz de manera óptima? Además, ¿hay otros casos en los que la fórmula puede fallar?
He pensado en prescindir de la $a$ término y simplemente resolver la ecuación linealmente, pero entonces ¿en qué momento se decide hacer eso? Por extensión, ¿cuándo se debe resolver una ecuación cúbica de forma cuadrática?