Задача: Рекурсивная функция определения корня

  • Автор темы Автор темы Firiat
  • Дата начала Дата начала
F

Firiat

Привет Всем !


Код:
	Определить рекурсивную функцию, которая находит корень уравнения f(x)=0 на заданном интервале [a,b] c заданной точностью e. Корень ищется методом деления отрезка пополам по сле-дующему алгоритму. Первоначально предполагается, что f(a)f(b)<0.
1)	вычисляются f(а), f(b);
2)	вычисляется c=(a+b)/2 и f(c);
3)	если f(a)f(c)>0, то а=c, в противном случае b=c;
4)	если b-a>e, то перейти к шагу 2, иначе любой из концов отрезка может быть использован в каче-стве корня уравнения.

Спс.
 
2 Firiat, а сама функция ????
 
2 Firiat: Если честно, ничего не понимаю... Может потому что пьян конечно, но все же смотри:
1) вычисляются f(а), f(:sorry:;
a и b - я согласен... Они даны...
Но F - наверное тоже какая то должна быть???
 
2 Firiat: Если честно, ничего не понимаю... Может потому что пьян конечно, но все же смотри:

a и b - я согласен... Они даны...
Но F - наверное тоже какая то должна быть???

От потолка возьму , f'(x)=12x^3-24x^2+12^x
 
Ребята как реализовать задачу?
 
Ребята как реализовать задачу?
Рекурсивно!

Я взял функцию x*x - 4, ты можешь другую подставить.

C++:
#include <iostream>

typedef double (*Func) (double);

double f1 (double _x)
{
return (_x * _x - 4);
}

void find (double &_a, double &_b, double e, Func _func)
{
double fa = (*_func)(_a);
double fb = (*_func)(_b);
double c = (_a + _b) / 2;
double fc = (*_func)(c);

if ((fa * fc) > 0) _a = c;
else _b = c;

if ((_b - _a) > e) find (_a, _b, e, _func);
}

int main ()
{
double a, b, e;
std::cout << "a: ", std::cin >> a;
std::cout << "b: ", std::cin >> b;
std::cout << "e: ", std::cin >> e;

find (a, b, e, &f1);

std::cout << b << std::endl;
return 0;
}
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab