SSkor
April 4, 2019, 12:23pm
#1
Hello! I’m a new julia user. I try to get a sample of trajectories via stochastic differential equations with fixed length = 1000.

So, for Wiener process I did it.

```
traj_length = 1000.0
n = 100
W = WienerProcess(0.0, 0.0) #WienerProcess(t0, W0)
prob = NoiseProblem(W, (0.0, traj_length))
monte_prob = MonteCarloProblem(prob)
sol = solve(monte_prob; dt=1.0, num_monte=n)
A = Array(sol)
```

But for SDEProblem i always get 43x100 array while I need 1000x100.

```
α=0.15
β=.3
u₀=1/2
f(u,p,t) = α*u
g(u,p,t) = β*u
tspan = (0.0,1.0)
prob = SDEProblem(f,g,u₀,(0.0,1.0))
monte_prob = MonteCarloProblem(prob)
sol = solve(monte_prob, num_monte=n, dt=0.001)
A = Array(sol)
```

How to set a fixed stepsize?

`sol = solve(monte_prob, num_monte=n, dt=0.001,adaptive=false)`

, though you should consider using ``sol = solve(monte_prob, num_monte=n, saveat=0.001)` instead for stability and accuracy.

1 Like

SSkor
April 5, 2019, 12:59pm
#3
Thank you! It works!
I’d like to make an attempt to delve deeper. What is better to use `NoiseProcess`

or `SDEProblem`

?

```
μ=0.15
σ=.3
u₀=1.0
f(u,p,t) = α*u
g(u,p,t) = β*u
prob = SDEProblem(f,g,u₀,(0.0,1.0))
monte_prob = MonteCarloProblem(prob)
sol = solve(monte_prob, num_monte=n, saveat=0.001)
```

```
W = GeometricBrownianMotionProcess(μ,σ,0.0,1.0,nothing)
prob = NoiseProblem(W,(0.0,1.0))
monte_prob = MonteCarloProblem(prob)
sol = solve(monte_prob, num_monte=n, dt=0.001, adaptive=false)
```

If it’s simple enough to have an analytical solution then you should use the noise process directly

2 Likes