Написать ряд Тейлора для ф-ции y=sinx - C#
Формулировка задачи:
Нужна помощь в написании программы: Напишите ряд Тейлора для ф-ции y=sinx. Выведите сумму первых n слагаемых ряда. Значения x и n задайте по своему усмотрению. Пожалуйста, очень надо до субботы 30-го.
Решение задачи: «Написать ряд Тейлора для ф-ции y=sinx»
textual
Листинг программы
using System;
namespace Sin
{
class Program
{
static void Main()
{
double x = 2.0f;
int n = 5;
double y = Sinus.getValue(x, n);
Console.WriteLine("Sin({0}) = {1}", x, y);
}
}
public class Sinus
{
public static double getValue(double x, int n)
{
int[] fact = { 1, 6, 120, 5040, 362880 };
// Выходим если n больше, чем значений факториала
if (n > fact.Length)
throw new ArgumentOutOfRangeException("Аргумент n должен быть меньше или равен " + fact.Length);
// Выходим если n меньше < 0
if (n <= 0)
throw new ArgumentOutOfRangeException("Аргумент n должен быть строго меньше нуля");
int sign = 1;
double y = 0;
int power = 1;
for (int i = 1; i <= n; ++i)
{
if ((i % 2) != 0) // Нечётное слагаемое, поэтому "плюс"
sign = 1;
else // Чётное слагаемое, поэтому "минус"
sign = -1;
y += (double)sign * Math.Pow(x, (double)power) / (double) fact[i - 1];
power += 2;
}
return y;
}
}
}