Parallel computing based on future is supported. Use future::plan("multisession") to enable this.
sim_vf(
vf,
noise = 1,
noise_warmup = noise,
chains = 10,
length = 10000,
discard = 0.3,
stepsize = 0.01,
sparse = 1,
forbid_overflow = FALSE,
linear_interp = FALSE,
inits = matrix(c(stats::runif(chains, min = vf$lims[1], max = vf$lims[2]),
stats::runif(chains, min = vf$lims[3], max = vf$lims[4])), ncol = 2)
)A matrix of the simulated data.
A vectorfield object estimated by fit_2d_vf().
Relative noise of the simulation. Set this smaller when the simulation is unstable (e.g., when the elements in the diffusion matrix are not finite), and set this larger when the simulation converges too slowly.
The noise used for the warming-up period.
How many chains simulations should be performed?
The simulation length for each chain.
How much of the starting part of each chain should be discarded? (Warming-up period.)
The stepsize for Euler–Maruyama simulation of the system.
A number. How much do you want to sparse the output? When the noise is small, sparse the output may make the density estimation more efficient.
If TRUE, when the simulated system runs out of the margins specified in vf, the system will be moved back to the previous value. This can help to stabilize the simulation. FALSE by default.
Use linear interpolation method to estimate the drift vector (and the diffusion matrix). This can speed up the calculation. If TRUE, be sure that a linear grid was calculated for the vector field using <vf> <- add_interp_grid(<vf>).
The initial values of each chain.