Вычисление суммы ряда - C# (189507)
Формулировка задачи:
Задание 1. Вычислить сумму S= -cos(x) + (cos(2x))/2^2 -...+ (-1)^n*(cosnx)/n^2 при x=пи/4.
Суммирование прекращать, когда очередной член ряда будет меньше eps=0.0001.
Сумма S и контрольная функция (в смысле для контроля при каждом значении х вычисляется также функция) y=((x^2-(pi^2)/3))/4 для одного и того же х должны приблизительно совпадать.
И еще нужно определить, на каком члене суммы будут прекращены вычисления
Задание 2. Тоже самое, только S= 1+x+x^2+...+x^n/(n!) , контрольная функция y=e^x; x=2.5
Помогите пожалуйста, совсем запутался((((
Решение задачи: «Вычисление суммы ряда»
textual
Листинг программы
static void Main(string[] args) { double S = 0, Seps; //считаем функцию с косинусом double x = Math.PI / 3; int Iter; for (Iter = 1; Iter < MaxIterations; Iter++) { Seps = FunctionCos(Iter, x); S += Seps; if (Math.Abs(Seps) < eps) break; } Console.WriteLine("Требуемая точность {0} достигнута на {1} итерации. \n Сумма элементов S = {2}", eps, Iter-1, S); Console.WriteLine("Проверочная функция S = " + FunctionCosControl(x)); x = 2.5; //считаем функцию с факториалом for (Iter = 0; Iter < MaxIterations; Iter++) { Seps = FunctionFaktorial(Iter, x); S += Seps; if (Math.Abs(Seps) < eps) break; } Console.WriteLine("Требуемая точность {0} достигнута на {1} итерации. \n Сумма элементов S = {2}", eps, Iter-1, S); Console.WriteLine("Проверочная функция S = " + FunctionFaktorialControl(x)); Console.ReadLine(); } /// <summary>Функция с косинусом /// </summary> /// <param name="n">порядковый номер</param> /// <param name="x">переменная</param> /// <returns></returns> public static double FunctionCos(int n, double x) { return (Math.Pow((-1), n) * (Math.Cos(n*x)) / Math.Pow(n, 2)); } //Функция контроля public static double FunctionCosControl(double x) { return ((Math.Pow(x, 2) - Math.Pow(Math.PI, 2) / 3)) / 4; } /// <summary>функция с факториалом /// </summary> /// <param name="n">порядковый номер</param> /// <param name="x">переменная</param> /// <returns></returns> public static double FunctionFaktorial(int n, double x) { return (Math.Pow(x, n) / (Faktorial(n))); } //Проверочная функции с факториалом public static double FunctionFaktorialControl(double x) { return (Math.Pow(Math.E, x)); } /// <summary> /// Функция вычисления факториала /// </summary> /// <param name="n"></param> /// <returns></returns> static long Faktorial(int n) { if (n == 0) return 1; else return n * Faktorial(n - 1); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д