Задание: решить уравнение x-(1/(3+sin(3.6*x)))=0 методом итерации.
Отрезок, содержащий корень [0;0,85].
Точность: 10^(-5)
Программа, которую я написал:
#include
#include
#include
double f(double x)
{
return x-(1/(3+sin(3.6*x)));
}
int main()
{
float min=0,max=0.85;
float eps = 1.e-5;
double x0,x1;
int iter;
iter=0;
x0=(min+max)/2.0;
do
{
printf("x=%f",x1);
x0=x1;
x1=f(x0);
iter= iter +1;
} while(fabs(x0-x1)< eps);
printf("Otvet:%f ",x1);
printf("Iteration:%d",iter);
}
Но он выдает одно и тоже число.
В чем ошибка может быть?
Отрезок, содержащий корень [0;0,85].
Точность: 10^(-5)
Программа, которую я написал:
#include
#include
#include
double f(double x)
{
return x-(1/(3+sin(3.6*x)));
}
int main()
{
float min=0,max=0.85;
float eps = 1.e-5;
double x0,x1;
int iter;
iter=0;
x0=(min+max)/2.0;
do
{
printf("x=%f",x1);
x0=x1;
x1=f(x0);
iter= iter +1;
} while(fabs(x0-x1)< eps);
printf("Otvet:%f ",x1);
printf("Iteration:%d",iter);
}
Но он выдает одно и тоже число.
В чем ошибка может быть?