Buckets:
| # -*- coding: utf-8 -*- | |
| """ | |
| Created on Tue Apr 22 11:38:49 2014 | |
| @author: rlabbe | |
| """ | |
| from __future__ import division, print_function | |
| import math | |
| import matplotlib.pyplot as plt | |
| import numpy.random as random | |
| class gaussian(object): | |
| def __init__(self, mean, variance): | |
| try: | |
| self.mean = float(mean) | |
| self.variance = float(variance) | |
| except: | |
| self.mean = mean | |
| self.variance = variance | |
| def __add__ (a, b): | |
| return gaussian (a.mean + b.mean, a.variance + b.variance) | |
| def __mul__ (a, b): | |
| m = (a.variance*b.mean + b.variance*a.mean) / (a.variance + b.variance) | |
| v = 1. / (1./a.variance + 1./b.variance) | |
| return gaussian (m, v) | |
| def __call__(self, x): | |
| """ Impl | |
| """ | |
| return math.exp (-0.5 * (x-self.mean)**2 / self.variance) / \ | |
| math.sqrt(2.*math.pi*self.variance) | |
| def __str__(self): | |
| return "(%f, %f)" %(self.mean, self.sigma) | |
| def stddev(self): | |
| return math.sqrt (self.variance) | |
| def as_tuple(self): | |
| return (self.mean, self.variance) | |
| def __tuple__(self): | |
| return (self.mean, self.variance) | |
| def __getitem__ (self,index): | |
| """ maybe silly, allows you to access object as a tuple: | |
| a = gaussian(3,4) | |
| print (tuple(a)) | |
| """ | |
| if index == 0: return self.mean | |
| elif index == 1: return self.variance | |
| else: raise StopIteration | |
| class KF1D(object): | |
| def __init__ (self, pos, sigma): | |
| self.estimate = gaussian(pos,sigma) | |
| def update(self, Z,var): | |
| self.estimate = self.estimate * gaussian (Z,var) | |
| def predict(self, U, var): | |
| self.estimate = self.estimate + gaussian (U,var) | |
| def mul2 (a, b): | |
| m = (a['variance']*b['mean'] + b['variance']*a['mean']) / (a['variance'] + b['variance']) | |
| v = 1. / (1./a['variance'] + 1./b['variance']) | |
| return gaussian (m, v) | |
| #varying_error_kf( noise_factor=100) | |
Xet Storage Details
- Size:
- 1.99 kB
- Xet hash:
- 793fa99c2f1535b51aedc28bd20df6509a996d17e2cf591ebfd4b235952f0a2a
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.