Esempio n. 1
0
def lnlike4(theta, x, y, z, xerr, yerr, zerr):
    alpha, beta, h0, Om, w0, w1 = theta
    
    if (0.0 <= beta <= 10.0 and 20.0 <= alpha <= 40.0 and 0.5 <= h0 <= 1.0 
       and 0.0 <= Om <= 1.0 and -2.0 <= w0 <= 0.0  and -1.0 <= w1 <= 1.0):
        c = const.c.to('km/s').value
        Or = 4.153e-5 * h0**(-2)
        Ok = 0.0
    
        Mum = z*0.0
        MumErr = z*0.0
        for k in range(0, len(z)):
            if z[k] > 10:
                Mum[k] = z[k]
                MumErr[k] = zerr[k]
            else:
                Mum[k] = 5*np.log10(distL(z[k], h0, Or, Om, Ok, w0, w1)) + 25
                MumErr[k] = (5.0/np.log(10)) * (zerr[k]/z[k])
                
        Mu = 2.5*(beta*x + alpha) - 2.5*y - 100.195
        MuErr = 2.5*np.sqrt(yerr**2 + beta**2*xerr**2)
    
        inv_sigma2 = 1.0/(MuErr**2 + MumErr**2)
    
        xsq = np.sum((Mu-Mum)**2*inv_sigma2)
        print theta, xsq
        return -0.5*(xsq)
    else:
        return -np.inf
Esempio n. 2
0
def lnlike4(theta, x, y, z, xerr, yerr, zerr):
    alpha, beta, h0, Om, w0, w1 = theta

    if (0.0 <= beta <= 10.0 and 20.0 <= alpha <= 40.0 and 0.5 <= h0 <= 1.0
            and 0.0 <= Om <= 1.0 and -2.0 <= w0 <= 0.0 and -1.0 <= w1 <= 1.0):
        c = const.c.to('km/s').value
        Or = 4.153e-5 * h0**(-2)
        Ok = 0.0

        Mum = z * 0.0
        MumErr = z * 0.0
        for k in range(0, len(z)):
            if z[k] > 10:
                Mum[k] = z[k]
                MumErr[k] = zerr[k]
            else:
                Mum[k] = 5 * np.log10(distL(z[k], h0, Or, Om, Ok, w0, w1)) + 25
                MumErr[k] = (5.0 / np.log(10)) * (zerr[k] / z[k])

        Mu = 2.5 * (beta * x + alpha) - 2.5 * y - 100.195
        MuErr = 2.5 * np.sqrt(yerr**2 + beta**2 * xerr**2)

        inv_sigma2 = 1.0 / (MuErr**2 + MumErr**2)

        xsq = np.sum((Mu - Mum)**2 * inv_sigma2)
        print theta, xsq
        return -0.5 * (xsq)
    else:
        return -np.inf
Esempio n. 3
0
def hubblediagram(path, ve, vZ, vMu, vMuErr, index):
    import numpy as np
    import math as m
    import matplotlib.pyplot as plt

    from cosmoc import distL

    print '+++++++++++++++++++++++++++++++++++++++++++'
    print 'HUBBLEDIAGRAM: '
    print '+++++++++++++++++++++++++++++++++++++++++++'

    #====================================================================================
    #============= Parameters ===========================================================
    #====================================================================================
    c = 2.9979e+5

    #====================================================================================
    #============= Main Body ============================================================
    #====================================================================================
    # ;;;;;Calculating Theoretical Mu (LCDM)
    vZfit = np.arange(0.0001, 3.5, 0.0001, dtype=np.float)
    Hp = 70.0
    Om = 0.286
    Ok = 0.0
    h0 = Hp / 100.0
    Or = 4.153e-5 * h0**(-2)
    w0 = -1.0

    vDLConc = vZfit * 0.0

    for i in range(0, len(vZfit)):
        vDLConc[i] = distL(vZfit[i], h0, Or, Om, Ok, w0, 0.0)

    vMufit = 5.0 * np.log10(vDLConc) + 25.0

    plt.rc('font', family='serif')
    plt.plot(vZfit, vMufit)
    plt.errorbar(vZ,
                 vMu,
                 yerr=vMuErr,
                 linestyle="None",
                 capsize=0,
                 ecolor="red")
    plt.scatter(vZ, vMu, s=8, c='r', marker=".")

    plt.axis([-0.08, 3.5, 18, 49])

    plt.xlabel(r'\textbf{$z$}', fontsize=16)
    plt.ylabel(r'\textbf{$\mu$}', fontsize=16)

    plt.savefig(path)
    return
