Найти сумму бесконечного ряда если ряд расходящийся вывести сообщение об этом

Обновлено: 18.05.2024

Начальный курс программирования для студентов направления "Прикладная математика" Одесского национального университета имени И.И.Мечникова

dr.Mazurok

Software developer AI Scientist Ass.prof Odessa National I.I.Mechnikov University

Личные Ссылки

Проверенные Сервисы

Jane Platonova

  • e-olymp 396. Дождь 24/11/2021
  • OCPC2021 K: Нобелевская премия 13/11/2021
  • OCPC2021 J: Театр теней 13/11/2021
  • OCPC2021: I Белка в колесе 13/11/2021
  • OCPC2021 H: Счастья всем даром! 13/11/2021

Следующая задача была предложена Джону Фон-Нейману:

Два велосипедиста [latex]a[/latex] и [latex]b[/latex] начинают поездку навстречу друг другу в одно и то же время с мест, находящихся на расстоянии [latex]250[/latex] друг от друга, [latex]a[/latex] движется со скоростью [latex]10[/latex] миль в час, [latex]b[/latex] движется со скоростью [latex]15[/latex] миль в час. В это же время муха взлетает с колеса велосипедиста [latex]a[/latex] и движется навстречу к [latex]b[/latex], затем разворачивается и летит обратно. Пока велосипедисты приближаются друг к другу, муха продолжает летать между ними, касаясь каждый раз переднего колеса велосипедистов, пока, наконец, не будет раздавлена колесами встретившихся велосипедов. Так как муха летает быстрее каждого из велосипедистов, она совершает бесконечное количество полетов, при этом пройдя конечное расстояние (бесконечный ряд сходится). Какое расстояние пролетела муха?

Фон-Нейман немедленно вычислил бесконечный ряд (в уме!), и получил верный ответ: [latex]200[/latex] миль.

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

Первая строка содержит количество тестов [latex]p (1 \leqslant p \leqslant 1000)[/latex].

