예제 #1
0
 def test_Integate_Mean(self):
     a = smctc.sampler(10, smctc.HistoryType.SMC_HISTORY_NONE)
     a.SetResampleParams(smctc.ResampleType.SMC_RESAMPLE_RESIDUAL, 0.5)
     fmove = smctc.moveset(fInitialise, fMove)
     a.SetMoveSet(fmove)
     a.Initialise()
     a.Integrate_Mean(0)
예제 #2
0
    return smctc.particle(value,logLikelihood(0,value))

def fMove(lTime, pFrom, pRng):
    """
    The proposal function.

    param: lTime[int] The sampler iteration.
    param: pFrom[smc.particle] The particle to move.
    param: pRng[smc.rng]  A random number generator.
    """

    cv_to = pFrom.GetValue() # cv_state, list
    cv_to[0] += cv_to[2] * Delta + pRng.Normal(0,sqrt(var_s))
    cv_to[2]  += pRng.Normal(0,sqrt(var_u))
    cv_to[1]  += cv_to[3] * Delta + pRng.Normal(0,sqrt(var_s))
    cv_to[3]  += pRng.Normal(0,sqrt(var_u))
    pFrom.AddToLogWeight(logLikelihood(lTime, cv_to))

if __name__ == '__main__':
    load_observation()
    fmove = smctc.moveset(fInitialise, fMove)
    a=smctc.sampler(1000,smctc.HistoryType.SMC_HISTORY_NONE)
    a.SetResampleParams(smctc.ResampleType.SMC_RESAMPLE_RESIDUAL,0.5)
    a.SetMoveSet(fmove)
    a.Initialise()
    for i in range(len(y)-1):
        a.Iterate()
        xm = a.Integrate_Mean(0)
        ym = a.Integrate_Mean(1)
        print(xm, ym)
예제 #3
0
 def test_DoInit(self):
     fmove = smctc.moveset(fInitialise, fMove)
     mrng = smctc.rng()
     pp = fmove.DoInit(mrng)
예제 #4
0
 def test_DoMove(self):
     a = smctc.particle([1, 2.0], 2.3)
     mrng = smctc.rng()
     fmove = smctc.moveset(fInitialise, fMove)
     fmove.DoMove(0, a, mrng)
     self.assertAlmostEqual(a.GetLogWeight(), 2.4)
예제 #5
0
 def test_Constructor(self):
     smctc.moveset()
     smctc.moveset(fInitialise, fMove)