How to create a unit wiener process

8 vues (au cours des 30 derniers jours)
vaggelis papasot
vaggelis papasot le 21 Août 2017
Modifié(e) : A G le 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 commentaire
Torsten
Torsten le 21 Août 2017
How do you calculate "variance" from the piece of code from above ?
Best wishes
Torsten.

Connectez-vous pour commenter.

Réponses (1)

A G
A G le 19 Jan 2019
Modifié(e) : A G le 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)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by