Каждый тест состоит из одной строки, содержащей пять чисел: номер теста [latex]n[/latex] и четыре действительных числа: начальное расстояние между велосипедистами [latex]d (10 \leqslant d \leqslant 1000)[/latex], скорость первого велосипедиста [latex]a (1 \leqslant a \leqslant 30)[/latex] в милях в час, скорость второго велосипедиста [latex]b (1 \leqslant b \leqslant 30)[/latex] в милях в час и скорость мухи [latex]f (a \leqslant b

Безусловно, многие ознакомленные с курсом математического анализа люди (или же юные подражатели Фон-Неймана) после ознакомления с условием задачи мгновенно подумали о сумме сходящегося бесконечного ряда. Однако, если абстрагироваться от пестрых намеков содержания и попробовать мыслить менее глобально, можно прийти к куда более простому варианту решения. На самом деле под витиеватой формулировкой таится обыкновенная задача на движение с некоторым дополнительным фактором!

Согласно условию, велосипедисты [latex]a[/latex] и [latex]b[/latex] двигаются навстречу друг другу, а следовательно их скорость сближения (общая скорость) будет равна сумме скоростей каждого из велосипедистов: [latex]a + b[/latex]. По знакомой из школьного курса математики формуле [latex]S = V \times t[/latex] (тогда [latex]t = \frac < S >< V >[/latex]), разделив расстояние между велосипедистами [latex]d[/latex] на их скорость сближения, найдем время [latex]t[/latex], спустя которое велосипедисты встретятся: [latex]t = d / (a + b)[/latex]. Муха, перелетающая с одного колеса на другое со скоростью [latex]f[/latex] достигнет момента своей погибели ровно тогда же, когда встретятся велосипедисты, то есть спустя то же время [latex]t[/latex]. Тогда, умножив скорость мухи на это время, то есть [latex]f\times t[/latex], получим расстояние [latex]flyDist[/latex], преодолённое мухой.
Для корректной реализации кода задачи сначала считываем количество тестов [latex]p[/latex], затем создаём цикл, внутри которого считываем все необходимые для вышеописанных действий переменные, производим нужные вычисления и, с помощью функции cout . precision и замечания fixed , выводим номер теста и его результат с точностью до двух десятичных знаков.

Конечно, данную задачу можно решить и используя сумму ряда, однако этот способ получился бы намного более сложным и громоздким. Поэтому такое удивительное высказывание, скорее всего, было лишь тонкой шуткой остроумного Фон-Неймана. Сам же он мог решить задачу в уме простым путем, описанным выше, но назвать более сложный, чтобы удивить современников и последователей.

Условие задачи:
Найти сумму сходящегося ряда:
[latex]\frac + \frac + \frac + … + \frac + …[/latex]



Перевод поста Давендра Кападия (Devendra Kapadia) "The ABCD of Divergent Series."
Выражаю благодарность за помощь в переводе Андрею Дудину.

Какова сумма всех натуральных чисел? Интуиция подсказывает, что ответ — бесконечность. В математическом анализе сумма натуральных чисел является простым примером расходящегося ряда. Тем не менее, математики и физики сочли полезным придать дробные, отрицательные и даже нулевые значения суммам таких рядов. Цель моей статьи — желание отодвинуть завесу тайны, окружающую результаты суммирования расходящихся рядов. В частности, я буду использовать функцию Sum (функция поиска частичных сумм, рядов и т. п. в Mathematica), а так же другие функции в Wolfram Language для того, чтобы объяснить в каком смысле стоит рассматривать следующие утверждения:

Важность обозначений формул буквами A, B, C, и D вскоре станет вам понятна.

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

Общий член ряда, начиная с n = 0, определяется по формуле:

Теперь зададим сумму членов ряда от i = 0 до некоторого конечного значения i = n.

Эта конечная сумма называется частичной суммой ряда.

График значений таких частичных сумм показывает, что их значения приближаются к числу 2 с ростом n:

Summirovanie-rashodjashhihsja-rjadov_5.jpg

Применяя функцию Limit (поиск предела последовательности или функции в точке) найдем предел значения частичных сумм этого ряда при стремлении n к бесконечности, что подтвердит наши наблюдения.

Summirovanie-rashodjashhihsja-rjadov_7.jpg

Функция Sum даёт такой же результат, когда мы производим суммирование членов ряда в пределах от 0 до бесконечности.

Мы говорим, что данный ряд (сумма данной бесконечно убывающей геометрической прогрессии) сходится и что его сумма равна 2.

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

Бесконечный ряд который не сходится называется расходящимся. По определению, сумма расходящегося ряда не может быть найдена с помощью рассмотренного выше метода частичных сумм. Тем не менее, математики разработали различные способы присваивания конечных числовых значений суммам этих рядов. Такая сумма называется регуляризованной суммой расходящегося ряда. Процесс вычисления регуляризованных сумм называется регуляризацией.

Теперь мы рассмотрим пример A из вступления.

“A” обозначает Абеля, знаменитого норвежского математика, который предложил одну из техник регуляризации расходящихся рядов. В ходе своей короткой жизни, он умер всего в 26 лет, Абель достиг впечатляющих результатов в решении одних из самых трудных математических задач. В частности, он показал, что решение алгебраического уравнения пятой степени не может быть найдено в радикалах, поставив тем самым точку в проблеме, которая оставалась нерешенной на протяжении 250 лет до него.

Для того чтобы применить метод Абеля, заметим, что общий член данного ряда имеет вид:

Это можно легко проверить, найдя несколько первых значений a[n].

Summirovanie-rashodjashhihsja-rjadov_14.jpg

Summirovanie-rashodjashhihsja-rjadov_15.jpg

Как можно увидеть на графике ниже, частичные суммы ряда принимают значения, равные 1 или 0 в зависимости от того, четное n или нечетное.

Summirovanie-rashodjashhihsja-rjadov_16.jpg

Регуляризация Абеля может быть применена к этому ряду в два шага. Сначала мы строим соответствующий степенной ряд.

Затем мы берем предел этой суммы при x стремящемся к 1, заметим при этом, что соответствующий ряд сходится для значений x меньших, но не равных 1.

Эти два шага можно объединить, сформировав, по сути, определение суммы расходящегося ряда по Абелю.

Summirovanie-rashodjashhihsja-rjadov_25.jpg

Мы можем получить тот же ответ используя опцию Regularization для функции Sum следующим образом.

Summirovanie-rashodjashhihsja-rjadov_27.jpg

Значение 1/2 представляется разумным, так как оно является средней величиной из двух значений, 1 и 0, принимаемых частичной суммой данного ряда. Кроме того, используемый в данном методе предельный переход интуитивно понятен, т. к. при x = 1 степенной ряд совпадает с нашим расходящимся рядом. Однако, Абель был сильно обеспокоен отсутствием строгости, которое было присуще математическому анализу того времени, и выражал свою обеспокоенность об этом:

Обратимся теперь к примеру B, в котором утверждается, что:

“B” обозначает Бореля, французского математика, который работал в таких областях как теория меры и теория вероятностей. В частности, Борель связан с так называемой “теоремой о бесконечных обезьянах”, которая утверждает, что если абстрактная обезьяна будет случайным образом ударять по клавиатуре пишущей машинки на протяжении бесконечного количества времени, то вероятность того, что она напечатает некоторый конкретный текст, например, полное собрание сочинений Уильяма Шекспира, отлична от нуля.

Для того чтобы применить метод Бореля заметим, что общий член данного ряда имеет вид:

Регуляризация Бореля может быть применена к быстро расходящимся рядам в два шага. На первом шаге мы вычисляем экспоненциальную производящую функцию для последовательности членов данного ряда. Стоящий в знаменателе факториал обеспечивает сходимость данного ряд при всех значениях параметра t.

Затем мы производим преобразование Лапласа нашей экспоненциальной производящей функции и ищем его значение в точке s=1.

Summirovanie-rashodjashhihsja-rjadov_35.jpg

Эти шаги можно объединить, в итоге мы получим, по сути, определение суммы расходящегося ряда по Борелю.

Summirovanie-rashodjashhihsja-rjadov_37.jpg

Также мы можем использовать специализированные функции Wolfram Language для поиска экспоненциальной производящей функции и преобразования Лапласа:

Summirovanie-rashodjashhihsja-rjadov_39.jpg

При этом, ответ можно получить непосредственно с помощью Sum следующим образом.

Summirovanie-rashodjashhihsja-rjadov_41.jpg

Определение суммы по Борелю разумно, т. к. оно даёт тот же самый результат, что и обычный метод частичных сумм, если его применить к сходящемуся ряду. В этом случае можно поменять местами суммирование и интегрирование, и затем определить Гамма-функцию, при этом мы получим, что соответствующий интеграл будет равен 1 и останется просто, по сути, исходная сумма ряда:

Summirovanie-rashodjashhihsja-rjadov_43.jpg

Однако в случае с расходящимися рядами поменять местами знаки суммы и интеграла нельзя, что приводит к интересным результатам, которые даёт данный метод регуляризации.

Суммирование по Борелю представляет собой универсальный метод суммирования расходящихся рядов, который применяется, скажем, в квантовой теории поля. О применении суммирования по Борелю существует огромная коллекция литературы.

Пример C утверждает что:

“C” обозначает Чезаро (на англ. языке его фамилия пишется как Cesaro), итальянского математика, который внес значительный вклад в дифференциальную геометрию, теорию чисел и математическую физику. Чезаро был очень продуктивным математиком и написал около 80 работ в период с 1884 по 1886 г., до того, как получил степень PhD в 1887!

Для начала заметим, что общий член ряда, начиная с n = 0, имеет вид:

График показывает сильную осцилляцию частичных сумм данного ряда.

Summirovanie-rashodjashhihsja-rjadov_48.jpg

Метод Чезаро использует последовательность средних арифметических значений частичных сумм ряда для того, чтобы подавить осцилляции, что демонстрирует следующий график.

Summirovanie-rashodjashhihsja-rjadov_50.jpg

Формально говоря, суммирование по Чезаро определяется как предел последовательности средних арифметических значений частичных сумм ряда. Вычисляя данный предел для ряда из примера C, мы получим ожидаемый нами результат -1/2 (см. график выше).

Summirovanie-rashodjashhihsja-rjadov_52.jpg

Сумма по Чезаро может быть получена непосредственно, если мы в функции Sum используем данный тип регуляризации, указав соответствующее значение опции Regularization.

Summirovanie-rashodjashhihsja-rjadov_54.jpg

Метод суммирования по Чезаро играет важную роль в теории рядов Фурье, в которых ряды на основе тригонометрических функций используются для представления периодических функций. Ряд Фурье для непрерывной функции может и не сходится, но соответствующая сумма по Чезаро (или чезаровское среднее, как её обычно называют) всегда будет сходиться к функции. Этот красивый результат называется теоремой Фейера.

Наш последний пример утверждает, что сумма натурального ряда равна -1/12.

“D” означает Дирихле, немецкого математика, который совершил огромный вклад в теорию чисел и ряд других областей математики. О широте вкладов Дирихле можно судить, просто введя в Mathematica 10 следующий код.

Summirovanie-rashodjashhihsja-rjadov_58.jpg

additional.jpg

Регуляризация по Дирихле получила свое название от понятия “ряд Дирихле”, который определяется следующим образом:

Специальным случаем данного ряда является дзета-функция Римана, которую можно определить так:

Функция SumConvergence говорит нам, что этот ряд сходится в том случае, если действительная часть параметра s будет больше 1.

Summirovanie-rashodjashhihsja-rjadov_63.jpg

Однако, сама по себе дзета-функция Римана может быть определена и для других значений параметра s с помощью процесса аналитического продолжения, известного из теории функций комплексного переменного. Например, при s = -1, мы получим:

Но при s = -1, ряд, задающий дзета-функцию Римана и есть натуральный ряд. Отсюда мы и получаем, что:

Summirovanie-rashodjashhihsja-rjadov_67.jpg

Еще один способ осознания этого результата заключается в том, чтобы ввести бесконечно малый параметр ε в выражение члена нашего расходящегося ряда, а затем найти разложение полученной функции в ряд Маклорена с помощью функции Series, как показано ниже.

Summirovanie-rashodjashhihsja-rjadov_69.jpg

Первое слагаемое в разложении выше стремится к бесконечности при приближении параметра ε к нулю, в то же время третий член и все следующие члены стремятся к нулю. Если отбросить все члены, зависящие от ε, то оставшееся число -1/12 как раз и будет суммой по Дирихле натурального ряда. Таким образом, сумма по Дирихле получается путем отбрасывания бесконечно малых и бесконечно больших членов разложения ряда, построенного описанным нами способом. Это находится в противоречии с тем, что принято отбрасывать лишь бесконечно малые величины в обычном математическом анализе, поэтому результат суммирования расходящихся рядов по Дирихле не столь интуитивно понятен.

Аналогично можно получить безумно странное значение 0 для расходящейся суммы квадратов натуральных чисел.

Summirovanie-rashodjashhihsja-rjadov_73.jpg

В этом случае в соответствующем разложении отсутствуют члены, не зависящие от параметра ε, в результате мы получаем 0.

Summirovanie-rashodjashhihsja-rjadov_75.jpg

Регуляризация Дирихле тесно связана с процессом дзета регуляризации, который используется в современной теоретической физике. В своей знаменитой работе, выдающийся британский физик Стивен Хокинг применил данный метод к задаче вычисления Фейнмановых интегралов в искривленном пространстве-времени. Статья Хокинга описывает процесс дзета-регуляризации очень системно и она приобрела большую популярность после публикации.

Наши знания о расходящихся рядах основаны на глубочайших теориях, разработанных одними из лучших мыслителей последних нескольких столетий. Тем не менее, я соглашусь со многими читателям, которые как и я, чувствуют некоторое непонимание, когда они видят их в современных физических теориях. Великий Абель, вероятно, был прав, когда назвал данные ряды “изобретением дьявола”. Не исключено, что какой-то будущий Эйнштейн, обладающий умом, свободным от всяческих устоев и авторитетов, отбросит преобладающие научные убеждения и переформулирует фундаментальную физику так, что в ней не не будет места для расходящихся рядов. Но даже если такая теория станет реальностью, расходящиеся ряды все равно будут давать нам богатый источник математических идей, освещая дорогу к более глубокому пониманию нашей Вселенной.

Пусть дан бесконечный ряд,найти его сумму. Вот что я написал сам:


2 ответа 2

Это если надо быстро и точно :)
Если надо помучиться - надо считать сумму.


