Метод половинного деления
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Формула для задания:
Надо найти корень уравнения (формула которого я написала) надо найти на отрезке [0,1;5,0] с точностью до
Помогите мне! У меня не вычисляет корень вообще
nightofpromises, лишняя точка с запятой в данном случае является телом цикла с пустым оператором. А поскольку в условии продолжения цикла переменные не изменяются, то цикл получается бесконечным.
Условие написано с ошибкой. Проверьте скобки:
Вообще «формулу для задания» лучше выделить в отдельную функцию. Будет и аккуратнее и в скобках не запутаетесь.
Зачем вы используете динамическое выделение памяти под одиночные переменные типа double? Это совершенно излишне. К тому же вы не освобождаете память от переменной
c
вMethodPolDel
.Зачем передача параметров в
MethodPolDel
сделана через указатели? Хватит и обычной передачи по значению.Переменная
count
в функцииmain
и в функцииMethodPolDel
— это разные переменные. Поэтому «Количество итераций» будет всегда показывать 1.Оператор goto лучше не использовать. От слова «совсем».
Честно говоря, я вообще не понял зачем там цикл и какой смысл у условия
!(a > 0)
.Еще у меня сомнение в корректности условия в
while (abs(*a - *b) >= *epsilon)
. Вообще-то там должно бытьwhile (abs(f(c)) >= *epsilon)
, гдеf(c)
— значение функции в средней точке отрезка.Корень при ваших условиях равен 2.1223313 (20 итераций).