Модифицированные алгоритмы моделирования процесса случайного блуждания
Модифицированные алгоритмы моделирования процесса случайного блуждания
Клименкова О.Д., НИУ ВШЭ, Департамент прикладной математики
МИЭМ НИУ ВШЭ, Научный центр РАН в Черноголовке, [email protected]
Аннотация
Численно моделируется случайное блуждание частицы на плоскости и прилипание частицы на окружность фиксированного радиуса, в точке под углом ф (угол между точкой прилипания и осью х). Предлагаются алгоритмы для более быстрого, но не менее точного, моделирования процесса.
Введение
Случайное блуждание на плоскости описывается уравнением диффузии. Известно, что точность численного моделирования процесса случайного блуждания и прилипания к окружности зависит от шага частицы. Но если сделать шаг частицы очень маленький, то точность, конечно, возрастет, но время подсчета так же вырастет очень сильно. Поэтому мы предлагаем использовать модифицированный алгоритм для быстрого и точного подсчета.
Рассмотрим обычный алгоритм.
Пусть окружность, к которой прилипает частица имеет радиус г, а частица начинает движение (с заданным шагом) на оси х на расстоянии х=Яь>г от начала координат - см. Рис.1.
Частица блуждает, пока не произойдет одно из двух: или частица уйдет на расстояние Яй (^»Яг,). и тогда она возвращается в случайную точку на окружности Кь с заданным распределением по углу ф. Или частица пересекает окружность с радиусом г, тогда она считается прилипшей с углом ф.
Вероятность первого пересечения окружности радиуса г в точке (гсоз<р .гяаир), при условии, что начальное положение частицы задается координатами 0), это ядро решения двумерного уравнения Лапласа: 1 х2 — 1
КЪ л
где х = — > 1.
г
2кх2 — 2;ccas (р + 1 Rf
Для генерации угла ф с данным распределением можно использовать следующую
формулу:
х— 1 к
<р
— 2arctan(-
где
¿¿-случайная
fib л = — > -.
г
Х + 1 ■
величина,
Рис. 1. Схема рождения и блуждания частицы Алгоритмы
Сначала рассмотрим обычный алгоритм с шагом 1 и 0.1. Пусть /(0) = где
Р и Vexact соответственно результат численного моделирования и аналитической формулы при угле прилипания ф=0. В табл.1 представлено </С0)> - среднее значение величины
/(0), где < f{<p) >= ,М = 200 запус-
ков, время работы стандартного алгоритма с шагом 1 и 0.1, среднее количество "обычных" шагов step small и среднее число возвратов частиц step return, которые в итоге прилипли к окружности с углом равным 0.
Таблица 1. Среднее от f(0) и время работы программы для стандартного алгоритма.
step <f(0)>, Время, Среднее Среднее
Ю-3 мин кол-во кол-во
шагов шагов
(step возврата
small) (step re-
turn)
1 52(2) 3 1 4814 0.113
0.1 18(2) 3000 447376 0.106
Алгоритм состоит в следующем: чем ближе частица к окружности прилипания, тем
Новые информационные технологии в автоматизированных системах - 2018
меньше её шаг (по линейному закону, step = k*R+b, где R - расстояние от частицы до начала координат). Например, если на радиусе рождения частица двигается с шагом 1, то при подходе к окружности прилипания шаг уменьшается до 0.1 (k=0.09, b=-0.8).
Будем менять параметры k и b так, чтобы на радиусе рождения (Rb=20) шаг частицы был равен 1;2;8, а на радиусе прилипания (r=10) шаг частицы был равен: 0.3; 0.2; 0.1; 0.05; 0.01.
Замечание. Удобнее сначала задать шаг на радиусе рождения и радиусе прилипания, чтобы по ним найти соответствующие k и b. Важно учитывать, с какой точностью мы хотим получить результат, например, если шаг на радиусе рождения больше чем расстояние между радиусом рождения и радиусом прилипания, то частица сможет, сделав один шаг прилипнуть, но в этом случае точность будет очень небольшой. Формально для этого алгоритма ограничений нет.
Алгоритм 1 с увеличением шага на окружности рождения работает быстрее, но нужно учитывать, что вблизи окружности прилипания шаг должен быть достаточно мал, иначе погрешность будет большой.
По табл.2 видно, что, во-первых, Алгоритм 1 работает существенно быстрее чем стандартный, при этом быстро достигая желаемой точности, во-вторых, чем меньше шаг на радиусе прилипания, тем точнее работает алгоритм.
Таблица 2: Среднее от f(0) и время работы программы для Алгоритма 1.
Алгоритм 2: если частица, блуждая пересекла окружность радиуса Rc, то её шаг уменьшается, если она находится дальше этого расстояния, то шаг равен шагу при рождении частицы. То есть, если частица родилась на окружности с радиусом 20, радиус окружности прилипания 10, и изначально шаг частицы равен 1, то, следуя предложенному алгоритму, когда частица окажется внутри окружности радиуса, например, 15, её шаг станет равен 0.1, пока частица не выйдет за пределы этой окружности, тогда её шаг снова станет равен 1.
Пусть радиус прилипания r=10, радиус рождения Rb=20, радиус окружности, при переходе через которую будет меняться шаг (радиус Rc) равен 11;15;20.
Величину шага после изменения назовём step_a. Будем менять step_a и step и смотреть <f(0)>, время работы программы, среднее количество "обычных" шагов step small и среднее число возвратов частиц step return, которые в итоге прилипли к окружности с углом равным 0 как показано на табл.3.
Таблица 3. Среднее от f(0) и время работы про-
граммы для Алгоритма 2.
step step_a <f(0)> 1СГ3 Время, мин Средн кол-во шагов (step small) Средн кол-во шагов возвр. (step return)
Rc=11
1 0.3 23(2) 31 4530 0.107
1 0.1 19(2) 31 4561 0.105
1 0.03 11(2) 33 5290 0.105
1 0.01 14(2) 50 11559 0.104
Rc=15
1 0.3 25(2) 32 4991 0.108
1 0.1 18(2) 44 8364 0.106
1 0.03 14(2) 174 46995 0.105
1 0.01 13(2) 1323 387612 0.105
5 0.3 26(2) 2 378 0.106
5 0.1 17(2) 6.7 1778 0.104
5 0.03 19(2) 60 17227 0.104
5 0.01 13(2) 521 152245 0.104
Быстрее всего этот алгоритм работал с параметрами Яе=15, 81ер=5, 81ер_а=0.3.
Можно сделать вывод, что для численного моделирования процесса прилипания, наиболее важно с каким шагом частица двигалась вблизи окружности прилипания, и что и этот алгоритм работает быстрее, чем стандартный, но этот алгоритм работает гораздо медленней алгоритма 1, поэтому для дальнейшего моде-
Rb r <f(0)>, Врем Сред. Сред.
= = 1СГ3 я, кол-во кол-во
20 10 мин шагов (step small) шагов возвр. (step return)
1 0.3 27(2) 3.8 787 0.106
1 0.2 20(2) 3.8 822 0.106
1 0.1 17(2) 4.13 954 0.104
1 0.05 16(2) 4.6 1130 0.103
1 0.01 13(2) 6 1659 0.103
2 0.3 26(2) 1 220 0.105
2 0.2 21(2) 1 240 0.104
2 0.1 20(2) 1.2 284 0.102
2 0.05 14(2) 1.3 336 0.101
2 0.01 11(2) 1.7 478 0.101
8 0.3 30(2) 0.1 16 0.098
8 0.2 23(2) 0.13 18 0.102
8 0.1 20(2) 0.15 20 0.095
8 0.05 14(2) 0.16 23 0.095
8 0.01 15(2) 0.19 30 0.094
Моделирование движения квадрокоптера по траектории с минимальной ошибкой отклонения
лирования мы будем использовать алгоритм 1.
Заключение
На основе проведенного исследования можно утверждать, что для моделирования процесса случайного блуждания и прилипания на плоскости эффективнее использовать алгоритм линейного уменьшения шага.
Благодарности
Работа выполнена в рамках проекта РНФ 14-21-00158.
Список литературы
O.Klimenkova, A. Menshutin, Lev N. Shchur, Influence of the random walk finite step on the firstpassage probability, IOP Conf. Series: Journal of Physics: Conf. Series 955 (2017) 012009 T. A. Witten, L. M. Sander, Diffusion-Limited Aggregation, a Kinetic Critical Phenomenon, Physical Review Letters 47, 1400 (1981) A. Yu. Menshutin. , L. N. Shchur, Test of multiscal-ing in a diffusion-limited-aggregation model using an off-lattice killing-free algorithm, Physical Review E 73, 011407 (2006).