How to create a unit wiener process

18 ビュー (過去 30 日間)
vaggelis papasot
vaggelis papasot 2017 年 8 月 21 日
編集済み: A G 2019 年 1 月 19 日
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 件のコメント
Torsten
Torsten 2017 年 8 月 21 日
How do you calculate "variance" from the piece of code from above ?
Best wishes
Torsten.

サインインしてコメントする。

回答 (1 件)

A G
A G 2019 年 1 月 19 日
編集済み: A G 2019 年 1 月 19 日
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)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by