Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Министерство образования Республики Беларусь2.docx
Скачиваний:
4
Добавлен:
29.09.2019
Размер:
95.99 Кб
Скачать

Задача 4

  1. Условие задачи

Разработка программы расчета определённого интеграла методом Монте-Карло.

  1. Математическая модель

Предположим, требуется вычислить определённый интеграл

 

Рассмотрим случайную величину  , равномерно распределённую на отрезке интегрирования  . Тогда   также будет случайной величиной, причём её математическое ожидание выражается как ,

где   — плотность распределения случайной величины  , равная   на участке  .

Таким образом, искомый интеграл выражается как .

Но математическое ожидание случайной величины   можно легко оценить, смоделировав эту случайную величину и посчитав выборочное среднее.

Итак, бросаем   точек, равномерно распределённых на  , для каждой точки   вычисляем  . Затем вычисляем выборочное среднее:

  .

В итоге получаем оценку интеграла:

 

Точность оценки зависит только от количества точек  .

  1. Входные данные.

    1. Начало отрезка интегрирования.

Назначение: исходные данные для решения определённого интеграла.

Обозначение в программе: переменная a.

Тип: вещественный (float).

Диапазон допустимых значений: [3.4E-38; 3.4E+38]

    1. Конец отрезка интегрирования.

Назначение: исходные данные для решения определённого интеграла.

Обозначение в программе: переменная b.

Тип: вещественный (float).

Диапазон допустимых значений: [3.4E-38; 3.4E+38]

    1. Количество точек

Назначение: исходные данные для решения задачи методом Монте-Карло

Обозначение в программе: переменная N.

Тип: целочисленный (int).

Диапазон допустимых значений: (0;32767]

  1. Выходные данные

4.1 Значение определённого интеграла

Обозначение в программе: переменная r.

Тип: вещественный (float).

  1. Описание функций

    1. Название: 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;

+

-

    1. Название: t4f

Назначение: подынтегральная функция

Список формальных параметров:

  • arg

Тип: вещественный (float)

Назначение: аргумент

    1. Название: filequestion.

Назначение: определение способа ввода исходных данных (в окне программы либо из файла); определение необходимости сохранения результатов в текстовый файл

Указания по вызову и использованию: для определения способа ввода исходных данных следует передать в функцию в качестве параметра число 1, для определения необходимости сохранения результатов в текстовый файл следует передать число 2.

Список формальных параметров:

  • pos

Тип: целочисленный (int).

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

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

    1. Название: enter_int

Назначение: считывание вводимой информации и, в случае ввода целого числа, его возвращение

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

Описание внешних эффектов: в случае ввода нецелочисленной информации выводится сообщение о том, что введено не целое число

    1. Название: enter_float

Назначение: считывание вводимой информации и, в случае ввода вещественного числа, его возвращение

Указания по вызову и использованию: следует использовать при необходимости ввода вещественных данных

Описание внешних эффектов: в случае ввода невещественной информации выводится сообщение о том, что введено не вещественное число.

    1. Название: t4

Назначение: решение и вывод результатов

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

  1. Тестирование

Исходные данные:

Аналитическое решение:

Результаты работы программы:

I=15.113668