Риша+Танюша Опубликовано 2 января, 2016 Опубликовано 2 января, 2016 Есть условие задачи вариант нужно решить методами бисекции и Ньютона вот что нарешали: #include "stdafx.h" #include "iostream" #include "cmath" #include "cstdlib" #include "conio.h" float f1(float x) { return (pow(0.07, 1/3) - 2 * x + atan(sqrt(x))); } void metod1(float a, float b, float eps, float(*f)(float)) { float x; int i=0; do { x = (a + b) / 2; if ((*f)(a)*(*f)(x)>0) a = x; else b = x; i++; } while (abs(b - a) >= eps); std::cout « "x1= " « x; std::cout « "i1= " « i; } float metod_2(float a, float b, float eps, float(*f)(float)) { float ff, x1, x2; int i; i = 0; x2 = (a + b) / 2.; do { x1 = x2; ff = (((*f)(x1 + eps/2.) - (*f)(x1 - eps/2.)) / eps); x2 = x1 - (*f)(x1) / ff; i++; } while (abs(x1 - x2) >= eps); std::cout « "i2 = " « i; return x2; } int main() { float a, b, eps, x1=0, x2; int i1=0; std::cout « "enter the left border: "; std::cin » a; std::cout « "enter the right border: "; std::cin » b; std::cout « "enter accuracy: "; std::cin » eps; metod1(a, b, eps, f1); x2 = metod_2(a, b, eps, f1); std::cout « "X2 = " « x2; system("pause"); } границы вводить а=0,1, в=2,1, погрешность 10 в степени = -4 Помогите найти ошибку, пожалуйста
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти