[new] implementing comparison methods into pdf class

This commit is contained in:
Sebastian Wehling-Benatelli 2016-03-03 15:14:17 +01:00
parent 18785edf68
commit 4606f84809

View File

@ -133,15 +133,13 @@ class ProbabilityDensityFunction(object):
'both operands must be of type ProbabilityDensityFunction'
raise NotImplementedError('implementation of resulting axis unclear - feature pending!')
# x0, incr, npts, pdf_self, pdf_other = self.rearrange(other)
#
# pdf = np.convolve(pdf_self, pdf_other, 'same') * incr
#
# # shift axis values for correct plotting
# midpoint = npts / 2
# x0 = incr * midpoint
#
# return ProbabilityDensityFunction(x0, incr, npts, pdf)
x0, incr, npts, pdf_self, pdf_other = self.rearrange(other)
pdf = np.convolve(pdf_self, pdf_other, 'same') * incr
# shift axis values for correct plotting
npts *= 2
x0 *= 2
return ProbabilityDensityFunction(x0, incr, npts, pdf)
def __sub__(self, other):
assert isinstance(other, ProbabilityDensityFunction), \
@ -222,6 +220,25 @@ class ProbabilityDensityFunction(object):
# return the object
return ProbabilityDensityFunction(x0, incr, npts, pdf)
def expectation(self):
'''
returns the expectation value of the actual pdf object
..formula::
mu_{\Delta t} = \int\limits_{-\infty}^\infty x \cdot f(x)dx
:return float: rval
'''
rval = 0
for n, x in enumerate(self.axis):
rval += x * self.data[n]
return rval * self.incr
def standard_deviation(self):
pass
def commonlimits(self, incr, other, max_npts=1e5):
'''
Takes an increment incr and two left and two right limits and returns