Вычислить cos(0.6) с точностью e=0,00001 воспользовавшись разложением в ряд - C#
Формулировка задачи:
Вычислить cos(0.6) с точностью e=0,00001 воспользовавшись разложением в ряд
cosx= 1-x2/2!+x4/4!-x6/6!+...+(-1)n*x2n/(2n)!+....
Сравните результат со значением, полученным с помощью соответствующей встроенной функции
вот кусок моей программы
Помогите пожалуйста найти ошибку
Прикрепил свою программу я делал в Visual Studio 2013 через windows forms
public static double Factorial(double n)
{
double res = 1;
for (int i = 2; i <= n; i++)
{
res *= i;
}
return res;
}
private double Func(double x, double n)
{
return Math.Pow(-1, n) * (Math.Pow(x, (2 * n)) / (Factorial((2 * n))));
}
private void Raschet(double E, double x)
{
double n = 1;
double a = Func(x, n);
double S = 1;
dataGridView1.Rows.Clear();
do
{
a = Func(x, n);
Vivod(n, a);
S = S + a;
n = n + 2;
}
while (Math.Abs(a) > E);
TextBoxOutput(textBox3, Math.Cos(x));
TextBoxOutput(textBox4, S);
}Решение задачи: «Вычислить cos(0.6) с точностью e=0,00001 воспользовавшись разложением в ряд»
textual
Листинг программы
public static double Factorial(double n)
{
return n <= 1 ? 1 : n * Factorial(n - 1);
}
private static double Func(double x, double n)
{
return Math.Pow(-1, n) * (Math.Pow(x, 2 * n) / Factorial(2 * n));
}
private static double Cos(double x, int n)
{
double a = Func(x, n);
return Math.Abs(a) > E ? a + Cos(x, n + 1) : 1;
}
private static double Cos(double x)
{
return Cos(x, 1);
}