In [1]:
%pylab inline


Populating the interactive namespace from numpy and matplotlib

In [40]:
def imf1(x):
    m1 = 0.5
    m2 = 1.39
    m3 = 6
    a0 = -1.26
    a1 = -1.49
    a2 = -3.02
    a3 = -2.28
    #normalising factors
    c1 = m1**a0/m1**a1
    c2 = (c1*m2**a1)/m2**a2
    c3 = (c2*m3**a2)/m3**a3
    
    y = np.zeros_like(x)
    
    y[x<m1] = np.power(x[x<m1],a0)
    y[(x>=m1) & (x<m2)] = c1*np.power(x[(x>=m1) & (x<m2)],a1)
    y[(x>=m2) & (x<m3)] = c2*np.power(x[(x>=m2) & (x<m3)],a2)
    y[x>=m3] = c3*np.power(x[x>=m3],a3)
    return(y)

In [41]:
x = np.linspace(0.09,120,1000)

In [42]:
y = imf1(x)

In [43]:
plt.plot(x,y)
plt.yscale("log")
plt.xscale("log")



In [28]:
m1 = 0.5
m2 = 1.39
m3 = 6
a0 = -1.26
a1 = -1.49
a2 = -3.02
a3 = -2.28

In [31]:
m1**a0/m1**a1


Out[31]:
0.8526348917679566

In [30]:



Out[30]:
2.8088897514759945

In [ ]: