На языке программирования С !
Задача 2
При выполнении этой задачи, необходимо сделать алгоритмы и программы с использованием рекурсии. Необходимо принимать во внимание граничные условия выхода из рекурсии.
Путем деления сегмента в пополам найти с точностью 0,0001 корень уравнения
Answers & Comments
Verified answer
#include <math.h>
#include <stdio.h>
const float eps=0.0001;
float F(double x){
return cos(2.0/x)-2*sin(1.0/x)+1.0/x;
}
float Func(double a, double b)
{
float x=(a+b)/2;
float y=F(x);
if (fabs(y)<eps) return x;
else if (F(a)*y<0) Func(a,x);
else Func(x,b);
}
int main()
{
float a, b;
printf("a = ");
scanf("%f",&a);
printf("b = ");
scanf("%f",&b);
if (F(a)*F(b)<0) printf("x = %f\n",Func(a,b));
else printf("Нет сходимости\n");
return 0;
}
Пример - в прилагаемом файле.
PS. Без анализа деления на 0.