def f(x): return -3*x**3+4*x+1 def trichotomie_min(f,a,b,n): e=10**(-n) while b-a>e: m=(b-a)/3 c=a+m d=b-m if f(d)<=f(c): a=c else: b=d return (round(a,n),round(b,n))