Советы, трюки и секреты для Blogger.com блоггеров. Все для Blogspot. Советы, трюки и секреты для Blogger.com блоггеров. Все для Blogspot.

Найти корни уравнения, на заданном интервале. (C++)

08 октября 2010, 02:26

Решение  задачи: найти корни cosx=1/x на интервале [1;2], c точностью до 10^(-6), используя метод биекций (язык Си).

#include <math.h>

#define PRECISSION 10.E-6

double f(double x)
{
return cos(x)-1./x;
}

int main()
{
double lft_X = 4.;
double rght_X = 6.;

double lft_Y, rght_Y;

double X, Y;

while ( (rght_X-lft_X) >= PRECISSION )
{
lft_Y = f(lft_X);
if ( lft_Y == 0. )
{
X = lft_X;
break;
}
rght_Y = f(rght_X);
if ( rght_Y == 0. )
{
X = rght_X;
break;
}
X = (lft_X + rght_X)/2.;
Y = f(X);
if ( rght_Y*Y > 0 )
rght_X = X; // сдвиг границы справа
else
lft_X = X; // сдвиг раницы слева
}
printf("Корень уравнения равен: %9.7f", X );
return 0;
}

Найти корни уравнения, на заданном интервале. (C++)