Нужно написать функцию, которая бы вычисляла сумму ряда 1/2 + 1/4 + 1/8.....с заданной точностью
Всех приветствую. Есть задача: написать функцию, которая бы вычисляла сумму ряда 1/2 + 1/4 + 1/8 ..... с заданной точностью. Прежде всего хочу сказать, что пошел на курсы совсем недавно. Никакой базы и каких-то знаний математики не имеются. Поэтому тяжело понять вообще с чего начинать писать функцию и куда двигаться. Направьте пожалуйста, или напишите пример кода решения задачи.. Хочу понять как решить правильно простейшим возможным способом (максимум используя один из циклов), без использования каких-либо массивов и тд. Всем спасибо за любую помощь!
Ответы (3 шт):
1/2 + 1/4 + 1/8 + ...
Хочу понять как решить правильно простейшим возможным способом (максимум используя один из циклов), без использования каких-либо массивов и тд. Всем спасибо за любую помощь!
double calc_seq()
{
return 1;
}
Ну и общий ход мыслей :)
как говорится, продолжите дальше по аналогии
С точностью eps?
double sum()
{
return 1.0 - eps;
}
Для тех, у кого плохо с чувством юмора:
return 1 - exp(-log(2)*ceil(-log(eps)/log(2)));
Но "с точностью ε" - это значит, отличающееся от истинного не более чем на ε, так что 1 - вполне удовлетворяет этому условию, как и 1-ε...
Что обычно требуется чтобы вычислить частичную сумму ряда с заданной точностью?
Сама точность: eps. Точностью пользуются так: складывают члены ряда пока очередной член не станет меньше eps.
Способ для вычисления очередного члена ряда. Первый член равен 1/2. Следующий в два раза меньше. Следующий за ним ещё в два раза меньше. И так далее. Оператор чтобы перейти от текущего члена к следующему: a = a / 2.
Еще будет нужна переменная для суммы: s.
Псевдокод:
eps = ...
a = 1.0 / 2.0 # первый член ряда
s = 0.0 # сумма стартует всегда с нуля
while a >= eps: # складываем пока на достигнута нужная точность
s = s + a # добавляем новый член в сумму
a = a / 2.0 # вычисляем следующий член
# s - содержит нужную сумму
Замечание по поводу применения eps. То что мы суммируем до a < eps, не означает что мы приблизились к сумме бесконечного ряда на расстояние eps. Для данного конкретного ряда разница между конечной суммой и бесконечной может достигать 2 * eps. Для других рядов будут другие соотношения. Никаких общих оценок дать нельзя.
