Я Вам уже́ показывала правильный код и говорила, что у Вас в формуле разложения ошибка. Ряд дан не для функции arth(x), а для функции arth(1/x), а при |x|>1 вещественных значений ареатангенса вообще не существует, это что -непонятно? А про итерационные циклы с рекуррентными формулами Вы разве ничего не слышали, раз суёте в вычисления никому не нужную в данном случае функцию Pow с разными степенями и ненужную переменную n? Показываю ещё раз, может дойдёт:
using System; class New_Project
{ static double f(double x)
{ double s = 1, p = 1, q = 1, y = 1 / (x * x), e = 1;
while (e > 1e-17) { p *= y; q += 2; e = p / q;
s += e; } return s / x; }
static void Main() { double x, y, error;
for (;;) { Console.Write("x = ");
x = Convert.ToDouble(Console.ReadLine());
y = f(x); error = y / Math.Atanh(1 / x) - 1;
Console.WriteLine(y + ", error=" + error); } } }
Точность вычислений (у меня она относительная) всегда можно проконтролировать при помощи стандартной функцией Math.Atanh. А вот какие результаты получаются (точность достаточно сильно ухудшается при приближении модуля аргумента функции к единице):
