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.