I am trying to "verify" Ito's formula for $B^2$ with simple Monte Carlo method.
According to my textbook, $ B^2 $ satisfies this SDE: $d(B^2) = dt + 2BdB$.

My simulation (notebook) results in following distribution for $B^2$ with $dt \in \{1/100,1/1000,1/10000\}$:


And distribution for solution of $dy = dt + 2BdB$:


Clearly they are different and it looks like I am making some very simple mistake, am I?

Here's my code in Julia (notebook):

# k instances of ito integral simulations of f from t=0. to t=1.
function ito_sim(f, n, k)
    y   = zeros(k)
    dt  = 1./n
    sdt = sqrt(dt)
    t = 0.
    b = zeros(k)
    for i in 1:n
        db = randn(k) * sdt
        b += db
        t += dt
        y += f(t, dt, b, db) 
plt[:hist](ito_sim((t,dt,b,db)-> db, n, 10000) .^ 2);
plt[:hist](ito_sim((t,dt,b,db)-> dt + 2 * b .* db, n, 10000));

PS I searched through stackoverflow and it seem to me that math.stachexchange is better suited for this question.


Looking at your code , your scheme is biased , and it is because of the way you calculate the Ito integral.

You built a function that calculate samples of an Ito process at time $1$. Let $g(t,B_t)$ an Ito process defined as

$$dg(t,B_t)=a(t,B_t)dt+\sigma(t,B_t)dB_t$$ where $B_t$ is a Brownian motion.

You say that given a subdivision $\{t_i\}$, defined as $t_i=\frac{i}{n}$


Then we define a function $$f(t,dt,b,db)=[a(t,b)dt+\sigma(t,b)db]$$


The above formula can be a good approximation if $g(0,B_0)=0$, which is the case here. When you apply your code to the process $$dg(t,B_t)=dt+2B_tdB_t$$

Your final result will look like

$$X=\sum_{k=1}^{n}{[\frac{1}{n}+2B_{t_{k}}(B_{t_k}-B_{t_{k-1}})]}$$ and its expectation is $3$, while you expect $1$.

The reason is that you use this approximation in your code $$\int_{t_k}^{t_{k+1}}{B_tdB_t}\approx B_{t_{k+1}}(B_{t_{k+1}}-B_{t_{k}})$$

If you had chosen

$$\int_{t_k}^{t_{k+1}}{B_tdB_t}\approx B_{t_{k}}(B_{t_{k+1}}-B_{t_{k}})$$

the bias is removed, and the expectation would have been $1$.

| cite | improve this answer | |
  • $\begingroup$ I think you are right that there's a bias involved. I remember something in one of the books. The average of $B_k$ and $B_{k+1}$ doesn't work though. But using $B_k$ does! I am getting exactly the distribution I wanted: i.imgur.com/CeFr8Ao.png $\endgroup$ – mikea Dec 26 '16 at 3:05
  • $\begingroup$ Exactly, corrected. When we choose $B_{t_k}$, we have the right result $\endgroup$ – Canardini Dec 26 '16 at 4:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.