Я моделирую броуновское движение в MATLAB, однако получаю странный результат, когда дисперсия приращений броуновского движения увеличивается со временем, хотя она должна оставаться постоянной. Например, я строю броуновскую систему движения,
brown_drift = @(t,X) 0;
brown_vol = @(t,X) .2;
brown_sys = bm(brown_drift, brown_vol);
Затем я интерполирую 1000 испытаний с временным шагом 1 и длиной 10.
inter_brown = interpolate(brown_sys, 0:1:10, zeros(1,1,1000),'Times',[0]);
inter_brown = squeeze(inter_brown);
Приращения броуновского движения должны быть независимыми, поэтому, если я построю матрицу приращений и возьму дисперсию, все они должны быть одинаковыми и равными квадрату параметра волатильности.
inc = inter_brown(2:end,:)-inter_brown(1:end-1,:);
var(inc')
ans = 0.0374 0.1184 0.2071 0.2736 0.3516 0.4190 0.5511 0.5891 0.6767 0.7647
Однако это явно не соответствует тому, что следует из простой теории, согласно которой дисперсия должна составлять 0,2 ^ 2 для каждого приращения. Похоже, что каждое приращение в будущем добавляет 2 * 0,2 ^ 2 к дисперсии приращения перед ним. Кажется, я не могу понять, почему это происходит, когда броуновское движение, кажется, удовлетворяет другой теории, например. дисперсия движения в данный момент времени. Есть ли что-то очевидное, что мне здесь не хватает?