11.8.2.2 : Solutions de l'équation du second degré
Si on part de la célèbre équation $$\begin{eqnarray*} {\displaystyle ax^{2}+bx+c=0,\quad{\text{avec}}\quad\Delta={b^{2}-4ac}} \end{eqnarray*}$$ son non moins célèbre discriminant, on note, pour $\Delta>0$ , ses deux solutions exactes~: $$\begin{eqnarray*} {\displaystyle x_\pm={\frac {-b\pm {\sqrt\Delta}}{2a}}.} \end{eqnarray*}$$ On identifie clairement deux possibilités de "catastrophic cancellation"~: l'une, dans l'expression du discriminant, et l'autre dans la compensation entre $-b$ et $\sqrt\Delta$ . Cette dernière peut se résoudre en reformulant les racines ainsi~:$$\begin{eqnarray*} q & = & {-b-\text{sgn}(b) {\sqrt\Delta}} = {-\text{sgn}(b)\left({|b| + {\sqrt\Delta}}\right)}\\ % nom de la la fonction signe en accord avec ISO 80000-2 x_1 & = & {\frac {q}{2a}},\\ x_2 & = & {\frac {2c}{q}} = {\frac {2c}{ax_1}}. \end{eqnarray*}$$ $q$ est donc toujours une somme de deux termes de même signe, sans compensation calamiteuse. On a ainsi une expression précise sans branchement. Encore faut-il le savoir. Par contre, le branchement évité floute le lien entre les deux paires de racines, et un test peut s'avérer nécessaire pour recoller $x_1$ à $x_+$ ou $x_-$ .