можно сделать так:

но если написать код, то можно использовать итерационный подход

вы используете этот принцип, но ошиблись с формулой

и по идее подсчёт можно останавливать когда

где epsilon = 1e-10 например

можно конечно было бы сделать что S(n) == S(n-1) , то при схождении ряда возможно колебание вокруг значения из-за ограниченной точности чисел с плавающей запятой

Козырь О.Ф. Алгоритмизация организационных задач систем управления. Методические указания к выполнению лабораторных работ и домашних заданий. Старый Оскол. СТИ МИСиС, 2013г, — 72с.

Лабораторная работа №1. Вычисление суммы бесконечного

ряда с заданной точностью…………………………………………………

Лабораторная работа №2. Решение задач с использованием массивов…

Лабораторная работа №3. Решение задач с использованием структур….

Лабораторная работа №4. Решение задач с использованием функций….

Список рекомендуемой литературы………………………………………..

При подготовке к лабораторной работе необходимо ознакомиться с материалами лекций, начитанных по теме лабораторной работы, а также с предложенной литературой. Список предлагаемой литературы представлен в конце данных методических указаний.

В лабораторных работах даются теоретические сведения по рассматриваемой теме и примеры программ для данного класса задач. Все программы снабжены комментариями и подробными объяснениями. Для выполнения лабораторных работ разработаны тридцать вариантов индивидуальных заданий. Вариант задания выдается преподавателем в начале семестра или перед выполнением каждой лабораторной работы.

