zoukankan      html  css  js  c++  java
  • 高斯分布的乘积

    import matplotlib.pyplot as plt
    from math import *
    
    class Distribution:
        def __init__(self,mu,sigma,x,values,start,end):
            self.mu = mu
            self.sigma = sigma
            self.values = values
            self.x = x
            self.start = start
            self.end =end
    
        def normalize(self):
            s = float(sum(self.values))
            if s != 0.0:
                self.values = [i/s for i in self.values]
    
        def value(self, index):
            index -= self.start
            if index<0 or index >= len(self.values):
                return 0.0
            else:
                return self.values[index]
    
        @staticmethod
        def gaussian(mu,sigma,cut = 5.0):
            sigma2 = sigma*sigma
            extent = int(ceil(cut*sigma))
            values = []
            x_lim=[]
            for x in xrange(mu-extent,mu+extent+1):
                x_lim.append(x)
                values.append(exp((-0.5*(x-mu)*(x-mu))/sigma2))
            p1=Distribution(mu,sigma,x_lim,values,mu-extent,mu-extent+len(values))
            p1.normalize()
            return p1
    
    if __name__=='__main__':
        p1 = Distribution.gaussian(100,10)
        plt.plot(p1.x,p1.values,"b-",linewidth=3)
    
        p2 = Distribution.gaussian(150,20)
        plt.plot(p2.x,p2.values,"g-",linewidth=3)
    
        start = min(p1.start,p2.start)
        end = max(p1.end,p2.end)
        mul_dist = []
        x_lim = []
    
        for index in range(start,end):
            x_lim.append(index)
            mul_dist.append(p1.value(index)*p2.value(index))
        #normalize the distribution
        s= float(sum(mul_dist))
        if s!=0.0:
            mul_dist=[i/s for i in mul_dist]
    
        plt.plot(x_lim,mul_dist,"r-",linewidth=3)
        plt.show()

    参考链接:高斯分布的乘积

  • 相关阅读:
    UE4 Abc 批量导入
    UE4源码摘录(424)
    JZ10 矩形覆盖
    JZ27 字符串的排列
    JZ66 机器人的运动范围
    JZ65 矩阵中的路径
    JZ12 数值的整数次方
    JZ37 数字在升序数组中出现的次数
    JZ6 旋转数组的最小数字
    JZ67 剪绳子
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/14070552.html
Copyright © 2011-2022 走看看