Метод деления отрезка пополам - C (СИ)
Формулировка задачи:
Доброго времени суток, друзья!
Прошу Вас помочь мне в одной задаче. Собственно задача заключается в следующем, необходимо написать программу на языке С (не С++) для вычисления ∛3 методом деления отрезка пополам. Пытался мучился, но никак не получается, попробовал решить cosx=x, сделал получилось, а вот с этим проблемы, пожалуйста помогите, подкиньте идейки. Язык изучаю недавно, поэтому, если Вам не составит труда написать все более понятнее. Буду очень благодарен, тем людям кто хоть как-то сможет мне помочь! Спасибо за внимание!
Вот программа с cosx=x, должна быть правильная по идеи:
#include <stdio.h>
#include <math.h>
int main (void)
{
float a=0,b=2,c,e,t;
printf("Enter e>0");
scanf("%f",&e);
c=(a+b)/2;
while (((cos(c)-c)!=0)&&((b-a)>=e))
{
c=(a+b)/2;
t=(cos(c)-a)*(cos(c)-c);
if(t>0)
a=c;
if(t<0)
b=c;
}
if((cos(c)-c)!=0)
c=(a+b)/2;
printf("c=%g",c);
return 0;
}Решение задачи: «Метод деления отрезка пополам»
textual
Листинг программы
#include <stdio.h>
int main (void)
{
float a=1,b=2,c,e,t;
printf("Enter e=");
scanf("%f",&e);
c=(a+b)/2;
while ((c*c*c-3!=0)&&((b-a)>=e))
{
c=(a+b)/2;
t=((a*a*a-a)*(c*c*c-c));
if(t>0)
a=c;
if(t<0)
b=c;
}
if((c*c*c-c)!=0)
c=(a+b)/2;
printf("c=%g",c);
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки ввода-вывода
- Объявление переменных: a=1, b=2, c, e, t
- Вывод сообщения и запрос на ввод значения переменной e
- Вычисление значения переменной c как среднего арифметического a и b
- Запуск цикла while для деления отрезка пополам
- Вычисление значения переменной t как произведения (aaa-a) и (ccc-c)
- Проверка значения переменной t и присваивание a значения c, если t положительно
- Проверка значения переменной t и присваивание b значения c, если t отрицательно
- Проверка условия окончания цикла while и выход из цикла, если условие не выполняется
- Проверка условия (ccc-c) не равно нулю и установка значения c равным (a+b)/2
- Вывод значения переменной c
- Возврат значения 0, завершающий работу программы