СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

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

Категория: Информатика

Нажмите, чтобы узнать подробности

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

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

Просмотр содержимого документа
«Имитационное моделирование»

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

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

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

2 . Вычисление числа   методом Монте-Карло     = 3,1415922653 ... Постановка задачи Для вычисления числа  с помощью метода Монте-Карло рассмотрим круг радиуса 1 с центром в точке (1, 1). Y 2 1 Круг вписан в квадрат, площадь которого  S квадрата = 2  2 = 4 1 2 X 0

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

= 3,1415922653 ...

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

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

Y

2

1

Круг вписан в квадрат, площадь которого

S квадрата = 2 2 = 4

1

2

X

0

Выбираем внутри квадрата N  случайных точек с координатами — х и у    Пусть N круга - число точек, попавших внутрь круга Y Дано:  S квадрата, N круга Найти:  площадь круга  2 ( X, Y )       Математическая модель Точка принадлежит квадрату, если 0  х  2 и 0  y  2  Если ( x – 1) 2 +( y – 1) 2   1, то точка попадает в круг, иначе она находится вне круга.  1                  1 X 2 0

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

Пусть N круга - число точек, попавших внутрь круга

Y

Дано: S квадрата, N круга

Найти: площадь круга

2

( X, Y )

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

Точка принадлежит квадрату,

если 0 х 2 и 0 y 2

Если ( x – 1) 2 +( y – 1) 2 1,

то точка попадает в круг,

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

1

1

X

2

0

Геометрически очевидно, что Отсюда То есть для круга  единичного радиуса :  Но для круга единичного радиуса S круга =  , следовательно, получаем (1) Формула (1) дает оценку числа  .   Чем больше N , тем точнее эта оценка.

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

Отсюда

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

Но для круга единичного радиуса S круга = ,

следовательно, получаем

(1)

Формула (1) дает оценку числа . Чем больше N , тем точнее эта оценка.

нач Ввод N N круга =0 I=1, N ,1 X=2*RND Y=2*RND нет (X-1) 2 +(Y-1) 2  1 да N круга = N круга +1   =4*N круга / N Вывод    кон

нач

Ввод N

N круга =0

I=1, N ,1

X=2*RND Y=2*RND

нет

(X-1) 2 +(Y-1) 2 1

да

N круга = N круга +1

=4*N круга / N

Вывод

кон

program monte_karlo; uses crt; var i,n,n1:longint; x,y,pi:real; begin randomize; write(' Введите количество точек n='); readln(n); for i:=1 to n do begin x:=2*random; y:=2*random; if sqr(x-1)+sqr(y-1)end; pi:=4*n1/n; writeln('pi = ', pi:15:11); end.

program monte_karlo;

uses crt;

var i,n,n1:longint; x,y,pi:real;

begin

randomize;

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

readln(n);

for i:=1 to n do

begin

x:=2*random;

y:=2*random;

if sqr(x-1)+sqr(y-1)

end;

pi:=4*n1/n;

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

end.

Вычислительный эксперимент и анализ результатов Выполнить практическую работу на ЭВМ, запустив программу m __ karlo . pas , оформить результаты в таблице и сделать соответствующие выводы N Результат 50 3.3600000 N 50 50 3.1200000 Результат 2500 N 2500 600 600 Результат 2500 10000 10000 5000 600 10000 5000 1000000 5000 1000000000

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

Выполнить практическую работу на ЭВМ, запустив программу m __ karlo . pas , оформить результаты в таблице и сделать соответствующие выводы

N

Результат

50

3.3600000

N

50

50

3.1200000

Результат

2500

N

2500

600

600

Результат

2500

10000

10000

5000

600

10000

5000

1000000

5000

1000000000

PRINT

PRINT "Vvedite n": INPUT n

Screen 9

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

Randomize Timer

'Osi & krug

Cls

PAINT (0, 0), 3

LINE (-1, 0)-(1, 0), 1

LINE (0, -1)-(0, 1), 1

CIRCLE (0, 0), .5, 1, , , .85

'Nasechki osei

For i = -0.75 To 0.75 Step 0.25

Line (i, -0.03)-(i, 0.03), 4: Line (-0.03, i * 1.55)-(0.03, i * 1.55), 4

Next i

'Podpisi osei

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 "Vnutri": LOCATE 2, 1

Print "Snarugi": LOCATE 3, 1

Print "Chislo PI="

LOCATE 1, 9 : Print 0 : LOCATE 3, 4: Print

LOCATE 1, 9 : Print 0 : LOCATE 3, 4: Print "?"

inside = 0 : outside = 0

For i = 1 To n

x = (Rnd - 0.5) * 2 : y = (Rnd - 0.5) * 2

If x ^ 2 + y ^ 2

inside = inside + 1

LOCATE 1, 9 : Print inside

c = 4

Else

outside = outside + 1

LOCATE 2, 9 : Print outside

c = 8

End If

s = 4 * inside / n

LOCATE 3, 4: Print " "

LOCATE 3, 4: Print s

x = x * 0.5 : y = y * 0.5 * 1.55

PSet (x, y), c

For j = 1 To 100

Next j

Next i