Алгоритм получение корней квадратного уравнения
ОГЛАВЛЕНИЕ
Квадратное уравнение записывается в виде:
a*x2+b*x+c=0, a!=0.
Классическая формула для нахождения его корней (как в действительном, так и в комплексном случае):
x1=(-b-sqrt(b2-4ac))/(2a), x2=(-b+sqrt(b2-4ac))/(2a).
Существует и альтернативный способ получения корней: x1=2c/(-b-sqrt(b2-4ac)), x2=2c/(-b+sqrt(b2-4ac)).
Трудность, о которой будет идти здесь речь (и она не единственная), связана с тем, что в том случае, когда b2 значительно превышает |4ac|, то при пользовании классическими формулами один из корней будет формироваться с использованием вычитания двух близких чисел и это может привести к потере точности. Чтобы этого избежать, по классическим формулам вычисляется только один корень (при вычислении которого этого не происходит), а второй корень находится по формуле Виета.
Случай, когда корни комплексные, для действительных корней уравнения указанной трудности не представляет.