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