Vous êtes sur la page 1sur 2

20/04/2022 20:46 Q2 – TP2

Q2 – Coefficients de friction avec l’équation de


Colebrook
In [ ]:
Q2-a

In [31]:
import numpy as nt
import matplotlib.pyplot as plt

In [52]:
def NewRaph(f,df,x0,e):
"""f = fonction préalablement définie
df = dérivé de la fonction
x0 = valeur d'approximation initiale
e = erreur sur la converegence"""

#
E=1.0 #erreur relative
#
i=0 #compteur sur le nombre d'itérations
x1=x0
while (E > e):
x2=x1-f(x1)/df(x1)
E=abs((x2-x1)/x1)
x1=x2
i=i+1
#
return x2

def fColebrook(ed,Re,f0,erreur,nmax):
"ed=epsilon_sur_d"

def f(f):
z= 1/nt.sqrt(f) + 0.8696*nt.log(ed/3.7 + 2.51/(Re*nt.sqrt(f)))
return z

def df(f):
dz= ((-f**(-3/2))/2)*(1+(2.1826/Re)*((ed/3.7) + (2.51/(Re*nt.sqrt(f))))**-1)
return dz
return NewRaph(f,df,f0,erreur)

In [53]:
ed = 4*10**(-4)
Re = 10**(7)
f0 = 10**(-4)
erreur = 10**(-6)
nmax = 100
fColebrook(ed,Re,f0,erreur,nmax)

0.015919488167810046
Out[53]:

localhost:8889/nbconvert/html/Q2 – TP2.ipynb?download=false 1/2


20/04/2022 20:46 Q2 – TP2

In [ ]:
Q2b
Plastique

In [80]:
Re = [10**4,5*10**4,10**5,5*10**5,10**6,5*10**6,10**7,5*10**7,10**8]
ed = [6*10**-5,1.8*10**-4, 10**-3]
nom = ["Plastique", "Acier", "Fonte"]
for j in range(len(ed)):
y = []
for i in range(len(Re)):
y.append(fColebrook(ed[j],Re[i],f0,erreur,nmax))
plt.plot(Re,y,label=nom[j])
plt.legend(loc = "upper right")
plt.xscale('log')

plt.title("f en fonction de Re")


plt.xlabel("Re")
plt.ylabel("f")
plt.grid()
plt.show()

In [ ]:

localhost:8889/nbconvert/html/Q2 – TP2.ipynb?download=false 2/2

Vous aimerez peut-être aussi