How to create a unit wiener process

16 Ansichten (letzte 30 Tage)
vaggelis papasot
vaggelis papasot am 21 Aug. 2017
Bearbeitet: A G am 19 Jan. 2019
I want to create a wiener process with mean = 0, and variance 1. I wrote the following script and get mean values close to zero but the variance is much smaller than 1. What can i do?
T = 1; N = 500;
dt = T/N;
dW = zeros(1,N); % preallocate arrays ...
W = zeros(1,N); % for efficiency
dW(1) = sqrt(dt)*randn; % first approximation outside the loop ...
W(1) = dW(1); % since W(0) = 0 is not allowed
for j = 2:N
dW(j) = sqrt(dt)*randn; % general increment
W(j) = W(j-1) + dW(j);
end
  1 Kommentar
Torsten
Torsten am 21 Aug. 2017
How do you calculate "variance" from the piece of code from above ?
Best wishes
Torsten.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

A G
A G am 19 Jan. 2019
Bearbeitet: A G am 19 Jan. 2019
That may be because You have to few points (only 500). Try with 1e6 for ex.
clearvars;
x(1)=0;
for i=1:1e6
dx(i)=2*randn()+0.1;
x(i+1)=x(i)+dx(i);
end
%%
plot(x)
mean(x)
var(x)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by