Помогите исправить ошибку в итеративном расчёте arccos, нужно именно используя домножение на коэффицент.
Первые 2 вывода функции не совпадают со встроенной функцией.
using System;
public class Program
{
public static void Main()
{
Console.WriteLine("Введите X: ");
double x = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Введите K: ");
double k = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Введите EPS: ");
double EPS = Convert.ToDouble(Console.ReadLine());
if (Math.Abs(x) > 1)
{
Console.WriteLine("Неверное значение аргумента");
return;
}
double s = 0;
double a, b, c, d, e;
a = b = c = d = 1;
e = x;
double last = 0;
for (int i = 1; ; i++)
{
a *= 2 * i * (2 * i - 1);
b *= 4;
c *= i * i;
d += 2;
e *= x * x;
s += a * e / b / c / d;
if (Math.Abs(s - last) < EPS) break;
last = s;
}
Console.WriteLine("f1()");
Console.WriteLine(Math.PI / 2 - s);
s = 0;
a = b = c = d = 1;
e = x;
for (int i = 0;i<=k ; i++)
{
a *= 2 * i * (2 * i - 1);
b *= 4;
c *= i * i;
d += 2;
e *= x * x;
s += a * e / b / c / d;
}
Console.WriteLine("f2()");
Console.WriteLine(Math.PI/2 - s);
Console.WriteLine("f()");
Console.WriteLine(Math.Acos(x));
Console.ReadKey();
}
}