Тематика лабораторных работ охватывает основные моменты разработки оптимальных алгоритмов решения поставленных задач и программирования средствами языка С++, помогает студентам освоить приемы работы с массивами, структурами, функциями, файлами и строками. Для закрепления изученного материала и самопроверки студентами полученных знаний в каждой лабораторной работе дается перечень контрольных вопросов.

Общие требования к отчетам по лабораторным работам таков: отчет должен содержать:

— название лабораторной работы,

— текст программы (или несколько текстов программ), снабженный комментариями,

— результаты работы программы.

Лабораторная работа № 1.

ВЫЧИСЛЕНИЕ СУММЫ БЕСКОНЕЧНОГО РЯДА С ЗАДАННОЙ ТОЧНОСТЬЮ.

1. Цель работы: ознакомиться с текстовым редактором С++; освоить простейшие языковые конструкции ввода — вывода данных; приобрести практические навыки составления и отладки программ с простыми переменными; знать основные предопределённые языком типы данных и правила их описания; усвоить арифметические и логические операции; усвоить способы организации циклических вычислений и операторы управления.

2. Указания по подготовке к работе:

Необходимо ознакомиться с основными предопределёнными типами данных (целочисленные типы, вещественные типы, тип char и логический тип (bool)) и операторами управления (условными и цикла), а также операторами ввода-вывода. [см. лекцию 4, 5, 7, 8].

3. Теоретическая часть:

Часто в математических вычислениях возникает необходимость определить сумму бесконечного ряда с заданной точностью. На такие задачи налагается одно жесткое условие: ряд должен быть сходящимся, т.е. абсолютное значение текущего элемента ряда должно быть меньше абсолютного значения его предыдущего элемента.

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

В противном случае условие выхода из цикла никогда не будет выполнено и цикл станет бесконечным.

Пример: написать программу вычисления суммы бесконечного ряда с точностью eps=0.001:

Этот ряд сходится при |x| , а так как он знакопеременный, то его предел равен 0 (значения его элементов стремятся к нулю).Для достижения заданной точности требуется суммировать члены ряда, абсолютная величина которых больше eps. Для сходящегося ряда модуль члена ряда C при увеличении n стремится к нулю. При некотором n неравенство

| C | eps перестает выполняться и вычисления прекращаются.

В блок-схеме запрещено указывать команды, операции, функции конкретного языка программирования. Все действия должны быть описаны математически, а если это не возможно, то словесно.

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

Читайте также: