Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемГеоргий Желябужский
1 Вероятностные модели. Метод Монте-Карло.
2 Качественная модель метода Монте-Карло: -поместим геометрическую фигуру полностью внутрь квадрата; - будем случайным образом «бросать» точки в этот квадрат, то есть с помощью генератора случайных чисел задавать точкам координаты внутри квадрата; - будем считать, что отношение числа точек, попавших внутрь фигуры, к общему числу точек в квадрате приблизительно равно отношению площади фигуры к площади квадрата, причём это отношение тем точнее, чем больше количество точек.
3 R Y X -R Формальная модель: М – количество точек попавших внутрь квадрата; N – количество точек, которые случайно генерируются внутри квадрата. S кр =S кв *M/N
4 Круг вписан в квадрат со стороной 2R, площадь которого вычисляется по формуле: S кв =4R 2 Случайный выбор координат точек, которые попадают внутрь квадрата (N точек), должен производиться так, чтобы координаты точек x и y удовлетворяли условиям: -R<=x<=R и -R<=y<=R Координаты точек, попавших внутрь круга (М), удовлетворяют условию: x 2 + y 2 <= R 2 Тогда площадь круга можно вычислить по формуле: S=4R 2 * M / N
5 Компьютерная модель «Проект «Метод Монте-Карло» 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
6 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 <= R Then M = M + 1 Next I txtS.Text = CStr(4 * R ^ 2 * (M / N)) End Sub End Class
7 Исследование модели: Ввести радиус окружности и количество генерируемых точек. После выполнения проекта в текстовое поле будет выведено значение площади круга.
8 Задание: Определить методом Монте-Карло площадь треугольника, вершины которого имеют координаты (-1,0); (0, 1) и (1,0) x y Замечание: 1. Функция генерации случайных чисел работает так: если дать команду f= rnd(), то в переменную f будут попадать числа из интервала [0, 1]. 2. Условие попадания точек внутрь треугольника : dblY>=0 и ABS(dblX) + ABS(dblY)<=1
9 For I = 1 To N dblX = 2 * Rnd() - 1 dblY = Rnd() If dblY >= 0 And System.Math.Abs(dblX) + System.Math.Abs(dblY) <= 1 Then M = M + 1
10 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) <= 1 Then M = M + 1 Next I txtS.Text = CStr(2 * (M / N)) End Sub End Class
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.