yandex rtb 1
ГоловнаЗворотній зв'язок
yande share
Главная->Математика і інформатика->Содержание->Тема 6. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

Моделирование систем

Тема 6. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

 

План:

  1. Имитационное моделирование.
  2. Метод Монте-Карло.
  3. Вычисление числа п методом Монте-Карло.
  4. Составление алгоритма и программы

 

1.  Имитационное моделирование.

Процессы в системе могут протекать по-разному в зависимости от условий, в которых находится система. Следить за поведением реальной системы при различ­ных условиях, пробовать всевозможные варианты бывает трудно, а иногда и невоз­можно. В таких случаях выручают модели. Построив модель, можно многократно возвращаться к начальному состоянию модельной системы и наблюдать за поведени­ем модели при изменении условий.

Такой метод исследования систем называется имитационным моделированием. Имитационное моделирование применяют в тех случаях, когда нужно учесть воз­можно большее разнообразие исходных данных, изучить протекание процессов в различных условиях.

 

2. Метод Монте-Карло.

Метод Монте-Карло, или метод статистических испытаний, — это численный метод, основанный на моделировании случайных величин и построении статистичес­ких оценок для искомых величин.

Суть метода состоит в следующем. Для вычисления площади некоторой фигуры проведем эксперимент: поместим данную фигуру в квадрат и будем наугад (как говорят математики, случайным образом) бросать точки в этот квадрат. Естественно предполагать, что чем больше площадь фигуры, тем чаще в нее будут попадать точки. (Представьте себе квадратный дворик и в нем детскую площадку. Каждому ясно, что во время снегопада количество снежинок, попавших на детскую площадку, пропор­ционально ее площади.) Таким образом, можно сделать допущение: при большом числе точек, наугад выбранных внутри квадрата, доля точек, содержащихся в данной фигуре, приближенно равна отношению площади этой фигуры и площади квадрата.

Такой метод приближенного нахождения площадей фигур и носит название метода Монте-Карло.

Теоретическая основа метода была известна давно. Однако до появления ЭВМ этот метод не мог найти сколько-нибудь широкого применения, ибо моделировать случай­ные величины вручную — очень трудоемкая работа.

Метод Монте-Карло получил свое название по имени города Монте-Карло в кня­жестве Монако, известного своими игорными заведениями. Дело в том, что одним из механических приборов для получения случайных величин является рулетка.

 

3.  Вычисление числа п методом Монте-Карло.

Рассмотрим имитационное моделирование на примере вычисления числа π = 3,1415922653... .

 

Постановка  задачи.

Для вычисления числа π с помощью метода Монте-Карло рассмотрим круг радиуса 1 с центром в точке (1, 1). Круг     ' вписан в квадрат, площадь которого Sквадрата= 2·2 = 4.

Выбираем внутри квадрата N случайных точек. Выбрать точку означает задать ее координаты — числа х и у.

Обозначим Nкруга — число точек, попавших при этом внутрь круга.

Исходными данными задачи являются длина стороны квадрата, содержащего круг, и количество точек, которые мы будем случайным образом выбирать внутри квадрата.

Результатом решения задачи является площадь круга.

Точка принадлежит квадрату, если 0≤х ≤ 2 и 0≤ y ≤ 2.

Если

(х - 1)2 + (у- 1)2≤1,

то точка попадает в круг, иначе она находится вне круга.

Это и есть математическое соотношение, позволяющее для каждой точки опреде­лять, лежит ли она в круге.

Геометрически очевидно, что

Отсюда

То есть для круга единичного радиуса:

Но для круга единичного радиуса , следовательно, получаем

                                                           (1)

Формула (1) дает оценку числа π. Чем больше N, тем больше точность этой оценки. Следует заметить, что данный метод вычисления площади будет справедлив только тогда, когда случайные точки будут не просто случайными, а еще и равномерно разбросанными по всему квадрату.

Для моделирования равномерно распределенных случайных чисел в интервале от 0 до 1 в языке программирования Паскаль используется датчик случайных чисел — функция RANDOM. Это специальная компьютерная программа, которая выдает последовательность случайных величин, равномерно распределенных от 0 до 1.

