3ff00a7782dbe48f4601a89661d45bf5.ppt
- Количество слайдов: 33
ФИЗИКА Ю. Н. Прошин кафедра теоретической физики Казанского федерального университета yurii. proshin@kpfu. ru 2004 -2013, Казань 1804 -2004 Kazan University
Методы Монте Карло Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 #2
Монте Карло l l l Одна из пяти областей Монако Основана в 1866 году принцем Чарльзом III Всемирно известные казино, роскошные отели, пляжи The Monte Carlo Grand Hotel Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 #3
Монте Карло l Всемирно известные казино, роскошные отели, пляжи Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 #4
The casino at night. David Tomlinson - Lonely Planet Images Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 #5
Port de Monaco and Monte Carlo. Manfred Gottschalk - Lonely Planet Images Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 #6
Monte Carlo, Monaco-where the rich and famous people live Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 #7
Monte Carlo, Monaco-where the rich and famous people live Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 #8
Методы Монте Карло l l l Монте Карло – это множество статистических методов, используемых для решения физических и математических задач. В этих методах для моделирования используются последовательности случайных чисел. Методы Монте Карло наиболее удобны для моделирования случайных и вероятностных процессов. Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 #9
Монте Карло Методы Рождение l l l Los Alamos National Laboratory Robert R. Wilson, Monte Carlo Study of Shower Production, Phys. Rev. 86, 261 (1952) C. L. Longmire and M. N. Rosenbluth, Diffusion of Charged Particles across a Magnetic Field, Phys. Rev. 103, 507 (1956) N. Metropolis et al. , Monte Carlo Calculations on Intranuclear Cascades, Phys. Rev. 110, 185 (1958) Metropolis, Rosenbluth, Teller Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 10
Пример 1. Площадь пруда (интегрирование) Площадь пруда S Интегрирование I y H H f (x 3) f (x 1) a b S 0 = (b – a)*H S = S 0*nпопаданий/nполное a f (x 2) f (x 4) x 1 x 3 x 4 x 2 f (x) b x Генерируем случайным образом n пар точек (x 1, y 1), (x 2, y 2), . . . (x. N, y. N), на интервале [a, b] (1) Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 11
Пример 2. Расчет числа l l l Set Nin=0 Do N times —Calculate 3 random numbers, r 1, r 2, r 3 —Let x=r 1 [0, 1] —Let y=r 2 [0, 1] —Use r 3 to choose quadrant (change signs of x and y), int [1, 2, 3, 4] —If x 2+y 2 ≤ 1 set Nin = Nin + 1 Estimate for p = = 4 Nin/N Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 12
Пример 2. Расчет числа N=2 (x 1, y 1) N = 103 (x 2, y 2) N = 105 N = 104 Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 13
Пример 3. Интегрирование Метод прямоугольников y y f(x) a b Метод Монте Карло (II) x f(x 1) f(x 2). . . f(x. N) a x 1 x 2. . . x. N – задаются как xi=x 1+(i-1)Δx b f(x) x x 1 x 2. . . x. N – выбираются случайным образом на интервале [a, b] (2) Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 (3) # 14
Пример 3. Интегрирование Многомерная функция f(x, y, z, a, b, c…) z f(x, y) Интегрирование методом прямоугольников, трапеций, Симпсона, . . . усложняется. На каждом шаге надо пересчитывать все y координаты. x Метод Монте Карло: Примечание: число точек N должно быть достаточно большим Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 15
Пример 4. Случайное блуждание y x Примечание: можно усложнить проблему, задав траекторию без самопересечений, возвратов, и т. д. do sample = 1 to N begin x = 0; y = 0; do step = 1 to n begin ir = 4*rand( ); case ir 0 : x = x + 1. 0; 1 : y = y + 1. 0; 2 : x = x - 1. 0; 3 : y = y - 1. 0; end; {accumulate results} end Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 16
Пример 4. Случайное блуждание Origin Попытка раз Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 17
Пример 4. Случайное блуждание Origin Попытка два Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 18
Пример 4. Случайное блуждание Origin Попытка три Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 19
Генератор случайных чисел Насколько случайное? Простой линейный генератор x 0 задается при инициализации m - модуль, a – множитель, b – инкремент суть целочисленные константы Например: ax 0 = 1, a = 3, 54733, m = 32 = 7141, b = 4, m = 259200 Выбор констант определяет 31, 1, 7, 25, … Þ 1, 7, 25, 17, 23, 9, периодичность в повторении ÞПериод равен 8 !? “случайных” чисел. {Xn+1/m} от 0 до 1 Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 20
Генератор случайных чисел Насколько случайное? Простой линейный генератор Проверка парных корреляций • Строим x 0 задается при инициализации m - модуль, a – множитель, b – инкремент суть целочисленные константы Например: a = 7141, b = 54733, m = 259200 Выбор констант определяет периодичность в повторении “случайных” чисел. на плоскости множество точек Xi(xn, xn+1). • Точки равномерно заполняют пространство – “хороший” генератор. • Точки ложатся в хаотическом порядке на несколько прямых – “плохой” генератор. Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 21
Генератор случайных чисел Насколько случайное? Простой линейный генератор 8 3 6 x 0 задается при инициализации m - модуль, a – множитель, b – инкремент суть целочисленные константы Например: 1 ax 0 = 1, a = 3, 54733, m = 32 = 7141, b = 4, m = 259200 Выбор констант определяет 31, 1, 7, 25, … Þ 1, 7, 25, 17, 23, 9, периодичность в повторении ÞПериод равен 8 !? “случайных” чисел. {Xn+1/m} от 0 до 1 5 4 7 2 1 9 7 Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 22
Генератор случайных чисел Насколько случайное? Простой линейный генератор Проверка парных корреляций N=100 x 0 задается при инициализации m - модуль, a – множитель, b – инкремент суть целочисленные константы Например: a = 7141, b = 54733, m = 259200 Выбор констант определяет периодичность в повторении “случайных” чисел. Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 23
Генератор случайных чисел Насколько случайное? Простой линейный генератор Проверка парных корреляций N=1000 x 0 задается при инициализации m - модуль, a – множитель, b – инкремент суть целочисленные константы Например: a = 7141, b = 54733, m = 259200 Выбор констант определяет периодичность в повторении “случайных” чисел. Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 24
Генератор случайных чисел Насколько случайное? Простой линейный генератор Проверка парных корреляций N=10000 x 0 задается при инициализации m - модуль, a – множитель, b – инкремент суть целочисленные константы Например: a = 7141, b = 54733, m = 259200 Выбор констант определяет периодичность в повторении “случайных” чисел. Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 25
Генератор случайных чисел Насколько случайное? Простой линейный генератор Проверка парных корреляций N=50000 x 0 задается при инициализации m - модуль, a – множитель, b – инкремент суть целочисленные константы Например: a = 7141, b = 54733, m = 259200 Выбор констант определяет периодичность в повторении “случайных” чисел. Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 26
Генератор случайных чисел Насколько случайное? Простой линейный генератор Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 27
Генератор случайных чисел Насколько случайное? Простой линейный генератор a = 899, b = 0, m = 32768, x 0=12 Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 28
Генератор случайных чисел Как улучшить? l l l Перемешивание порядка выдачи чисел. Основной генератор заполняет буфер случайными числами. Дополнительный генератор выбирает числа из буфера. Два основных генератора создают случайные числа N = n 1 + n 2/z или N = |n 1 - n 2|. Можно тоже использовать буфер и дополнительный генератор. Можно создать другой генератор. Существует множество генераторов, например, “Xorshift”, “Lagged Fibonacci”, “Multiply-With-Carry”… Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 29
Генератор случайных чисел Генерация случайных чисел с заданным распределением l Нужно генерировать случайные числа с плотностью вероятности f(x) (Det: =>f(x) dx в интервале от x до x + dx ) и (интегральной) функцией распределения с нормировкой F(∞) = 1. (Det: => вероятность выпадения сл. числа <= x) Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 30
Генерация случайных чисел с заданным распределением l l l Inverse transformation method (метод обратного преобразования) Генерируется равномерное распределение xi на интервале [0, 1]. Решается обратная задача yi = F -1(xi). Величина yi распределена с плотностью вероятности f (x). Пример: Генерация частиц с энергиями согласно распределению Больцмана f (E) ~ e-E/k. T. Энергия i-й частицы запишется как Ei = -k. T ln(r), где r - случайное число на интервале [0, 1]. Во многих случаях не так просто представить F -1(xi). Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 31
Генерация случайных чисел с заданным распределением Rejection method (метод отбора- отказа) • Выбираем промежуточную функцию для сравнения, h(x), которая “перекрывает” искомую функцию f(x). В данном примере h(x) это прямоугольная функция. • Равномерно заполняем точками область под h(x). • Из всех точек выбираем только те, которые находятся под кривой f(x). Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 32
To be continued Ю. Н. Прошин и С. К. Сайкин Выч. Физ Лекция 3 # 34