Вычисление тангенса с заданой точностью

Задача. Решить уравнение x*tg(x)=a методом половинного деления с заданой точностью е=0,0001. Спасибо заранее.
8 ответов

В какой области искать решения? Ты хоть понимаешь, что данное уравнение в общем случае имеет бесконечное множество решений!


В какой области искать решения? Ты хоть понимаешь, что данное уравнение в общем случае имеет бесконечное множество решений!
точно,забыл сказать, что интервал можно считывать с клавиатуры.
В какой области искать решения? Ты хоть понимаешь, что данное уравнение в общем случае имеет бесконечное множество решений!
думаю если задать интервал на котором точно будет 1 корень, то так тоже можно, к примеру, [0,1]


#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
 
const ****** EPS = 0.0001;
****** a;
****** l, r;
 
****** f(****** x)
{
    return x * tan(x);
}
 
int main()
{
   cin >> a >> l >> r;
 
   while(fabs(r - l) > EPS)
    {
        ****** m = (r + l) / 2;
        ****** res = f(m);
        if(res > a)
            l = m;
        else 
            r = m;
    }
 
    printf("%.10f\n", (r + l) / 2);
 
    return 0;
}


#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
 
const ****** EPS = 0.0001;
****** a;
****** l, r;
 
****** f(****** x)
{
    return x * tan(x);
}
 
int main()
{
   cin >> a >> l >> r;
 
   while(fabs(r - l) > EPS)
    {
        ****** m = (r + l) / 2;
        ****** res = f(m);
        if(res > a)
            l = m;
        else 
            r = m;
    }
 
    printf("%.10f\n", (r + l) / 2);
 
    return 0;
}
спасибо большое, только можешь, пожалуйста объяснить пару моментов? насколько я понял l,r - это левая и правая границы интервала, а-наш параметр. мне не понятно что мы делаем в этих строчках
****** res = f(m);
что такое res?


спасибо большое, только можешь, пожалуйста объяснить пару моментов? насколько я понял l,r - это левая и правая границы интервала, а-наш параметр. мне не понятно что мы делаем в этих строчках
****** res = f(m);
что такое res?
res - значение функции f в точке m, а функция f объявлена выше


res - значение функции f в точке m, а функция f объявлена выше
printf("%.10f\n") - что означает %.10f? Извините за мою тупость..программирование трудно дается.


printf("%.10f\n") - что означает %.10f? Извините за мою тупость..программирование трудно дается.
это означает, что выведется 10 знаков после запятой


это означает, что выведется 10 знаков после запятой
спасибо большое!