Таким образом, суть компьютерного эксперимента заключается в обращении к функции RANDOM для получения N раз координат х и у точки. При этом определяется, попала ли точка с координатами (х, у) в круг единичного радиуса. В случае попадания значение величины Nкруга увеличивается на 1.

 

 

 

Алгоритм.

 

Программа (Паскаль).

program monte_karlo;

var

i, n, nl: longint;

x, y, pi: real;

begin

randomize;

write('Введите количество точек n=');

readln (n) ;

for i: =1 to n do

begin

x:=2*random;

у:=2*random;

if sqr(x-1)+sqr(y-1)<=1 then nl:=nl+1

end;

pi:= 4*n1/n

writeln('pi=',  pi:15:11)

end.

 

Вычислительный  эксперимент   и  анализ  результатов.

 

Предложить учащимся выполнить практическую работу на ЭВМ, запустив програм­му m_carlo.bas, оформить результаты в таблице и сделать соответствующие выводы.

 

Текст программы mcarlo.bas (Бейсик).

 

 

PRINT "Введите n": INPUT N

SCREEN 9

VIEW (0, 0)-(639, 349), 3: WINDOW (-1, 1)-(1, -1): COLOR 5, 3

RANDOMIZE TIMER

' Рисуем оси и окружность

CLS

PAINT (0, 0), 3: LINE (-1, 0)-(1, 0), 1: LINE (0, -1)-(0, 1), 1: CIRCLE (0,

0), .5, 1, , , .85

' Рисуем насечки осей координат

FOR I = -.75 ТО .75 STEP .25

LINE (I, -.03)-(I, .03), 4: LINE (-.03, I * 1.55)-(.03, I * 1.55), 4

NEXT I

' Подписи над осями

LOCATE 12, 42: PRINT 0: LOCATE 12, 61: PRINT 1: LOCATE 2, 42: PRINT 1

LOCATE 1, 39: PRINT "Y": LOCATE 12, 79: PRINT "X": LOCATE 1, 1

PRINT "Внутри: ": LOCATE 2, 1

PRINT "Снаружи:": LOCATE 3, 1

PRINT "Число пи="

LOCATE 1, 9

PRINT 0

LOCATE 2, 9

PRINT 0

LOCATE 3, 4: PRINT "?"

INSIDE = 0

OUTSIDE = 0

FOR I = 1 TO N

X = (RND - .5) * 2

Y = (RND - .5) * 2

IF X ^ 2 + Y ^ 2 < 1 THEN

INSIDE = INSIDE + 1

LOCATE 1, 9

PRINT INSIDE

С = 4

ELSE

OUTSIDE = OUTSIDE + 1

LOCATE 2, 9

PRINT OUTSIDE

С = 8

END IF

S = 4 * INSIDE / N

LOCATE 3, 4: PRINT " "

LOCATE 3, 4: PRINT S

X = X * .5

Y=Y*.5*1.55

PSET (X, Y) , С

FOR J = 1 TO 100

NEXT J

NEXT I

 

Примерные результаты.

N

Результат

N

Результат

N

Результат

50

2,8000000000

2500

3,1408000000

10000

3,1404000000

50

3,2800000000

2500

3,1008000000

10000

3,1444000000

50

3,2800000000

2500

3,0784000000

10000

3,1588000000

600

3,1400000000

5000

3,1184000000

1000000

3,1440640000

600

3,1266666667

5000

3,1280000000

1000000000

3,1440640000

600

3,2333333333

5000

3,1656000000

 

 

Выводы.

•   С увеличением точности вычислений увеличивается время работы программы.

•   То, что при одном и том же количестве случайных точек получены разные результаты, объясняется тем, что точки все-таки случайные.

•   Математическая модель, выбранная нами для решения задачи на нахождение площади (числа я), отличается от предыдущих моделей тем, что в ней исполь­зуются случайные числа (такие модели называют вероятностными, поэтому и результаты могут получиться разными).

 

 

10