Вычисление суммы ряда - 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д