Beispiel #1
0
    def _setup(
        self,
        test_ndim,
        spdmat1,
        spdmat2,
        forw_impl_string_linear_gauss,
        backw_impl_string_linear_gauss,
    ):

        self.G_const = spdmat1
        self.v_const = np.arange(test_ndim)
        self.L_const = spdmat2

        self.transition = pnss.LTISDE(
            self.G_const,
            self.v_const,
            self.L_const,
            forward_implementation=forw_impl_string_linear_gauss,
            backward_implementation=backw_impl_string_linear_gauss,
        )

        self.G = lambda t: spdmat1
        self.v = lambda t: np.arange(test_ndim)
        self.L = lambda t: spdmat2

        self.g = lambda t, x: self.G(t) @ x + self.v(t)
        self.dg = lambda t, x: self.G(t)
Beispiel #2
0
def ornstein_uhlenbeck():

    # Below is for consistency with pytest & unittest.
    # Without a seed, unittest passes but pytest fails.
    # I tried multiple seeds, they all work equally well.
    np.random.seed(12345)

    delta_t = 0.2
    lam, q, r = 0.21, 0.5, 0.1
    drift = -lam * np.eye(1)
    force = np.zeros(1)
    disp = np.sqrt(q) * np.eye(1)
    dynmod = pnss.LTISDE(
        driftmat=drift,
        forcevec=force,
        dispmat=disp,
    )
    measmod = pnss.DiscreteLTIGaussian(
        state_trans_mat=np.eye(1),
        shift_vec=np.zeros(1),
        proc_noise_cov_mat=r * np.eye(1),
    )
    initrv = Normal(10 * np.ones(1), np.eye(1))
    return dynmod, measmod, initrv, {"dt": delta_t, "tmax": 20}
Beispiel #3
0
def ltisde(G_const, v_const, L_const):
    return pnss.LTISDE(G_const, v_const, L_const)
def both_transitions_ibm():
    ibm = pnss.IBM(ordint=2, spatialdim=1)
    ibm2 = pnss.IBM(ordint=2, spatialdim=1)
    ibm_as_ltisde = pnss.LTISDE(ibm2.driftmat, ibm2.forcevec, ibm2.dispmat)
    return ibm, ibm_as_ltisde
def both_transitions_ioup():
    ioup = pnss.IOUP(ordint=2, spatialdim=2, driftspeed=2.041)
    ioup2 = pnss.IOUP(ordint=2, spatialdim=2, driftspeed=2.041)
    ioup_as_ltisde = pnss.LTISDE(ioup2.driftmat, ioup2.forcevec, ioup2.dispmat)
    return ioup, ioup_as_ltisde
def both_transitions_matern():
    matern = pnss.Matern(ordint=2, spatialdim=2, lengthscale=2.041)
    matern2 = pnss.Matern(ordint=2, spatialdim=2, lengthscale=2.041)
    matern_as_ltisde = pnss.LTISDE(matern2.driftmat, matern2.forcevec, matern2.dispmat)
    return matern, matern_as_ltisde