def f(x): return -3*x**3+4*x+1 #Entrez ici l'expression de la fonction def balayage(f,a,b,n): #n est le nombre de chiffres après la virgule souhaités e=10**(-n) #e est la précision souhaitée #a est la Borne inférieure de l'intervalle dans lequel le maximum a été repéré #b est la Borne supérieure de l'intervalle dans lequel le maximum a été repéré maxi=f(a) while b-a>e: amplitude=b-a for i in range(11): #On découpe arbitrairement [a ; b] en 10 x=a+amplitude/10*i #calcul des abscisses obtenues en divisant [a ; b] en 10 if f(x)>maxi: maxi=f(x) x_max=x a=x_max-amplitude/10 #On réduit l'intervalle dans lequel on va appliquer b=x_max+amplitude/10 #à nouveau le balayage jusqu'à la précision demandée return [round(a,n),round(b,n)]