from matplotlib import pyplot as plt



a=1/3
def dicho(xmin,xmax,x,p,f,a):
    m=0
    while xmax-xmin>p:
        m=(xmin+xmax)/2
        if x==f(m,a):
            return(m)
        elif (f(m,a)-x)*(f(xmin,a) - x) > 0 :
            xmin=m
        else:
            xmax=m

    return(m)


def f(x,P):
    b=P*P*6.53130-((2*x)**2)*((1+a-2*x)**2)/((a-x)*(1-3*x)**3)
    return (b)

def tau(P):
    ksi=dicho(0,a,0,0.000001,f,P)
    tau=3*ksi
    return(tau)




A=[0.001+i*0.001 for i in range(30000)]
B=[tau(a) for a in A]
plt.plot(A,B)
plt.title("synthèse de l'ammoniac proportions stochiometrique; T=400K")
plt.xlabel("Pression (bar)")
plt.ylabel("taux de conversion")
plt.show()