В следующих заданиях необходимо численно убедиться в справедливости равенства, то есть необходимо сравнить результаты вычисления значения функции для заданного значения аргумента, полученные двумя способами: вычислением с использованием стандартных математических функций (левая часть равенства) и путем разложения функции с заданной точностью (правая часть равенства). При вычислении разложения необходимо также выяснить количество шагов разложения, потребовавшееся для достижения точности .
За предоставленное решения буду очень признателен. Нужна формула.

Предыдущее решение - эталон неэффективности. Плюс требует явного задания кол-ва шагов, что противоречит условию задачи.
Да, переменных понадобится чуть больше, но скорость работы будет куда выше:
double x, eps;
cin >> x >> eps;
double q = -x * x, p = x, s = 0.0;
long n = 1;
while(1) {
double t = p / n;
s += t;
if (abs(t) < eps) { break; }
p *= q;
n += 2;
}
cout << atan(x) << ' ' << s << ' ' << (n + 1) / 2;
С левой частью все понятно, надо использовать стандартную функцию std::atan()
Для правой части надо написать функцию, которая принимает 2 параметра: х и n
Вот ее определение:
double func(double x, int n)
{
return std::pow(-1, n) * std::pow(x, 2*n+1) / (2*n+1);
}
Далее в теле программы пишем цикл для вычисления числового ряда из N элементов:
#include
#include
int main()
{
double rezult = 0;
double x;
cin >> x; // вводим х из командной строки
int N;
cin >> N; // вводим количество членов ряда
for( int i=0; i<N; i++ )
{
rezult += func(x, i);
}
cout << "Левая часть = " << std::atan(x) << " правая часть = " << rezult;
return 0;
}