obs = 0.01 (x, y) = dataGen.generateSamplePointsGG(samplingTime, numSamples, dt, x0, procs, obs) print "samplePoints generated" finalTime = samplingTime * (numSamples - 1) pf = ParticleFilter(oscillator, x0.size) pf.runFilter(y, samplingTime, dtf, procs, obs) pltWorker.plotPath(x, finalTime, 0.5) pltWorker.plotMarkers(y, finalTime, mk="*", ms=10, a=0.4) pltWorker.plotPFMarkers(pf.x, pf.w, finalTime) pltWorker.save("dists.pdf") pltWorker.clear() z = pf.getAveragePath() pltWorker.plotPath(x, finalTime, 0.5) pltWorker.plotMarkers(y, finalTime) pltWorker.plotMarkers(z, finalTime, mk="x", ms=8) pltWorker.save("sir.pdf") pltWorker.clear() ac = dataGen.calculateAccuracy(x, z) print "Particle filter error:", ac kf = KalmanFilter(oscillator, x0.size) kf.runFilter(y, samplingTime, dtf, procs, obs) k = kf.getAveragePath() pltWorker.plotPath(x, finalTime, 0.5) pltWorker.plotMarkers(y, finalTime) pltWorker.plotMarkers(k, finalTime, mk="x", ms=8) pltWorker.save("kalman.pdf") ac = dataGen.calculateAccuracy(x, k) print "Kalman filter error:", ac
obs = 0.01 (x, y) = dataGen.generateSamplePointsGG(samplingTime, numSamples, dt, x0, procs, obs) print 'samplePoints generated' finalTime = samplingTime * (numSamples - 1) pf = ParticleFilter(oscillator, x0.size) pf.runFilter(y, samplingTime, dtf, procs, obs) pltWorker.plotPath(x, finalTime, 0.5) pltWorker.plotMarkers(y, finalTime, mk='*', ms=10, a=0.4) pltWorker.plotPFMarkers(pf.x, pf.w, finalTime) pltWorker.save("dists.pdf") pltWorker.clear() z = pf.getAveragePath() pltWorker.plotPath(x, finalTime, 0.5) pltWorker.plotMarkers(y, finalTime) pltWorker.plotMarkers(z, finalTime, mk='x', ms=8) pltWorker.save('sir.pdf') pltWorker.clear() ac = dataGen.calculateAccuracy(x, z) print "Particle filter error:", ac kf = KalmanFilter(oscillator, x0.size) kf.runFilter(y, samplingTime, dtf, procs, obs) k = kf.getAveragePath() pltWorker.plotPath(x, finalTime, 0.5) pltWorker.plotMarkers(y, finalTime) pltWorker.plotMarkers(k, finalTime, mk='x', ms=8) pltWorker.save('kalman.pdf') ac = dataGen.calculateAccuracy(x, k) print "Kalman filter error:", ac