# Jump-Diffusion process: practical solver beyond Euler method?

A jump-diffusion process is a stochastic process where both continuous noise (in my case complex Wiener noise $dZ,dZ^*$ such that $dZ^2=dZ^{*2}=0,|dZ|^2=dt$) and discrete Jumps (in my case Poissonian $dN,dM$ such that $dN^2=dN$, $dM^2=dM$, $\langle dN\rangle=A dt$, $\langle dM \rangle=B dt$ ). My equations are in the Itô sense.

Using an update rule with a deterministic evolution term $dt$ as well as the noises, I can evolve a complex vector (or ket-if you like) $v$ through time. Coeficients $A$ and $B$ depend on $v$, but not so much that a $dN>1$ would cause problems.

I am currently solving this system with the plain forward Euler method in MATLAB, generating Wiener nose with randn and Poisson-noise with poissrnd. In addition, after each timestep I do an additional renormalization $v\rightarrow v/||v||$ (I know the norm is a constant of motion).

However, in order to make everything converge properly, I have to set the timestep $dt$ so small that the solving of the equations takes a long time. Are there good practical solvers (e.g. Runge-Kutta) with more performance that Euler?

When I try to look around what is commonly used for jump-diffusion processes, e.g in DifferentialEquations.jl or QuantumOptics.jl, the expected time between two jumps is typically much larger than the timestep( $dN,dM\approx 0$) so that one can distinguish deterministic evolution from jumps taking place at random times. This assumption is not fulfilled in my case, the jumprate is so high (it dominates the dynamics) that jumps may coincide the same timestep. On the other hand, it is not so macroscopically large that we can just use the central-limit-theorem and approximate the poisson-terms by gaussian noise.

• Is it essential that your renormalisation happens at every time step or is just to avoid numerical overflows or similar? – Wrzlprmft Mar 8 '18 at 16:53
• @Wrzlprmft the second case- there is also a simpeler version of the equation for which the renormalisation ís essential, possible advantage of the latter is that depends only on dZ and not on dZ*, but I expect it 'd be harder for the latter to have an higher-order method. – Wouter Mar 8 '18 at 17:43

• The default use of complex numbers matches what you're describing. The real and imaginary parts of the number in the du vector are for the respective real and complex changes. The complex random numbers are drawn with the variance you describe. – Chris Rackauckas Mar 8 '18 at 18:25