You are on page 1of 6

Хмельницький національний університет

Факультет інформаційних технологій


Кафедра комп’ютерних наук

Звіт
до лабораторної роботи №1 (2 частина)
з дисципліни «Моделювання систем та системний аналіз»
на тему:
«Імітаційне моделювання для вирішення інженерно-обчислювальних задач
(методом Монте-Карло)»
Варіант - 24

Виконав:
ст. гр. КН-21-1
Швачка Ігор
Перевірив:
Доцент Ілона Драч

Хмельницький 2022
Завдання
Створити реалізацію методу Монте-Карло, використовуючи парадигму ООП (на
платформі DOT.NET) та протестувати за допомогою цієї реалізації розв’язок,
наведений у прикладі для рівняння кола x 2+ y 2=2 4 2.
Хід роботи
Теоретична частина:
1. Суть імітаційного моделювання
Під терміном "імітаційне моделювання" зазвичай мають на увазі — це
метод дослідження, заснований на тому, що система, яка вивчається,
замінюється імітатором і з ним проводяться експеременти з метою
отримання інформації про цю систему.
2. Зміст методів Монте-Карло
Метод Монте-Карло призначений для моделювання складних систем.
Замість того, щоб використовувати звичайні для подібних завдань міркування
комбінаторики, можна просто провести «експеримент» за допомогою
комп’ютерних програм.
Практична частина:
Для початку було створено інтерфейс, який описує рівняння заданого
кола x + y 2=24 2:
2

Після нього було створено клас, який успадковує цей інтерфейс:


Потім було реалізовано абстрактний клас, де було описано делегат з
сигнатурою функції, що відповідає сигнатурі функції, або буде
використовуватися для опису ліній, що обмежують фігуру, для якої необхідно
знайти площу. Створено об’єкт класу funk, для використання всіма його
класами, що будуть успадковувати Class1. І описано абстрактний метод Sraw,
який підраховує кількість точок, які попали всередину фігури, обмеженої
заданими лініями із всіх точок згенерованих випадковим чином.

Щоб згенерувати координати точок, було створено окремий клас Gener.


Для збереження координат точок він використовує двовимірний масив
MAS_XY, та для генерації метод Next, класу Random бібліотеки класів .NET.

Для реалізації методу Sraw, було створено клас Analiz, що є спадкоємцем


класу Class1. І також в цьому ж класі реалізований віртуальний метод Area, в
якому відбувається знаходження площі квадрата, що описує коло.
Щоб визначити площу нашої фігури, був створений клас Area_P.

Послідовність проведення необхідних розрахунків показано в методі


button2_Click, процес побудови графіків - button1_Click.
Усі класи програми відображено на діаграмі класів.

Усі вхідні данні для роботи програми отримуються з форми, а


результатами розрахунків відображаються на ній. Був проведений аналогічний
експеримент з вхідними даними на 1000. Відповідний результат відображений
на рисунку 1.

Рисунок 1
Висновок: За допомогою програмного забезпечення та отриманих результатів у
ньому, можна побачити на рис.1, що при 10000 рандомно згенерованих точок
рис.1, з яких 7832 влучила у коло, площа кола становить 1804,4928 см2.

You might also like