From 58f72474cb93c9f712b3575cb1a2309f52988ab1 Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Sun, 15 Mar 2015 11:38:52 +0100 Subject: [PATCH] =?UTF-8?q?Ind=C3=A9pendance=20vis-=C3=A0-vis=20du=20degr?= =?UTF-8?q?=C3=A9=20des=20p=C3=B4lynomes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- S2/TP4/analyse_en_moyenne.py | 25 +++++++++++++++++-------- S2/TP4/analyse_tris.py | 2 +- 2 files changed, 18 insertions(+), 9 deletions(-) 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 \