Алгебраические уравнения - Уравнения второй степени (квадратные)

11 Nov in Math

Квадратное уравнение решается по школьной формуле с небольшим изменением. Так находится только один корень ( у которого больше абсолютное значение ), а второй находится, как частное b / x. Таким образом получается больше правильных знаков.

// x^2 + a * x + b = 0

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;
}
Функция root2 возвращает количество вещественных корней (0 или 2, случай кратных корней не выделяется), а сами корни помещаются в массив по указателю x.
 

Comments

Post new comment

 
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.
By submitting this form, you accept the Mollom privacy policy.
Developed by NStudioCorp.com All trademarks and copyrights on this site are owned by their respective owners.
Comments are owned by the Poster. The Rest © 2000-2011 Firstov.com

About Firstov.com |  Terms of Service |  Support |  Contact Us |  Advertise