Вычисление суммы ряда с заданной точностью

В этом уроке мы расскажем как вычислить сумму бесконечного сходящегося ряда (последовательности) с определенной точностью. Будет рассмотрена соответствующая программа, написанная на языке программирования Си. В конце статьи можно скачать исходник этой программы для Visual Studio.

Сходящийся ряд – это числовая последовательность элементов множества X, имеющая предел в этом множестве.

Графическое изображение сходящегося ряда

Сходящийся ряд

Рассмотрим задачу вычисления суммы сходящегося ряда с определенной точностью на примере. Пусть дан ряд:

Вычисление суммы ряда с заданной точностью. Исходный ряд

Вычисление суммы ряда с определенной точностью ε означает, что сумма ряда вычисляется до тех пор, пока модуль разности между текущим и предыдущим членом последовательности больше ε. В виде формулы это утверждение можно записать так:    |an – an-1| > ε, то есть пока это выражение истинно, вычисления продолжаются.

Сначала напишем на языке Си функцию, которая будет вычислять и возвращать значение k-го члена ряда по переданному в нее значению k.

res – это переменная вещественного типа повышенной точности double, в которую будет записан результат вычисления k-го члена ряда. Это же значение и будет возвращаться функцией.

Выражение res *= (double)powf(-0.5, k); эквивалентно выражению res = res * (double)powf(-0.5, k);

Оператор powf – это оператор возведения числа в степень. В нашем случае он вычисляет: -0.5k.

Функцию f можно записать короче:

Теперь перейдем к функции main. Для начала считаем с консоли число e – это и будет заданная точность вычислений ε.

Объявим переменные, в которых будут хранится: значение предыдущего, значение текущего члена ряда, сумма ряда и номер текущего члена ряда (число k) соответственно.

Отдельно вычислим первый член ряда (потом он станет “предыдущим”), чтобы затем перейти к вычислениям в цикле.

Запись выражения sum += current; эквивалентна записи: sum = sum + current;

Теперь перейдем к вычислениям в цикле. Условием выхода из цикла будет ложность выражения: |an – an-1| > ε.

Сумма посчитана. Осталось вывести результат вычислений в консоль.

В итоге код программы с необходимыми подключенными библиотеками будет выглядеть следующим образом:

Оператор _getch(); в строке 34 нужен для того, чтобы консоль не закрывалась сразу по завершении исполнения программы.

Демонстрация работы программы для нашего ряда представлена на скриншоте ниже. Точность вычислений составляет: ε = 0.01.

Вычисление суммы ряда с заданной точностью. Работа программы

Скачать исходник

 

 

Вычисление суммы ряда с заданной точностью
5 (100%) 6 votes

Поделиться в соц. сетях:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">