- •Задача 1
- •Задача 2
- •Задача 3
- •Условие задачи
- •Входные данные
- •Описание функций
- •Название: filequestion.
- •Задача 4
- •Условие задачи
- •Входные данные.
- •Выходные данные
- •Описание функций
- •Название: filequestion.
- •Задача 5
- •Условие задачи
- •Входные данные
- •Выходные данные
- •Описание функций
- •Название: filequestion.
- •Задача 6
Задача 4
Условие задачи
Разработка программы расчета определённого интеграла методом Монте-Карло.
Математическая модель
Предположим, требуется вычислить определённый интеграл
Рассмотрим случайную величину , равномерно распределённую на отрезке интегрирования . Тогда также будет случайной величиной, причём её математическое ожидание выражается как ,
где — плотность распределения случайной величины , равная на участке .
Таким образом, искомый интеграл выражается как .
Но математическое ожидание случайной величины можно легко оценить, смоделировав эту случайную величину и посчитав выборочное среднее.
Итак, бросаем точек, равномерно распределённых на , для каждой точки вычисляем . Затем вычисляем выборочное среднее:
.
В итоге получаем оценку интеграла:
Точность оценки зависит только от количества точек .
Входные данные.
Начало отрезка интегрирования.
Назначение: исходные данные для решения определённого интеграла.
Обозначение в программе: переменная a.
Тип: вещественный (float).
Диапазон допустимых значений: [3.4E-38; 3.4E+38]
Конец отрезка интегрирования.
Назначение: исходные данные для решения определённого интеграла.
Обозначение в программе: переменная b.
Тип: вещественный (float).
Диапазон допустимых значений: [3.4E-38; 3.4E+38]
Количество точек
Назначение: исходные данные для решения задачи методом Монте-Карло
Обозначение в программе: переменная N.
Тип: целочисленный (int).
Диапазон допустимых значений: (0;32767]
Выходные данные
4.1 Значение определённого интеграла
Обозначение в программе: переменная r.
Тип: вещественный (float).
Описание функций
Название: MMK
Назначение: реализация метода Монте-Карло
Описание внешних эффектов: перед каждым вызовом функции menu2 выводится сообщение паузы и экран очищается.
Список формальных параметров:
a
Тип: вещественный (float)
Назначение: начало отрезка интегрирования
b
Тип: вещественный (float)
Назначение: конец отрезка интегрирования
N
Тип: целочисленный (int)
Назначение: количество точек для метода Монте-Карло
Блок-схема
-
+
Начало
negative=false;
b<a
temp=b;
b=a;
a=temp;
negative=true;
result=0;
srand(time(NULL));
i=0; i<N; i++
result/=N;
result*=(b-a);
negative
result*=(-1);
result+=t4f(a+fabs(b-a)*rand()/RAND_MAX);
return result;
+
-
Название: t4f
Назначение: подынтегральная функция
Список формальных параметров:
arg
Тип: вещественный (float)
Назначение: аргумент
Название: filequestion.
Назначение: определение способа ввода исходных данных (в окне программы либо из файла); определение необходимости сохранения результатов в текстовый файл
Указания по вызову и использованию: для определения способа ввода исходных данных следует передать в функцию в качестве параметра число 1, для определения необходимости сохранения результатов в текстовый файл следует передать число 2.
Список формальных параметров:
pos
Тип: целочисленный (int).
Назначение: определение назначения функции как определяющей способ ввода исходных данных либо как определяющей необходимость сохранения результатов в текстовый файл.
Описание внешних эффектов: в зависимости от определенного для функции назначения и правильности её вызова в программе выдаются сообщения, просящие пользователя выбрать способ ввода данных; сохранять результаты в файл или нет. В случае неправильного вызова функции выводится сообщение об ошибке в программе.
Название: enter_int
Назначение: считывание вводимой информации и, в случае ввода целого числа, его возвращение
Указания по вызову и использованию: следует использовать при необходимости ввода целочисленных данных
Описание внешних эффектов: в случае ввода нецелочисленной информации выводится сообщение о том, что введено не целое число
Название: enter_float
Назначение: считывание вводимой информации и, в случае ввода вещественного числа, его возвращение
Указания по вызову и использованию: следует использовать при необходимости ввода вещественных данных
Описание внешних эффектов: в случае ввода невещественной информации выводится сообщение о том, что введено не вещественное число.
Название: t4
Назначение: решение и вывод результатов
Описание внешних эффектов: В случае ввода данных из файла выводится приглашение ввести название файла, из которого считываются пределы интегрирования и количество точек для метода Монте-Карло. В случае ввода данных клавиатурой выводится приглашение ввести название файла для просмотра. В случае ошибки открытия файла-источника выводится сообщение с названием ошибки. После завершения вычислений на экран выводится полученное значение. В случае необходимости сохранения результатов в текстовый файл, выводится сообщение, приглашающее ввести имя файла для сохранения. В случае невозможности создать файл с введённым именем, выводится сообщение с названием ошибки. При успешном открытии файла, в него записывается сообщение с результатами работы функции, идентичное выведенному на экран.
Тестирование
Исходные данные:
Аналитическое решение:
Результаты работы программы:
I=15.113668