Вопрос Помогите пожалуйста с программой в си найти ошибку

Статус
В этой теме нельзя размещать новые ответы.
Регистрация
27 Июл 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Задание: решить уравнение 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);
}

Но он выдает одно и тоже число.
В чем ошибка может быть?
 
> x1=f(x0); Это какая-то фигня. Попробуй так: do { printf("x=%f ", x1); x0 = x1; x1 = x0 - f(x0); // в зависимости от функции, возможно придется прибавлять, а не вычитать iter= iter + 1; } while (fabs(x0-x1) > eps);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху