Вычислить значение бесконечной суммы с определенной точностью - C#
Формулировка задачи:
Доброго времени суток!
Нужно вычислить значение бесконечной суммы с точностью e=10-5 . Детская задача, но никак не могу вспомнить её реализацию Может кто подсобить? Вот что накидал:public partial class Form1 : Form { private double eps = 0.00001; // точность private double sum = 0.0; // начальное значение суммы private int n; // вводимое n public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try // тут считывание n с поля ввода и запуск потока { if (textBox1.Text != "") n = Int32.Parse(textBox1.Text); else throw (new Exception("Поле ввода пустое!")); Thread tr = new Thread(Count); tr.Start(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void Count() // тут считается значение бесконечной суммы (собственно тут находится бред) { while (Math.Abs(sum) <= eps) { sum += 1 / Math.Pow(2 * n - 1, 4); n--; } } }
Заранее спасибо!
Решение задачи: «Вычислить значение бесконечной суммы с определенной точностью»
textual
Листинг программы
using System; using System.Globalization; using System.Windows.Forms; namespace WindowsFormsApplication { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private const double Eps = 1E-5; // Точность. private readonly Func<double, double> _func = d => Math.Pow(1 / (2 * d + 1), 4); // Заданная функция. private void button1_Click(object sender, EventArgs e) { var sum = 0.0; var i = 0; var cur = _func(i); while (cur > Eps) sum += cur = _func(++i); MessageBox.Show(sum.ToString(CultureInfo.CurrentCulture)); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д