Esempio n. 4
0
def hubblediagram(path, ve, vZ, vMu, vMuErr, index):
   import numpy as np
   import math as m 
   import matplotlib.pyplot as plt
   
   from cosmoc import distL
       
   print '+++++++++++++++++++++++++++++++++++++++++++'
   print 'HUBBLEDIAGRAM: '
   print '+++++++++++++++++++++++++++++++++++++++++++'

   #====================================================================================       
   #============= Parameters ===========================================================        
   #====================================================================================
   c = 2.9979e+5
   
   #====================================================================================        
   #============= Main Body ============================================================    
   #====================================================================================
   # ;;;;;Calculating Theoretical Mu (LCDM)
   vZfit = np.arange(0.0001, 3.5, 0.0001, dtype=np.float)
   Hp = 70.0
   Om = 0.286
   Ok = 0.0
   h0 = Hp/100.0
   Or = 4.153e-5 * h0**(-2)
   w0 = -1.0
   
   vDLConc = vZfit * 0.0
   
   for i in range(0, len(vZfit)):
       vDLConc[i] = distL(vZfit[i], h0, Or, Om, Ok, w0, 0.0)
          
   vMufit = 5.0*np.log10(vDLConc) + 25.0
   
   
   plt.rc('font', family='serif')
   plt.plot(vZfit, vMufit)
   plt.errorbar(vZ,vMu,yerr=vMuErr, linestyle="None", capsize = 0, ecolor = "red")
   plt.scatter(vZ, vMu, s=8, c='r', marker=".")
   
   
   plt.axis([-0.08, 3.5, 18, 49])
   
   plt.xlabel(r'\textbf{$z$}', fontsize=16)
   plt.ylabel(r'\textbf{$\mu$}', fontsize=16)
   
   plt.savefig(path)      
   return
Esempio n. 5
0
def lnlike1(theta, x, y, w, m, z, xerr, yerr, werr, merr, zerr):
    alpha, beta, MB1, DM, Om = theta
    
    if (0.0 <= alpha <= 1.0 and 0.0 <= beta <= 6.0 and -25.0 <= MB1 <= -15.0
      and -1.0 <= DM <= 0.0 and 0.0 <= Om <= 1.0):
        c = const.c.to('km/s').value
        h0 = 0.7
        Or = 4.153e-5 * h0**(-2)
        Ok = 0.0
        w0 = -1.0
        w1 = 0.0
    
        Mum = z*0.0
        MB = z*0.0
        for k in range(0, len(z)):
            Mum[k] = 5*np.log10(distL(z[k], h0, Or, Om, Ok, w0, w1)) + 25
            if m[k] < 10:
                MB[k] = MB1
            else:
                MB[k] = MB1 + DM
                
        Mu = x - (MB - alpha*y + beta*w)
        
        inv_sigma2 = 1.0/(xerr**2 + alpha**2*yerr**2 + beta**2*werr**2)
        
        res = (Mu - Mum)
        xsq = np.sum((Mu-Mum)**2*inv_sigma2)
        llq = -0.5*(xsq)
        
        print theta, xsq
        
        llq2 = -0.5*(np.sum((Mu-Mum)**2*inv_sigma2 - np.log(inv_sigma2)))
        
        return llq2, xsq, res
    else:
        return -np.inf, np.inf, np.inf
Esempio n. 6
0
def lnlike1(theta, x, y, w, m, z, xerr, yerr, werr, merr, zerr):
    alpha, beta, MB1, DM, Om = theta

    if (0.0 <= alpha <= 1.0 and 0.0 <= beta <= 6.0 and -25.0 <= MB1 <= -15.0
            and -1.0 <= DM <= 0.0 and 0.0 <= Om <= 1.0):
        c = const.c.to('km/s').value
        h0 = 0.7
        Or = 4.153e-5 * h0**(-2)
        Ok = 0.0
        w0 = -1.0
        w1 = 0.0

        Mum = z * 0.0
        MB = z * 0.0
        for k in range(0, len(z)):
            Mum[k] = 5 * np.log10(distL(z[k], h0, Or, Om, Ok, w0, w1)) + 25
            if m[k] < 10:
                MB[k] = MB1
            else:
                MB[k] = MB1 + DM

        Mu = x - (MB - alpha * y + beta * w)

        inv_sigma2 = 1.0 / (xerr**2 + alpha**2 * yerr**2 + beta**2 * werr**2)

        res = (Mu - Mum)
        xsq = np.sum((Mu - Mum)**2 * inv_sigma2)
        llq = -0.5 * (xsq)

        print theta, xsq

        llq2 = -0.5 * (np.sum((Mu - Mum)**2 * inv_sigma2 - np.log(inv_sigma2)))

        return llq2, xsq, res
    else:
        return -np.inf, np.inf, np.inf