Содержание
-
Вероятностные модели. Метод Монте-Карло.
-
Качественная модель метода Монте-Карло: поместим геометрическую фигуру полностью внутрь квадрата; будем случайным образом «бросать» точки в этот квадрат, то есть с помощью генератора случайных чисел задавать точкам координаты внутри квадрата; будем считать, что отношение числа точек, попавших внутрь фигуры, к общему числу точек в квадрате приблизительно равно отношению площади фигуры к площади квадрата, причём это отношение тем точнее, чем больше количество точек.
-
R Y X -R Формальная модель: М – количество точек попавших внутрь квадрата; N – количество точек, которые случайно генерируются внутри квадрата. Sкр=Sкв*M/N
-
Круг вписан в квадрат со стороной 2R, площадь которого вычисляется по формуле: Sкв=4R2 Случайный выбор координат точек, которые попадают внутрь квадрата (N точек), должен производиться так, чтобы координаты точек x и y удовлетворяли условиям: -R
-
Компьютерная модель «Проект «Метод Монте-Карло» Option Strict Off Option Explicit On Friend Class frm1 Inherits System.Windows.Forms.Form Dim N, dblX, I, M As Object Dim dblY, S As Double Dim R As Integer Private Sub cmd1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmd1.Click
-
M = 0 R = Val(txtR.Text) N = Val(txtN.Text) 'Генерация точек For I = 1 To N dblX = 2 * R * Rnd() – R dblY = 2 * R * Rnd() - R If dblX ^ 2 + dblY ^ 2
-
Исследование модели: Ввести радиус окружности и количество генерируемых точек. После выполнения проета в текстовое поле будет выведено значение площади круга.
-
Задание: Определить методом Монте-Карло площадь треугольника, вершины которого имеют координаты (-1,0); (0, 1) и (1,0). -1 1 0 1 x y Замечание: Функция генерации случайных чисел работает так: если дать команду f= rnd(), то в переменную f будут попадать числа из интервала [0, 1]. Условие попадания точек внутрь треугольника : dblY>=0 и ABS(dblX) + ABS(dblY)
-
For I = 1 To N dblX = 2 * Rnd() - 1 dblY = Rnd() If dblY >= 0 And System.Math.Abs(dblX) + System.Math.Abs(dblY)
-
Private Sub cmd1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmd1.Click M = 0 N = Val(txtN.Text) For I = 1 To N dblX = 2 * Rnd() - 1 dblY = Rnd() If dblY >= 0 And System.Math.Abs(dblX) + System.Math.Abs(dblY)
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.