Функция double func(double x) вычисляет значение функции y для заданного x по формуле y = -(expf(-x)) + 0.5 + sqrt(fabs(x)).
Функция double** findRoot(double xmin, double xmax, double step, int count_intervs) находит корни функции func(x) на интервале от xmin до xmax с шагом step. Она выделяет память под массив интервалов intervs, находит интервалы, где функция меняет знак, и записывает их в массив intervs, который затем возвращается.
Функция double Mpol(double a, double b, double step) реализует метод половинного деления для нахождения корня уравнения func(x) = 0 на интервале от a до b с заданным шагом step.
Функция double Mxo(double xmin, double xmax, double step) реализует метод хорд для нахождения корня уравнения func(x) = 0 на интервале от xmin до xmax с заданным шагом step.
В функции main вызывается функция findRoot для нахождения корней функции на заданном интервале, затем выводятся найденные интервалы и значения корней, найденных с помощью метода хорд и метода половинного деления.
Функция double func(double x) вычисляет значение функции y для заданного x по формуле y = -(expf(-x)) + 0.5 + sqrt(fabs(x)).
Функция double** findRoot(double xmin, double xmax, double step, int count_intervs) находит корни функции func(x) на интервале от xmin до xmax с шагом step. Она выделяет память под массив интервалов intervs, находит интервалы, где функция меняет знак, и записывает их в массив intervs, который затем возвращается.
Функция double Mpol(double a, double b, double step) реализует метод половинного деления для нахождения корня уравнения func(x) = 0 на интервале от a до b с заданным шагом step.
Функция double Mxo(double xmin, double xmax, double step) реализует метод хорд для нахождения корня уравнения func(x) = 0 на интервале от xmin до xmax с заданным шагом step.
В функции main вызывается функция findRoot для нахождения корней функции на заданном интервале, затем выводятся найденные интервалы и значения корней, найденных с помощью метода хорд и метода половинного деления.