diff --git a/S2/TP4/analyse_en_moyenne.py b/S2/TP4/analyse_en_moyenne.py index d096102..2ed228a 100755 --- a/S2/TP4/analyse_en_moyenne.py +++ b/S2/TP4/analyse_en_moyenne.py @@ -19,10 +19,14 @@ http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp4_tri.html # Analyse des arguments import argparse -parser = argparse.ArgumentParser(description='Analyse le coût moyen du tri par insertion.') -parser.add_argument('--brut', action='store_true', help="afficher les données brutes") -parser.add_argument('--poly', action='store_true', help="calculer la regression pôlynominale") -parser.add_argument('--graph', action='store_true', help="voir les données sous forme de graphique") +parser = argparse.ArgumentParser( + description='Analyse le coût moyen du tri par insertion.') +parser.add_argument( + '--brut', action='store_true', help="afficher les données brutes") +parser.add_argument( + '--poly', action='store_true', help="calculer la regression pôlynominale") +parser.add_argument( + '--graph', action='store_true', help="voir les données sous forme de graphique") parser.add_argument('-m', type=int, default=100, help="Changer la valeur de m") args = parser.parse_args() @@ -31,7 +35,8 @@ args = parser.parse_args() m = args.m from analyse_tris import nbre_moyen_tri_insertion xData = list(range(1, 101)) -yData = [nbre_moyen_tri_insertion(m, i) for i in xData] # Peut prendre un certain temps +# Peut prendre un certain temps +yData = [nbre_moyen_tri_insertion(m, i) for i in xData] # Affichage des données if args.brut: @@ -43,7 +48,8 @@ from numpy import polyfit if args.poly: polynome = polyfit(xData, yData, 2) if args.brut: - print("Polynôme : {}".format(polynome)) + print("f(x) = {}".format(' '.join(["{:+f} × x^{}" \ + .format(polynome[d], len(polynome) - 1 - d) for d in range(len(polynome))]))) # Affichage @@ -56,8 +62,11 @@ if args.graph: """ float → float Retourne un point de la regression polynominale de l'analyse du tri. - CU : polynome est défini et est de degré 2 + CU : polynome est défini """ - return polynome[0] * x ** 2 + polynome[1] * x + polynome[2] + somme = 0 + for d in range(len(polynome)): + somme += polynome[d] * x**(len(polynome) - 1 - d) + return somme pyplot.plot(xData, [f(x) for x in xData], '-') pyplot.show() diff --git a/S2/TP4/analyse_tris.py b/S2/TP4/analyse_tris.py index b9612aa..3ae948c 100755 --- a/S2/TP4/analyse_tris.py +++ b/S2/TP4/analyse_tris.py @@ -366,7 +366,7 @@ section("Avec Gnuplot") question(1) -reponse("Graphiquement, on trouve que cette fonction a pour expression 0,287x²-2x+1\n\ +reponse("Graphiquement, on trouve que cette fonction a pour expression 0,287 × x² - 2 × x + 1\n\ Cette fonction correspond à la commande suivante : \n\ gnuplot> plot 'tri_insertion_moyen.txt', 0.287*x**2-2*x +1 with lines\n\ On peut aussi trouver des valeurs plus précises en faisant une regression pôlynominale des données \