Search code examples
algorithmnoisestochastic

Milstein algorithm when variance of the noise is different from 1


I want to implement the Milshtein algorithm for an stochastic equation in which the noise is additive. The equation has the next form.

dx(t)/dt= q(x(t)) + noise(t)

The noise is a gaussian variable of zero mean and variance 5. The expression of the milsthein algorithm I found in books for this expression reads as follows

x(t)=x(t) + h q(x(t)) + sqrt(h) u

where "h" is the step of the algorithm, "sqrt" means "square root" and "u" is a gaussian random variable of mean 0 and variance 1.

However, if I want to have a noise of variance 5, should I just make "u" a gaussian variable of variance 5 or something else should be changed?


Solution

  • You're correct. Given your revised stochastic differential equation,

    dx(t)/dt = q(x(t)) + √5 noise(t),
    

    we can derive the correct formula using only the linearity of differentiation and formula for variance-1 noise. Let p(z) = q(√5 z)/√5 and y(t) = x(t)/√5.

    dx(t)/dt = q(x(t)) + √5 noise(t)
             = √5 [q(√5 x(t)/√5)/√5 + noise(t)]
             = √5 [p(x(t)/√5) + noise(t)]        change q -> p where z = x(t)/√5
    (dx(t)/dt)/√5 = p(x(t)/√5) + noise(t)
    d(x(t)/√5)/dt = p(x(t)/√5) + noise(t)        linearity of differentiation
    dy(t)/dt = p(y(t)) + noise(t)                change x -> y
    

    The update formula for y is given by Milstein:

    y(t) -> y(t) + h p(y(t)) + √h u.
    

    We can derive the update formula for x.

    x(t)/√5 -> x(t)/√5 + h p(x(t)/√5) + √h u
    x(t) -> x(t) + √5 h q(x(t))/√5 + √5 √h u
         -> x(t) + h q(x(t)) + √h (√5 u)