ANULARE - Ecuatia de gradul al doilea

Fie ecuația . Această ecuație pune probleme. Anularea poate apare dacă .
Pentru rezolvare vom folosi formula
format long
a=1; c=1; b=-100000000; %b=-1e8
% Calculam radacinile obisnuit
x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x1 = 100000000
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
x2 = 7.450580596923828e-09
Apare anulare la calculul lui . Remediu: amplificăm cu conjugata
x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x1 = 100000000
x2a=2*c/(-b+sqrt(b^2-4*a*c))
x2a = 1.000000000000000e-08
Același rezultat se obține cu roots
x=roots([a,b,c]);
x(1),x(2)
ans = 9.999999999999999e+07
ans = 1.000000000000000e-08
Altfel, folosim relațiile lui Viete,
d = sqrt(b^2 - 4*a*c);
x1 = (-b - sign(b)*d) / (2*a)
x1 = 100000000
x2 = c/a/x1
x2 = 1.000000000000000e-08