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?
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)