ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode


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


В этом уроке мы расскажем как вычислить сумму бесконечного сходящегося ряда (последовательности) с определенной точностью. Будет рассмотрена соответствующая программа, написанная на языке программирования Си. В конце статьи можно скачать исходник этой программы для 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.

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

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

 

 

4.7/5 - (15 голосов)



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

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

Ваш адрес email не будет опубликован.