200 likes | 393 Views
Порівняння точності підрахунку числа Пі у системах моделювання OpenGPSS, GPSS World та AnyLogic. Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» Київ, Україна.
E N D
Порівняння точності підрахунку числа Пі у системах моделювання OpenGPSS, GPSS World та AnyLogic Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» Київ, Україна
Метод Монте-Карло - групи числових методів, основаних на одержанні великої кількості реалізацій стохастичного (випадкового) процесу, який формується у той спосіб, щоб його ймовірнісні характеристики збігалися з аналогічними величинами задачі, яку потрібно розв'язати. 1. Метод Монте-Карло Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 2
Задано квадрат a=2R. Впишемо коло R. Тоді: З іншої сторони: 2. Метод Монте-Карло Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 3
При великій кількості точок: Звідки: Або: 2. Метод Монте-Карло (продовження) Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 4
3. Експерименти з OpenGPSS Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 5
3.1. Тестовая программа дляOpenGPSS ;модельний час – кількість випадкових точок ;транзакт - точка на декартовій площині GENERATE 1 pi EQU 10 ;визначаємо координати випадкової точки ;причому використовуємо два незалежних різних ДПЧ ;по одному на координату SAVEVALUE coordinate_x,RN2 SAVEVALUE coordinate_y,RN3 ;збільшуємо кількість всіх точок SAVEVALUE all_point_count+,1 ;перевіряємо чи входить точка в коло TEST GE X$coordinate_x#X$coordinate_x+ X$coordinate_y#X$coordinate_y,0.25,GOTO_DESTROY ;збільшуємо кількість точок у колі SAVEVALUE in_circle+,1 GOTO_DESTROY TERMINATE ;часовий сегмент – вказуємо кількість точок GENERATE 1000000 ;вираховуємо значення Пі SAVEVALUE pi,4#X$in_circle/X$all_point_count TERMINATE 1 RMULT ,100,100 START 1 Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 6
3.2. Настройка ДПЧ в системі OpenGPSS Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 7
3.3. Відносна похибка для різних ЛКГу системі OpenGPSS Порівняння точності підрахунку числа Пі у системах моделювання
3.3. Відносна похибка для різних ЛКГ у системі OpenGPSS(продовження) Порівняння точності підрахунку числа Пі у системах моделювання
3.4. Відносна похибка для 5-ти перших ЛКГ у системі OpenGPSS Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 10
3.5. Результати OpenGPSS. GNU Compiler Collection Порівняння точності підрахунку числа Пі у системах моделювання
4. Експерименти з GPSS World Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 12
4.1. Тестовая программа дляGPSS World GENERATE 1 var_pi FVARIABLE 1000#4#X$in_circle/X$all_point_count/1000 var_test FVARIABLE X$coordinate_x#X$coordinate_x+X$coordinate_y#X$coordinate_y SAVEVALUE coordinate_x,RN2 SAVEVALUE coordinate_y,RN3 SAVEVALUE all_point_count+,1 TESTGE V$var_test,250000,GOTO_DESTROY SAVEVALUE in_circle+,1 SAVEVALUE pi,V$var_pi GOTO_DESTROY TERMINATE 1 RMULT ,100,100 START 1000 Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 13
4.2. Результати GPSS World Порівняння точності підрахунку числа Пі у системах моделювання
5. Експерименти з AnyLogic Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 15
5.1. Тестова програма для AnyLogic double x, y, pi; int all_point_count, in_circle; //ініціалізація локальних змінних all_point_count = 0; in_circle = 0; for( int j=0; j<10; j++ ) { //генеруємо 10 разів for( int i=0; i<1000000; i++ ) { //генеруємо 1000000 точок //визначаємо координати випадкової точки //причому використовуємо один ДПЧ на дві координати //по одному на координату x = uniform(0,1); y = uniform(0,1); //збільшуємо кількість всіх точок all_point_count = all_point_count + 1; //збільшуємо кількість точок у колі if (x*x + y*y>0.25) in_circle = in_circle + 1; } //перераховуємо число Пі pi = (double)4*in_circle/all_point_count; my_file.println(pi); } Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 16
5.2. Настройка ДПЧ в системі AnyLogic Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 17
5.3. Результати AnyLogic Порівняння точності підрахунку числа Пі у системах моделювання
6. Відносна похибка підрахунку Пі Порівняння точності підрахунку числа Пі у системах моделювання www.simulation.kiev.ua 19
Питання ? www.simulation.kiev.ua Порівняння точності підрахунку числа Пі у системах моделювання