Статья опубликована в рамках: Научного журнала «Студенческий» № 39(293)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8, скачать журнал часть 9
РАЗРАБОТКА КОНСОЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ ЧИСЛЕННОГО ИНТЕГРИРОВАНИЯ ФУНКЦИЙ МЕТОДОМ СИМПСОНА НА ЯЗЫКЕ С++
АННОТАЦИЯ
В статье рассматривается процесс разработки консольного приложения для численного интегрирования, ориентированного на решение интегралов, которые не могут быть вычислены аналитически. Основное внимание уделено методу Симпсона, одному из наиболее точных и эффективных методов численного интегрирования. Описана теория метода, основанная на аппроксимации подынтегральной функции параболической кривой, что позволяет добиться высокой точности при умеренном объеме вычислений. Представлен подробный алгоритм реализации метода Симпсона в приложении, начиная с ввода исходных данных и заканчивая получением окончательного результата. Особое внимание уделено вопросам оптимизации кода и обеспечению корректности вычислений. Результаты статьи могут быть полезны специалистам в области вычислительной математики и инженерии, а также студентам и преподавателям, изучающим численные методы интегрирования.
Ключевые слова: численное интегрирование, метод Симпсона, вычислительные методы, C++, аппроксимация, интеграл, программное приложение.
Численное интегрирование — это важный инструмент, используемый для вычисления интегралов, для которых аналитическое решение либо невозможно, либо слишком сложно. Оно широко применяется в вычислительной математике, инженерии и физике, где точные аналитические решения отсутствуют или труднодоступны [1, 3]. Разработка приложений для численного интегрирования позволяет автоматизировать вычисления, повысить их точность и предоставить пользователям удобные средства для решения математических задач [5].
Для создания консольного приложения был выбран язык программирования C++, так как он отличается высокой эффективностью, поддержкой современных стандартов и наличием широкого спектра библиотек для работы с математическими функциями [4, 6].
Цель статьи — продемонстрировать процесс разработки приложения, рассмотреть численное интегрирование при помощи метода Симпсона и определить в каких сферах может быть полезен данный метод интегрирования.
Численное интегрирование представляет собой аппроксимацию значения определённого интеграла на заданном интервале. Оно сводится к разбиению области интегрирования на малые отрезки и вычислению значений функции на этих отрезках с последующим их суммированием. В приложении реализовано решение интегралов при помощи метода Симпсона.
Метод Симпсона основывается на аппроксимации подынтегральной функции параболической кривой на каждом интервале [1]. Интервал интегрирования [a,b] разбивается на n равных подынтервалов, где n должно быть четным. Затем через каждые три соседние точки () строится парабола, которая наилучшим образом аппроксимирует функцию на этом участке, за счет чего этот метод является более сложным методом численного интегрирования, использующим параболическую аппроксимацию функции на каждом интервале. Этот метод значительно более точен, чем методы прямоугольников и трапеций, поскольку парабола может более точно воспроизводить поведение функции на отрезке. Метод Симпсона требует, чтобы количество разбиений было чётным, поскольку для параболической аппроксимации важно, чтобы количество точек на каждом отрезке было одинаковым [3]. Этот метод даёт наиболее точные результаты для гладких функций. Однако его вычислительная сложность выше, чем у методов прямоугольников и трапеций, поскольку для каждого отрезка необходимо выполнить больше вычислений.
Разработанное консольное приложение на языке программирования C++ предоставляет пользователю возможность произвести численное интегрирование методом Симпсона, для вычисления определённого интеграла произвольной функции на заданном интервале [6]. Программа позволяет вводить функцию для интегрирования, указывать нижний и верхний предел, а также количество разбиений интервала [4]. После ввода всех данных происходит вывод результата.
Для примера работы программы взята функция x^2 + 1 (рис. 1):
Рисунок 1. Ввод функции
После ввода функции программа запрашивает данные для нижнего, и верхнего пределов интегрирования (рис. 2):
Рисунок 2. Запрос данных у пользователя
Далее пользователь вводит количество разбиений (рис. 3):
Рисунок 3. Ввод количества разбиений
После ввода всех запрошенных данных программа выполняет вычисление и выводит результат (рис. 4):
Рисунок 4. Вывод результата
В приложении используется функция для парсинга строки, представляющей математическую функцию, и преобразования её в функциональный объект, который может быть использован для вычислений.
Метод Симпсона является мощным инструментом численного интегрирования, который сочетает в себе высокую точность и приемлемую вычислительную сложность [1, 5]. Его основное преимущество заключается в использовании параболической аппроксимации, что позволяет получать точные результаты даже для гладких функций. Хотя метод требует четного количества разбиений и имеет более высокую вычислительную сложность по сравнению с некоторыми другими методами, его эффективность оправдывает эти требования в большинстве практических приложений [4, 6].
Данное приложение может быть использовано в образовательных целях для изучения метода Симпсона, а также для решения прикладных задач в различных областях науки и техники. Код программы доступен по следующей ссылке [https://disk.yandex.ru/d/r_cYYCybJAbWiA].
Список литературы:
- Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы // Учебное пособие. – М.: Наука, 1987. – 632 с.
- Кнут Д. Искусство программирования. Том 2. Получисленные алгоритмы // Пер. с англ. – М.: Вильямс, 2012. – 832 с.
- Кудрявцев Л.Д. Кратный интеграл и численные методы интегрирования // Высшая математика. – М.: Наука, 1985. – 216 с.
- Пресс У., Тукколски С., Веттерлинг В., Фленнери Б. Численные рецепты на C++: искусство научных вычислений // Пер. с англ. – 2-е изд. – М.: ДМК, 2001. – 1008 с.
- Самарский А.А., Гулин А.В. Численные методы // Учебное пособие. – М.: Наука, 1989. – 432 с.
- Страуструп Б. Язык программирования C++ // Пер. с англ. – 4-е изд. – СПб.: Питер, 2015. – 1376 с.
Оставить комментарий