Дисперсия в случайной прогулке с Matlab - PullRequest
0 голосов
/ 09 октября 2019

Я новичок в форуме и новичок в программировании.

У меня есть задача запрограммировать случайную прогулку в Matlab (1D или 2D) с дисперсией, которую я могу настроить. Я нашел код для случайного блуждания, но я действительно запутался, где поставить дисперсию. Я думал, что случайное блуждание всегда имеет одну и ту же дисперсию (= t ), поэтому, может быть, я просто потерялся в математике.

Как мне контролировать дисперсию?

1 Ответ

4 голосов
/ 09 октября 2019

Для простого случайного блуждания рассмотрите возможность использования нормального распределения со средним 0 (также называемым «дрейфом») и ненулевой дисперсией. Обратите внимание, поскольку среднее значение равно нулю, а распределение симметрично, это симметричное случайное блуждание. На каждом шаге процесс одинаково похож на движение вверх или вниз, влево или вправо и т. Д.

Один простой способ:
Шаг 1: Генерируйте каждый шаг
Шаг 2: Получите совокупную сумму

Это можно сделать для любого количества измерений.

% MATLAB R2019a
drift = 0;
std = 1;         % std = sqrt(variance)
pd = makedist('Normal',drift,std);

% One Dimension
nsteps = 50;
Z = random(pd,nsteps,1);
X = [0; cumsum(Z)];
plot(0:nsteps,X)          % alternatively:  stairs(0:nsteps,X)   

И в двух измерениях:

% Two Dimensions
nsteps = 100;
Z = random(pd,nsteps,2);
X = [zeros(1,2); cumsum(Z)];

Simple two dimensional random walk with each step being from Normal(0,1).

% 2D Plot
figure, hold on, box on
plot(X(1,1),X(1,1),'gd','DisplayName','Start','MarkerFaceColor','g')
plot(X(:,1),X(:,2),'k-','HandleVisibility','off')
plot(X(end,1),X(end,2),'rs','DisplayName','Stop','MarkerFaceColor','r')
legend('show')

Дисперсия повлияет на «волатильность», поэтому более высокая дисперсия означает более «скачкообразный» процесс по сравнению с более низкой дисперсией.

Two separate Gaussian two dimensional random walks with difference variances.

Примечание: я намеренно избегал броуновской реализации типа движения (масштабирование, уменьшение размера шага в пределе и т. Д.), Так как OP специальнопопросил случайную прогулку. Реализация броуновского движения может связать дисперсию с индексом времени из-за свойств Гаусса.


ОП пишет:

случайное блуждание всегда имеет одинаковую дисперсию

Это верно дляшаги (каждый шаг обычно имеет одинаковое распределение). Однако дисперсия процесса на временном шаге (или в определенный момент времени) должна увеличиваться с увеличением количества шагов (или с увеличением времени).


Связано:
MATLAB: построение случайной прогулки

...