Программа, приблизительно вычисляющая значение собственного определенного интеграла методом Гаусса-Кронрода
Выполнили студенты Университета ИТМО Лазеев Сергей, Сущенко Роман, Рахматуллин Рамазан, Бусыгин Дмитрий
Цель работы: разработка программы, численно находящей значение определенного интеграла от достаточно гладкой функции
- Язык программирования Julia
Метод Гаусса подразумевает выражение определенного интеграла как сумму произведений некоторых коэффициентов (узлов и весов интегрирования). Квадратурные формулы наивысшей алгебраической степени точности или формулы Гаусса (см. ниже) выражают значение определенного интеграла с высокой точностью за счет выбора большого количества этих узлов. Как раз для того, чтобы найти наиболее точное значение интеграла, мы реализуем программу, т.к. при достаточно большом кол-ве узлов вычисления вручную становятся слишком трудоемкими.
Вычисление весов и узлов производится с помощью полинома Лежандра (подробнее)
Выбор параметра n зависит от желаемой точности вычисления (обычно выбирают n сравнимое со степенью функции, если это возможно).
Дополнительная сложность состоит в том, что для подсчета интегралов с другими границами интегрирования данная формула не работает. На помощь приходит формула изменения границ интегрирования:
Объединяя объявленные формулы, можно добиться численного значения интеграла.
Метод Кронрода расширяет метод Гаусса и предлагает после подсчета с количеством узлов n выполнить те же действия с 2n+1. При достаточно сложных подынтегральных функциях это имеет смысл. Также данный метод дает возможность оценить погрешность вычислений по методу Гаусса по следующей формуле:
- Установить компилятор Julia на Ваш ПК с официального сайта
- Скачать директорию src с кодом проекта
- Открыть директорию с помощью какого-либо текстового редактора или IDE (например Atom)
- Запустить файл main.jl и следовать указаниям программы
- Подписаться на GitHub авторов ❤️
- Самарский А.А., Гулин А.В. Численные методы: Учеб. пособие для вузов,— М.: Наука. Гл. ред. физ-мат. лит., 1989
- Wikipedia.org - Gauss–Kronrod quadrature formula
- Wikipedia.org - Legendre_polynomials
- Wikipedia.org - Gaussian_quadrature
- Wiki-wiki.ru - Работа с многочленами Лежандра
- JuliaLib - Gauss–Kronrod quadrature
- Hmong.press - Квадратура Гаусса-Кронрода
- julialang.org - Julia syntax
- Solving non-linear systems of equations in Julia.