parabola.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:ugali 作者: DarkEnergySurvey 项目源码 文件源码
def profileUpperLimit(self, delta = 2.71):
        """
        Compute one-sided upperlimit via profile method.
        """
        a = self.p_2
        b = self.p_1
        if self.vertex_x < 0:
            c = self.p_0 + delta
        else:
            c = self.p_0 - self.vertex_y + delta

        if b**2 - 4. * a * c < 0.:
            print 'WARNING'

            print a, b, c

            #pylab.figure()
            #pylab.scatter(self.x, self.y)
            #raw_input('WAIT')
            return 0.



        return max((numpy.sqrt(b**2 - 4. * a * c) - b) / (2. * a), (-1. * numpy.sqrt(b**2 - 4. * a * c) - b) / (2. * a)) 

    #def bayesianUpperLimit3(self, alpha, steps = 1.e5):
    #    """
    #    Compute one-sided upper limit using Bayesian Method of Helene.
    #    """
    #    # Need a check to see whether limit is reliable
    #    pdf = scipy.interpolate.interp1d(self.x, numpy.exp(self.y / 2.)) # Convert from 2 * log(likelihood) to likelihood
    #    x_pdf = numpy.linspace(self.x[0], self.x[-1], steps)
    #    cdf = numpy.cumsum(pdf(x_pdf))
    #    cdf /= cdf[-1]
    #    cdf_reflect = scipy.interpolate.interp1d(cdf, x_pdf)
    #    return cdf_reflect(alpha)
    #    #return self.x[numpy.argmin((cdf - alpha)**2)]
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号