How can we pass two different driving noise processes for an SDEProblem? The goal is to simulate a simple system of SDE’s:

dX(t) = f(X, Y, t)dt + g(X, Y, t)dZ_1(t) + h(X, Y, t)dZ_2(t)

dY(t) = \alpha(Y,t)dt + \beta(Y,t)dZ_2(t)

To exemplify with a concrete example of a process with stochastic volatility:

dX(t) = bdt +Y(t)dZ_1(t) - \rho dZ_2(t)

dY(t) = \eta (\mu - Y(t))dt + dZ_2(t)

Where Z_2(t) is some subordinator (always positive and increasing).

Let’s assume we are using custom noise processes declared using the interface from `DiffEqNoiseProcess`

, so no possibility of exploring the multivariate properties of Wiener processes. I am using my own noise processes here, let’s call them `MyProcess1`

for Z_1 and `MyProcess2`

for Z_2.

Both have completely different properties so I don’t see how to do this without creating a single `NoiseProcess`

equivalent to Z(t) = [Z_1(t), Z_2(t)], which seems to imply a tremendous amount of juggling to define `dist`

and `bridge`

functions that act in different ways on each coordinate.

```
function f(du,u,p,t)
du[1] = b
du[2] = eta * (mu - u[2])
end
function g(du, u, p ,t)
du[1,1] = u[2]
du[1,2] = -rho
du[2,1] = 0
du[2,2] = 1
end
```

And then we would define our NoiseProcess in the way that I said above (quite troublesome in practice).

Is there any handier way of doing this? Something similar in principle to:

```
function g1(du, u, p ,t)
du[1] = u[2]
du[2] = 0
end
function g2(du, u, p ,t)
du[1] = -rho
du[2] = 1
end
SDEProblem(f, g1, g2, u0, tspan; noise=(MyProcess1, MyProcess2))
```