Алгебраические уравнения - Уравнения второй степени (квадратные)
11 Nov
Posted by prografix
in Math
Квадратное уравнение решается по школьной формуле с небольшим изменением. Так находится только один корень ( у которого больше абсолютное значение ), а второй находится, как частное b / x. Таким образом получается больше правильных знаков.
// x^2 + a * x + b = 0Функция root2 возвращает количество вещественных корней (0 или 2, случай кратных корней не выделяется), а сами корни помещаются в массив по указателю x.
int root2 ( double a, double b, double * x )
{
if ( b == 0 )
{
x[0] = -a;
x[1] = 0.;
}
else
{
a *= -0.5;
double d = a * a - b;
if ( d < 0 ) return 0;
d = sqrt ( d );
x[0] = a > 0 ? a + d : a - d;
x[1] = b / x[0];
}
return 2;
}
Comments
Post new comment