Содержание
Введение 2
Описание метода решения задачи 3
Описание программы 4
2.1. Описание файла const.h 5
2.2. Описание файла fdonk.h 6
2.3. Описание файла fequa.h 6
2.4. Описание файла MCmain.cpp 6
Описание методики тестирования программы 7
Руководство пользователя по работе с программой 10
4.1. Установка программы 10
4.2. Запуск программы 10
Ввод данных с клавиатуры 10
Примечание 10
Блок-схема программы 11
Заключение 19
Список использованных источников 20
Приложение А Файл const.h 21
Приложение B Файл fdonk.h 22
Приложение C Файл fequa.h 24
Приложение D Файл MCmain.cpp 28
Введение
Необходимость применения численного интегрирования чаще всего может быть вызвана отсутствием у первообразной функции представления в элементарных функциях и, следовательно, невозможностью аналитического вычисления значения определенного интеграла по формуле Ньютона-Лейбница. Также возможно ситуация, когда вид первообразной настолько сложен, что быстрее вычислить значение интеграла численным методом.
Существует несколько способов вычисления численного интегрирования, такие как метод трапеций, метод парабол, метод Гаусса-Кронрода. Преимущество метода Монте-Карло заключается в том, что этот алгоритм максимально прост для понимания и реализации. Его недостатком является то, что он обеспечивает гораздо меньшую точность по сравнению с другими алгоритмами.
Основной целью работы является разработка алгоритма программного продукта, который может использоваться в учебном процессе для иллюстрации работы алгоритма вычисления интеграла методом Монте -Карло для трех функций:
Задачи: реализовать ввод данных с проверкой на корректность, вычислить интеграл методом Монте-Карло, реализовать графический модуль для демонстрации принципа работы алгоритма.
Описание метода решения задачи
Ограничим функцию прямоугольником (n-мерным параллелепипедом в случае многих измерений), площадь которого можно легко вычислить;
«Набросаем» в этот прямоугольник (параллелепипед) некоторое количество точек (N штук), координаты которых будем выбирать случайным образом;
Определим число точек (K штук), которые попадут под график функции;
Площадь области, ограниченной функцией и осями координат, S задаётся выражением
Для малого числа измерений интегрируемой функции производительность Монте-Карло интегрирования гораздо ниже, чем производительность детерминированных методов. Тем не менее, в некоторых случаях, когда функция задана неявно, а необходимо определить область, заданную в виде сложных неравенств, стохастический метод может оказаться более предпочтительным.
Описание программы
Программа представляет собой единственный исполняемый файл. Она не создает служебных файлов в процессе работы и не используется дополнительными файлами.
Программируемый алгоритм работает следующим образов. Сначала программа выводит диалоговое окно, в котором пользователь должен выбрать уравнение для решения. Затем, программа дает возможность выбрать дополнительные параметры с клавиатуры. Все данные проверяются на корректность ввода. При некорректных данных программа выдает соответствующую ошибку. При вводе нецелого числа, дробная часть отбрасывается. После корректного введения исходных данных, программа начинает работу и выводит графическое иллюстрирование решение данного уравнения.
Описание файла const.H
В программе используются следующие константы:
Пределы интегрирования [-1000;1000];
Максимальное количество произвольных точек [1;500].
Глобальные переменные:
float donk, donk0 – переменные для проверки корректности ввода в специальных функциях;
float x0, x1 – пределы интегрирования;
float x, y – переменные для упрощенного построения графика и сравнений точек;
float n – количество произвольных точек;
float xmin, xmax, ymin, ymax – максимальные и минимальные значения по OY и OX;
float tchn – точно значение интеграла;
float step – шаг;
char kf – представление уравнения в диалоговом окне.
Объявления функций:
float donkey1() – проверка на корректность ввода номера уравнения;
float donkey2() – проверка на корректность ввода пределов интегрирования;
float donkey3() – проверка на корректность ввода коэффициентов;
int donkey4() – проверка на корректность ввода количества производных точек;
float equation1() – решение первого уравнения;
float equation2() – решение второго уравнения;
float equation3() – решение третьего уравнения.
Описание файла fdonk.H
В файле fdonk.h хранятся функции на проверку корректности ввода и функции генератора случайных чисел типа float с точностью до сотых. Эти функции непосредственно вызываются из функции main().
Переменные в функциях типа donkey[1,2,3]():
Bool right – флаг выполнения условия;
Float donx0, donkx1 – промежуточные переменные.