Вычислить значение бесконечной суммы с определенной точностью - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток!

Нужно вычислить значение бесконечной суммы с точностью e=10-5 . Детская задача, но никак не могу вспомнить её реализацию Может кто подсобить? Вот что накидал:
Листинг программы
  1. public partial class Form1 : Form
  2. {
  3. private double eps = 0.00001; // точность
  4. private double sum = 0.0; // начальное значение суммы
  5. private int n; // вводимое n
  6. public Form1()
  7. {
  8. InitializeComponent();
  9. }
  10. private void button1_Click(object sender, EventArgs e)
  11. {
  12. try // тут считывание n с поля ввода и запуск потока
  13. {
  14. if (textBox1.Text != "")
  15. n = Int32.Parse(textBox1.Text);
  16. else
  17. throw (new Exception("Поле ввода пустое!"));
  18. Thread tr = new Thread(Count);
  19. tr.Start();
  20. }
  21. catch (Exception ex)
  22. {
  23. MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
  24. }
  25. }
  26. private void Count() // тут считается значение бесконечной суммы (собственно тут находится бред)
  27. {
  28. while (Math.Abs(sum) <= eps)
  29. {
  30. sum += 1 / Math.Pow(2 * n - 1, 4);
  31. n--;
  32. }
  33. }
  34. }

Заранее спасибо!

Решение задачи: «Вычислить значение бесконечной суммы с определенной точностью»

textual
Листинг программы
  1. using System;
  2. using System.Globalization;
  3. using System.Windows.Forms;
  4.  
  5. namespace WindowsFormsApplication
  6. {
  7.     public partial class Form1 : Form
  8.     {
  9.         public Form1()
  10.         {
  11.             InitializeComponent();
  12.         }
  13.  
  14.         private const double Eps = 1E-5; // Точность.
  15.         private readonly Func<double, double> _func = d => Math.Pow(1 / (2 * d + 1), 4); // Заданная функция.
  16.  
  17.         private void button1_Click(object sender, EventArgs e)
  18.         {
  19.             var sum = 0.0;
  20.             var i = 0;
  21.             var cur = _func(i);
  22.             while (cur > Eps)
  23.                 sum += cur = _func(++i);
  24.             MessageBox.Show(sum.ToString(CultureInfo.CurrentCulture));
  25.         }
  26.     }
  27. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы